- 精华
- 0
- 在线时间
- 26 小时
- UID
- 279024
- 积分
- 23
- 帖子
- 20
- 阅读权限
- 10
- 注册时间
- 2019-5-15
- 最后登录
- 2019-6-11
- 精华
- 0
- UID
- 279024
- 积分
- 23
- 帖子
- 20
- 主题
- 3
- 阅读权限
- 10
- 注册时间
- 2019-5-15
- 最后登录
- 2019-6-11
|
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
|
|