1.实际交易时候thisclose是对手价下单,回测时候在历史上的信号是按照收盘价处理的。
2.提前下单代码实现只能用固定轮询模式(走完K的提前下单另有单独的功能):
提前下单模板
abb:=(time0-timetot0(dynainfo(207))<=tq) or not(islastbar);
if abb then begin
......//下单语句
end
直接选择走完k线下单,在这个选项按钮的右边点开来设置提前多少秒就可以做到了
那个是处理历史信号的。如果是and 那最新K就恒没有信号了啊。
那就直接用前面那个公式就好了啦,为什么还要加个 or not(islastbar)呢
你的意思是说,策略采用逐k线模式情况下,会整体数据过历一遍,当是or not(islastbar) 其实就是可以捕捉之前是否开仓,如果图表和实盘不正确可以持仓同步,而
(time0-timetot0(dynainfo(207))<=tq) 就是本周期前tq分钟来看本根k线是否有信号,这样理解对吗
历史K肯定是要至少运行一次公式。这样才能产生图表历史信号。 你提前下单的K,前提肯定是首先满足下单条件的,假设下单条件A满足了,那么完整下单条件其实是这样:
A and abb;
但是历史K上
(time0-timetot0(dynainfo(207))<=tq) or not(islastbar);
这个部分是无法成立的。
假设当前是最新K,也有信号触发,实际也下单了。如果你没有 not(islastbar)这个部分,你会发现当当前这个K走完了,也就是变成历史K的时候,它信号消失了,而实际情况是这个K下过单,也触发了信号,只是现在它变成历史K了。这种情况肯定是不合理的,所以才单独对历史K做个处理。