开拓者期货期权程序化系统交易论坛
标题:
求助,此套利程序在模拟交易中不产生交易
[打印本页]
作者:
13302164608
时间:
2010-3-11 10:35:24
标题:
求助,此套利程序在模拟交易中不产生交易
Params
Numeric a1(300);
Numeric b1(500);
Numeric c1(600);
Numeric d1(400);
Vars
Begin
If((Data0.Close-Data1.Close)<a1 && GetGlobalVar(0)==0 && Data0.A_BuyPosition==0 && Data1.A_SellPosition==0)
{
Data0. A_SendOrder(Enum_Buy, Enum_Entry, 1,Q_AskPrice);
Data1.A_SendOrder(Enum_Sell,Enum_Entry,1,Q_BidPrice);
SetGlobalVar(0,1);
}
//当价差小于300时,买入开仓前一品种,卖出开仓后一品种
If((Data0.Close-Data1.Close)>b1 && GetGlobalVar(0)==0 && Data1.A_BuyPosition==0 && Data0.A_SellPosition==0)
{
Data0.A_SendOrder(Enum_sell,Enum_Exit,1,Q_bidPrice);
Data1.A_SendOrder(Enum_buy,Enum_Exit,1,Q_askPrice);
SetGlobalVar(0,1);
}
//当价差大于500时,卖出平仓前一品种,买入平仓后一品种
If((Data0.Close-Data1.Close)>c1 && GetGlobalVar(0)==0 && Data1.A_BuyPosition==0 && Data0.A_SellPosition==0)
{
Data0.A_SendOrder(Enum_sell,Enum_Entry,1,Q_bidPrice);
Data1.A_SendOrder(Enum_buy,Enum_Entry,1,Q_askPrice);
SetGlobalVar(0,1);
}
//当价差大于600时,卖出开仓前一品种,买入开仓后一品种
If((Data0.Close-Data1.Close)<d1 && GetGlobalVar(0)==0 && Data0.A_BuyPosition==0 && Data1.A_SellPosition==0)
{
Data0.A_SendOrder(Enum_Buy,Enum_exit,1,Q_AskPrice);
Data1.A_SendOrder(Enum_Sell,Enum_exit,1,Q_BidPrice);
SetGlobalVar(0,1);
}
end
//当价差小于400时,买入平仓前一品种,卖出平仓后一品种
作者:
觉文基金
时间:
2010-3-11 11:35:49
Data0. A_SendOrder(Enum_Buy, Enum_Entry, 1,Q_AskPrice);
Data1.A_SendOrder(Enum_Sell,Enum_Entry,1,Data1.Q_BidPrice);
报价怎么改比较合适不然 data1商品 报价有问题的
作者:
13302164608
时间:
2010-3-11 12:53:03
标题:
回复 2# 觉文基金 的帖子
十分感谢。
作者:
13302164608
时间:
2010-3-11 13:34:08
标题:
改后还是不交易
Params
Vars
Begin
If((Data0.Close-Data1.Close)<-16 && GetGlobalVar(0)==0 && Data0.A_BuyPosition==0 && Data1.A_SellPosition==0)
{
Data0. A_SendOrder(Enum_Buy, Enum_Entry, 1,Q_AskPrice);
Data1.A_SendOrder(Enum_Sell,Enum_Entry,1,data1.Q_BidPrice);
SetGlobalVar(0,1);
}
//当价差小于300时,买入开仓前一品种,卖出开仓后一品种
If((Data0.Close-Data1.Close)>-10 && GetGlobalVar(0)==0 && Data1.A_BuyPosition==0 && Data0.A_SellPosition==0)
{
Data0.A_SendOrder(Enum_sell,Enum_Exit,1,Q_bidPrice);
Data1.A_SendOrder(Enum_buy,Enum_Exit,1,data1.Q_askPrice);
SetGlobalVar(0,1);
}
//当价差大于500时,卖出平仓前一品种,买入平仓后一品种
If((Data0.Close-Data1.Close)>-8 && GetGlobalVar(0)==0 && Data1.A_BuyPosition==0 && Data0.A_SellPosition==0)
{
Data0.A_SendOrder(Enum_sell,Enum_Entry,1,Q_bidPrice);
Data1.A_SendOrder(Enum_buy,Enum_Entry,1,data1.Q_askPrice);
SetGlobalVar(0,1);
}
//当价差大于600时,卖出开仓前一品种,买入开仓后一品种
If((Data0.Close-Data1.Close)<-15 && GetGlobalVar(0)==0 && Data0.A_BuyPosition==0 && Data1.A_SellPosition==0)
{
Data0.A_SendOrder(Enum_Buy,Enum_exit,1,Q_AskPrice);
Data1.A_SendOrder(Enum_Sell,Enum_exit,1,data1.Q_BidPrice);
SetGlobalVar(0,1);
}
end
//当价差小于400时,买入平仓前一品种,卖出平仓后一品种
作者:
lh948
时间:
2010-3-11 14:03:46
看看当前图表GetGlobalVar(0)是否为0
用commerntry输出查看
作者:
efrog
时间:
2010-10-25 10:51:06
由于程序没有限制在BarStatus==2状态下运行,所以在你关联启动自动交易策略前,程序已经在BarStatus==1下运行了很多次,很有可能已将GetGlobalVar(0)设为1,因此当实际行情到来时,指令就被公共变量GV0给屏蔽了。
这个程序还却一段恢复GV0的程序段, 不然只会发出一个交易指令。
作者:
feijian0000
时间:
2012-10-16 13:32:54
全局变量使用错误!
作者:
zhen2710
时间:
2014-4-14 15:56:44
好像全局变量用的不对
欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/)
Powered by Discuz! X2