T1:=TIMETOT0(150000)-TIMETOT0(dynainfo(207));
abb:=(T1<=5 AND T1>0) OR NOT(ISLASTBAR);
IF NOT(abb) then GOTO SKIP1;
里面有好几个好函数不是很懂什么意思,还有这段代码要放在哪里,可以实现提前下单?
1.直接将 将abb添加到开仓语句的条件里面去。
类似这样:
if abb and 开仓条件 then buy(1,1,markrt);
2.T1表示的就是当前K结束时间,返回值和K线倒计时是一样的。
3. abb:=(T1<=5 AND T1>0) OR NOT(ISLASTBAR);
这个红色标识部分是为了处理历史K信号问题。因为提前下单这种操作肯定只有最新K奏效,所以必须兼顾到历史K信号问题。
T1<=5 这个就是提前下单的秒数,可以自行修改调整的。
4.提前下单用代码实现 必须是固定轮询模式的。如果是走完K,请使用软件自带的提前下单功能即可。
代码中具体使用的函数,可以直接看下函数说明就行了。我这里就只是把一些要点阐述下。
[此贴子已经被作者于2019/8/30 15:54:49编辑过]
1. NOT(ISLASTBAR)
这个其实就是判断是否是最新K,历史K和最新K要区分处理。
abb:=(T1<=5 AND T1>0) OR NOT(ISLASTBAR);
这里如果是最新K 按照(T1<=5 AND T1>0) 作为信号条件
如果是历史K 按照NOT(ISLASTBAR)作为信号条件
2.前面没注意,你这个代码这里是收盘K提前下单。倒还不是所有K都提前下单。
因为这里:
T1:=TIMETOT0(150000)-TIMETOT0(dynainfo(207));
这个地方写死了是收盘K的时间了。
常规每个K都提前下单:
T1:=TIMETOT0(time)-TIMETOT0(dynainfo(207));
是这样写的。
3.
T1:=timeo-TIMETOT0(dynainfo(207));
没这种写法的。另外这个代码本身日线上压根就用不了。只能日线以下使用。
T1:=TIMETOT0(time)-TIMETOT0(dynainfo(207));
这样的写法是任何级别都是可以实现提前下单这个功能是吗?
zhey
不包括日线,其他周期都可以。且必须固定轮询模式。还有你轮询周期不能大于提前下单的秒数,否则可能轮询检测不到就很尴尬了。