开拓者期货期权程序化系统交易论坛
标题:
求助模型 编译通不过
[打印本页]
作者:
r5d0z6n8
时间:
2019-5-17 13:52:30
标题:
求助模型 编译通不过
Params
bool binitstatus(TRUE);
NUMERIC INITMP(0); //初始仓,+ -表示多空
//NUMERIC MIDLINE(5600); //初始中线值
NUMERIC MIDLINELENGTH(250); //中线移动的平均周期数
NUMERIC FIRSTGRID(3); //第一格的间距,点数
NUMERIC TOTALGRIDS(10); //总网格数,即最大持仓数
NUMERIC GRIDINTERVAL(3); //网格间距,点数
NUMERIC WINGRID(3); //盈利点数
NUMERIC EVERYLOTS(1); //每次开仓手数
NUMERIC MIDLINEWEIGHT(1); //中线所占权重
NUMERIC EXITONCLOSEMINS(14.50); //收盘平仓时间
Vars
NumericSeries midline;
NUMERIC MINPOINT;
NUMERIC AVGOFCLOSE;
NUMERIC ASKLINE;
NUMERIC BIDLINE;
NUMERICSERIES REALMIDLINE;
NUMERIC MYREALMP(0);
NUMERIC TMPGRIDINDEX;
NUMERIC TMPPRICE;
Begin
IF(DAY<>DAY[1])
{MIDLINE=OPEND(0);}ELSE
{ MIDLINE=MIDLINE[1];}
MINPOINT=MINMOVE*PRICESCALE;
MYREALMP=GETGLOBALVAR(0);
AVGOFCLOSE=AVERAGEFC(CLOSE,MIDLINELENGTH);
IF(BARSTATUS==0)
{IF(MYREALMP == INVALIDNUMERIC || BINITSTATUS);}
{MYREALMP = INITMP; SETGLOBALVAR(0,MYREALMP);}
{ELSE IF(BARSTATUS == 2 && A_ACCOUNTID != "" )}
{IF(Q_ASKPRICE <= 0 || Q_BIDPRICE <= 0 ) RETURN;}
IF(Q_BIDPRICE == Q_UPPERLIMIT || Q_ASKPRICE == Q_LOWERLIMIT) RETURN;
IF ((TIME == 0.0900 || TIME == 0.1030 || TIME == 0.1330 ) && (HIGH==LOW)) RETURN;
IF(CURRENTTIME<EXITONCLOSEMINS/100)
{REALMIDLINE=MIDLINE*MIDLINEWEIGHT+AVGOFCLOSE*(1-MIDLINEWEIGHT);
ASKLINE=Q_ASKPRICE;
BIDLINE=Q_BIDPRICE;
COMMENTARY("中线="+TEXT(REALMIDLINE));
COMMENTARY("叫卖价="+TEX(ASKLINE));
COMMENTARY("叫买价="+TEXT(BIDLINE));
IF(MYREALMP<=0&&BIDLINE>REALMIDLINE+FIRSTGRID*MINPOINT)
{TMPPRICE=REALMIDLINE+FIRSTGRID*MINPOINT+ABS (MYREALMP)* GRIDINTERVAL*MINPOINT);
TMPPRICE=CEILING(TMPPRICE,MINPOINT);
COMMENTARY("开仓价="+TEXT(TMPPRICE));
TMPGRIDINDEX=-1-INTPART ((BIDLINE-REALMIDLINE-FIRSTGRID*MINPOINT)/(GRIDINTERVAL*MINPOINT));
IF(TMPGRIDINDEX<MYREALMP&&TMPGRIDINDEX>=-1*TOTALGRIDS)
{MYREALMP=MYREALMP-1; A_SENDORDER (ENUM_BUY,ENUM_ENTRY,EVRYLOTS,BIDLINE);}}ELSE IF(MYREALMP>=0 && ASKLINE<REALMIDLINE-FIRSTGRID*MINPOINT)
{TMPPRICE=REALMIDLINE-FIRSTGRID*MINPOINT-ABS (MYREALMP)* (GRIDINTERVAL*MINPOINT;
TMPPRICE=FLOOR(TMPPRICE,MINPOINT);
COMMENTARY("开仓价="+TEXT(TMPPRICE));
TMPGRIDINDEX=1+INTPART ((REALMIDLINE-FIRSTGRID*MINPOINT- ASKLINE)/(GRIDINTERVAL*MINPOINT));
IF(TMPGRIDINDEX>MYREALMP && TMPGRIDINDEX<=TOTALGRIDS)
{MYREALMP=MYREALMP+1;
A_SENDORDER(ENUM_SELL,ENUM_ENTRY,EVERYLOTS,ASKLINE);}
IF(MYREALMP>0)
{TMPPRICE=REALMIDLINE-FIRSTGRID*MINPOINT-(ABS(MYREALMP)-1)*(GRIDINTERVAL*MINPOINT)+WINGRID*MINPOINT;
TMPPRICE = CEILING(TMPPRICE,MINPOINT);
COMMENTARY("平仓价="+TEXT(TMPPRICE));
}ELSE IF(MYREALMP<0)
{TMPPRICE=REALMIDLINE+FIRSTGRID*MINPOINT+(ABS(MYREALMP)-1)*(GRIDINTERVAL*MINPOINT)-WINGRID*MINPOINT;
TMPPRICE = FLOOR(TMPPRICE,MINPOINT);
COMMENTARY("平仓价="+TEXT(TMPPRICE));}
TMPGRIDINDEX=-1-INTPART
((ASKLINE-FIRSTGRID*MINPOINT+WINGRID*MINPOINT-REALMIDLINE)/(GRIDINTERVAL*MINPOINT));
TMPGRIDINDEX=MIN(0,TMPGRIDINDEX);
IF(TMPGRIDINDEX>MYREALMP)
{MYREALMP=MYREALMP+1; A_SENDORDER (ENUM_SELL,ENUM_EXIT,EVERYLOTS,ASKLINE);}
TMPGRIDINDEX=1+INTPART
((REALMIDLINE-FIRSTGRID*MINPOINT+WINGRID*MINPOINT-BIDLINE)/(GRIDINTERVAL*MINPOINT));
TMPGRIDINDEX=MAX(0,TMPGRIDINDEX);
IF(TMPGRIDINDEX < MYREALMP)
{MYREALMP=MYREALMP-1; A_SENDORDER (ENUM_BUY,ENUM_EXIT,EVERYLOTS,BIDLINE);}
}ELSE IF(CURRENTTIME > EXITONCLOSEMINS/100)
{IF(MYREALMP > 0)
{MYREALMP = MYREALMP - 1;A_SENDORDER (ENUM_SELL,ENUM_EXIT,EVERYLOTS,BIDLINE);}
ELSE IF(MYREALMP<0)
{MYREALMP = MYREALMP + 1;A_SENDORDER (ENUM_BUY,ENUM_EXIT,EVERYLOTS,ASKLINE);}
}SETGLOBALVAR(0,MYREALMP);}
COMMENTARY("实际仓位="+TEXT(MYREALMP));
COMMENTARY("当前时间="+TEXT(Q_LASTTIME));
IF (Q_LASTTIME>0.145000 AND CURRENTTIME<0.150000)
{A_SENDORDER(ENUM_SELL,ENUM_EXIT,1,Q_BIDPRICE);
A_SENDORDER(ENUM_BUY,ENUM_EXIT,1,Q_ASKPRICE);}
END
作者:
小米
时间:
2019-5-17 14:13:05
根据提示一步步排查一下吧。
你这个很乱,别人也不太可能帮你一一理清楚排查啊。
作者:
alantop
时间:
2019-5-17 14:21:37
你就是复制网上的,也一行一行的键入,有错改一下.直接全盘复制给别人找错,不可行.
作者:
r5d0z6n8
时间:
2019-5-17 14:29:56
{ELSE IF(BARSTATUS == 2 && A_ACCOUNTID != "" )} 提示:无法识别的字符串;Else
作者:
r5d0z6n8
时间:
2019-5-17 14:34:33
我已经校对了两遍
作者:
r5d0z6n8
时间:
2019-5-17 14:40:58
麻烦老师了!!!
作者:
小米
时间:
2019-5-17 14:43:31
r5d0z6n8 发表于 2019-5-17 14:29
{ELSE IF(BARSTATUS == 2 && A_ACCOUNTID != "" )} 提示:无法识别的字符串;Else
看一下TB语法里条件语句。
if( )
{
......
}else if()
{
..........
}
欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/)
Powered by Discuz! X2