开拓者期货期权程序化系统交易论坛

标题: 求助模型 编译通不过 [打印本页]

作者: 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