老师好
我定义了一个全局变量,但是后面却不执行,麻烦帮忙看下我写的有没有问题,谢谢。
runmode:0;
VARIABLE:QS=0;//组合策略实现
szqs:=。。。。。。;
xdqs:=............;
if(szqs or xdqs ,qs:=1,qs:=-1);
if qs>0 then begin
BUY(holding=0 and 090000<time and time<02300000,1,limitr,c),ORDERQUEUE; //开多
BUYSHORT(holding=0 and 090000<time and time<02300000,1,limitr,c),ORDERQUEUE;//开空
end
这里如果我把IF的语句都撤掉,那正常开单,但是加上就没有任何开单了,是不是我的全局变量这个定义有问题呢?
1 (szqs or xdqs ,qs:=1,qs:=-1); 多了两个冒号
2 time<02300000 后面多了两个0
3 你这样写只会开多不会开空
谢谢提醒多了两个0。
老师说的多了两个冒号,我曾经(刚才)都改过的,也还是一样不开仓,没有被执行。
//变量定义
runmode:0;
A:=mindiff;//取模组交易合约的最小变动价位
VARIABLE:QS=0;//组合策略实现(单边行情1,横盘震荡0)
//趋势判断策略(上涨趋势szqs,下跌xdqs,盘中震荡pzzd,震荡振幅zdzf)
gpx:=ema(c,5);//跟盘线
qsx:=ema(c,60);//趋势线
kpx:=ema(c,20);//控盘线
qsllv:=llv(close,10);
qshhv:=hhv(high,10);
pzzdcs:count(CROSS(gpx,kpx),20) + count(cross(kpx,gpx),20);//盘中震荡次数
zdzf:=all(abs(qshhv-qsx)/qsx>0.01 or abs(qsllv-qsx)/qsx>0.01,10);//趋势中最高(低)价始终大于趋势线1%
szqs:=qsllv>qsx and pzzdcs<=2 and zdzf;//上涨趋势条件
xdqs:=qshhv<qsx and pzzdcs<=2 and zdzf;//下跌趋势条件
if(szqs or xdqs ,qs=1,qs=-1);
//单边趋势操作(不逆市做)
//if qs>0 then begin
BUY(holding=0 and szqs and 090000<time and time<02300000,1,limitr,c),ORDERQUEUE; //开多
BUYSHORT(holding=0 and xdqs and 090000<time and time<02300000,1,limitr,c),ORDERQUEUE;//开空
sell(close<qsx and holding>0,0,limitr,c),ORDERQUEUE;//平多止损
sellshort(close>qsx and holding<0,0,limitr,c),ORDERQUEUE;//平空止损
//end