老师你好!如下代码增加了走完1根K线提前3秒下单.我试了无作用.无提前下单.不知什么原因.错在哪里.请老师帮忙检查谢谢!
zq:=1;//周期类型,2分钟就填2,3分钟就填3 ,5分钟就填5,10分钟就填10
tq:=3;//提前的秒数,最多提前60秒
lastopentm:=if(date<>ref(date,1),0,ref(openminutes(time),1));//上一根K线的开盘分钟数
ticktm:=dynainfo(207);
abb:=(mod(ticktm,100)>=60-tq and (openminutes(ticktm)-lastopentm=zq-1 or (ticktm>=112900 and ticktm<=113000) or (ticktm>=151400 and ticktm<=151500))) or not(islastbar);
ifabb then
begin
平空:SELLSHORT(PK OR EXITTIME,lots,limitr,OPEN+2*mindiff); //平空信号
开多:BUY(KD AND HOLDING=0 and aXITTIME,lots,limitr,OPEN+6*mindiff); //开多信号
平多:SELL(PD OR EXITTIME,lots,limitr,OPEN-2*mindiff); //平多信号
开空:BUYSHORT(KK AND HOLDING=0 and aXITTIME,lots,limitr,OPEN-6*mindiff);
end
您好,您上面的方法是老版本的 ,新版很直接
ma5:=ma(c,5);
ma10:=ma(c,10);
input:tq(5,3,60,1);//TQ即为您要提前的秒数
abb:=(time0-timetot0(dynainfo(207))<=tq) or not(islastbar);
把您上面的abb换成这个就可以了
abb:=(time0-timetot0(dynainfo(207))<=3) or not(islastbar);
if abb then
begin
平空:SELLSHORT(PK OR EXITTIME,lots,limitr,OPEN+2*mindiff); //平空信号
开多:BUY(KD AND HOLDING=0 and aXITTIME,lots,limitr,OPEN+6*mindiff); //开多信号
平多:SELL(PD OR EXITTIME,lots,limitr,OPEN-2*mindiff); //平多信号
开空:BUYSHORT(KK AND HOLDING=0 and aXITTIME,lots,limitr,OPEN-6*mindiff);
end
改成这样就是提前3s下单
[此贴子已经被作者于2013/10/11 13:36:12编辑过]
改了也不起作用也不会提前下单.请老师帮改正谢谢!
input:tq(5,3,60,1);//TQ即为您要提前的秒数
abb:=(time0-timetot0(dynainfo(207))<=tq) or not(islastbar);
ifabb then
begin
平空:SELLSHORT(PK OR EXITTIME,lots,limitr,OPEN+2*mindiff); //平空信号
开多:BUY(KD AND HOLDING=0 and aXITTIME,lots,limitr,OPEN+6*mindiff); //开多信号
平多:SELL(PD OR EXITTIME,lots,limitr,OPEN-2*mindiff); //平多信号
开空:BUYSHORT(KK AND HOLDING=0 and aXITTIME,lots,limitr,OPEN-6*mindiff);
end
固定轮询模式,适应于日线以下级别
您这里tq默认值为5,即为提前5s
ifabb then//if和abb之间有空格,您这样编译都不通过,您怎么确定提前秒数的?
IF ABB THEN