M10:=T0TOTIME(TIMETOT0(CLOSETIME(0))-60*TT); //收盘前TT分钟
平空:SELLSHORT(平空条件 and time>=M10,手数,MARKET);
上述提前TT分钟平仓代码,使用图表交易,K线是30分钟周期,固定轮询2秒,设定TT=1,原想在收盘前一分钟平仓,即185900动作(使用金字塔时间),但是程序执行结果是在18:30过2秒平仓,也就是30分钟K线完毕就执行,查了很久不知道原因,请老师帮忙解答。
你用的是time,它最候一根k的市价就是190000>M10的条件成立。你要用下面的方式处理
M1: T0TOTIME(TIMETOT0(CLOSETIME(0))-60); //收盘前1分钟
if T0TOTIME(TIMETOT0(CLOSETIME(0))-60)<=DYNAINFO(207) or (time=190000 and not(ISLASTBAR)) then begin
sell(1,holding,MARKET);
sellshort(1,holding,MARKET);
end