- 精华
- 0
- 在线时间
- 365 小时
- UID
- 58206
- 积分
- 181
- 帖子
- 54
- 阅读权限
- 40
- 注册时间
- 2011-8-7
- 最后登录
- 2019-1-20
- 精华
- 0
- UID
- 58206
- 积分
- 181
- 帖子
- 54
- 主题
- 31
- 阅读权限
- 40
- 注册时间
- 2011-8-7
- 最后登录
- 2019-1-20
|
老师,我学着编写了一个简单的股指套利程序,针对IF1212和IF1208的1分钟周期,用调整上下限参数的方法让其工作,检验程序的可行性。但是发现他不能工作,麻烦帮助我这个新手看看。万分感谢!
Params
Numeric Eup(50);
Numeric Edown(48);
Vars
Numeric B;
Begin
if(Barstatus==0);
{
setGlobalVar(0,0);//Datao buyposition
setGlobalVar(1,0);//Data1 SellShortPosition
SetGlobalVar(2,0);//Data0 sellPosition
SetGlobalVar(3,0);//Data1 BuyToCoverPosition
}
//-------------------------------------------------------------------------------------------------------------
B=(Data0.High-Data1.High);
PlotNumeric("B",(Data0.High-Data1.High));
PlotNumeric("Eup",Eup);
PlotNumeric("Edown",Edown);
//-------------------------------------------------------------------------------------------------------------
If(B<Edown)
{
If(A_TotalPosition==0 && A_BuyPosition<1&&A_SellPosition<1)
{
If(GetGlobalVar(0)==0 && GetGlobalVar(1)==0 && GetGlobalVar(2)==0 && GetGlobalVar(3)==0)
{
Data0.A_SendOrder(Enum_Buy,Enum_Entry,1,Q_AskPrice);//第一买多
Data1.A_SendOrder(Enum_Sell,Enum_Entry,1,Q_BidPrice);//第二买空
SetGlobalVar(0,1);
SetGlobalVar(1,1);
FileAppend("D:\\1303.log",TimeToString(CurrentTime));
FileAppend("D:\\1303.log","(Data0-买多) "+" "+Text(Data0.Q_AskPrice));
FileAppend("D:\\1303.log","(Data1-买空),"+" "+Text(Data1.Q_BidPrice));
FileAppend("D:\\1303.log","Data0买多标识GetGlobalVar(0)="+Text(GetGlobalVar(0)));
FileAppend("D:\\1303.log","Data1卖空标识GetGlobalVar(1)="+Text(GetGlobalVar(1)));
}
}
Else If(A_BuyPosition>=1 && A_SellPosition>=1)
{
If(GetGlobalVar(0)==0 && GetGlobalVar(1)==0 && GetGlobalVar(2)==1 && GetGlobalVar(3)==1 &&
data0.A_SellPosition>=1 && data1.A_BuyPosition>=1)
{
Data0.A_SendOrder(Enum_Buy,Enum_Exit,1,Q_AskPrice);//第一买平
Data1.A_SendOrder(Enum_Sell,Enum_Exit,1,Q_BidPrice);//第二卖平
SetGlobalVar(2,0);
setGlobalVar(3,0);
FileAppend("D:\\1303.log",TimeToString(CurrentTime));
FileAppend("D:\\1303.log","(Data0-买平) "+" "+Text(Data0.Q_AskPrice));
FileAppend("D:\\1303.log","(Data1-卖平),"+" "+Text(Data1.Q_BidPrice));
FileAppend("D:\\1303.log","Data0买多标识GetGlobalVar(2)="+Text(GetGlobalVar(2)));
FileAppend("D:\\1303.log","Data1卖空标识GetGlobalVar(3)="+Text(GetGlobalVar(3)));
}
If(GetGlobalVar(0)==1 && GetGlobalVar(1)==1 && GetGlobalVar(2)==0 && GetGlobalVar(3)==0)
Return;
}
}
If(B>Eup)
{
If(A_TotalPosition==0 && A_BuyPosition<1&&A_SellPosition<1)
{
If(GetGlobalVar(0)==0 && GetGlobalVar(1)==0 && GetGlobalVar(2)==0 && GetGlobalVar(3)==0)
{
Data0.A_SendOrder(Enum_Sell,Enum_Entry,1,Q_BidPrice);//第一买空
Data1.A_SendOrder(Enum_Buy,Enum_Entry,1,Q_AskPrice);//第二买多
SetGlobalVar(2,1);
setGlobalVar(3,1);
FileAppend("D:\\1303.log",TimeToString(CurrentTime));
FileAppend("D:\\1303.log","(Data0-买空) "+" "+Text(Data0.Q_BidPrice));
FileAppend("D:\\1303.log","(Data1-买多),"+" "+Text(Data1.Q_AskPrice));
FileAppend("D:\\1303.log","Data0买多标识GetGlobalVar(2)="+Text(GetGlobalVar(2)));
FileAppend("D:\\1303.log","Data1卖空标识GetGlobalVar(3)="+Text(GetGlobalVar(3)));
}
}
Else If(A_BuyPosition>=1 && A_SellPosition>=1)
{
If(GetGlobalVar(0)==1 && GetGlobalVar(1)==1 && GetGlobalVar(2)==0 && GetGlobalVar(3)==0 &&
Data0.A_BuyPosition>=1 && data1.A_SellPosition>=1)
{
Data0.A_SendOrder(Enum_Sell,Enum_Exit,1,Q_BidPrice);//第一卖平
Data1.A_SendOrder(Enum_Buy,Enum_Exit,1,Q_AskPrice);//第二买平
SetGlobalVar(0,0);
setGlobalVar(1,0);
FileAppend("D:\\1303.log",TimeToString(CurrentTime));
FileAppend("D:\\1303.log","(Data0-卖平) "+" "+Text(Data0.Q_BidPrice));
FileAppend("D:\\1303.log","(Data1-买平),"+" "+Text(Data1.Q_AskPrice));
FileAppend("D:\\1303.log","Data0买多标识GetGlobalVar(0)="+Text(GetGlobalVar(0)));
FileAppend("D:\\1303.log","Data1卖空标识GetGlobalVar(1)="+Text(GetGlobalVar(1)));
}
If(GetGlobalVar(0)==0 && GetGlobalVar(1)==0 && GetGlobalVar(2)==1 && GetGlobalVar(3)==1)
Return;
}
}
End |
|