//若用户模式选为“固定时间间隔10秒”,
//中间变量
MID: MA(CLOSE,M);//布林中轨
手数:=ss;
//交易条件
bpk:=CROSS(C,Mid);//开多平空条件
spk:=CROSS(Mid,C);//开多平空条件
tq:=50;
K终:=(time0-timetot0(dynainfo(207))<=tq); //tq自己指定一个秒数
if K终=1,then begin
平空:SELLSHORT(bpk AND HOLDING<0,100,LIMITR,C);
平多:SELL(spk AND HOLDING>0,100,LIMITR,C);
开空:BUYSHORT(spk AND HOLDING>=0,hand,LIMITR,C);
开多:BUY(bpk AND HOLDING<=0,hand,LIMITR,C);
end
//当前持仓:HOLDING,COLORGRAY,LINETHICK0;
//当前资产:ASSET,NOAXIS,COLORGRAY;
//注意交易系统先开后平的原则
要加not(islastbar) 这个的。
你必须考虑到历史K的问题,当前K
(time0-timetot0(dynainfo(207))<=tq) 这个判断没问题,但是历史K的开平不能依赖这个条件判断。
if K终=1,then begin 多了个标点符号。
开空:BUYSHORT(spk AND HOLDING=0,hand,LIMITR,C);
开多:BUY(bpk AND HOLDING=0,hand,LIMITR,C);
开仓一般用holding=0作为限制条件。
再问:
加了not(islastbar),为什么当前K线还会执行呢?既然不是最后一个K线,实时为什么又能执行?
你用 or 来关联这2个条件啊。 虽然最新K不满足 not(
islastbar) 但是K线结束前N秒那个条件能满足啊。你看原版代码就是用or来串联这2个条件的。
明白了,另外,日线图标准版就没办法通过编程来实现提前n秒交易了对吧?