我把策略加载到一分钟,设置k线走完下单。策略里没有提前下单的代码。但是我查看账户的委托记录,报单时间几乎都是提前1-3秒的,都在前一根K线的58秒,59秒。
报单时间为什么总在收盘前1-3秒?是金字塔本身的机制吗?如果总是提前1-3秒,会在这1-3秒内信号消失的,这样就会出现闪烁的单子(收盘前有信号,但是收盘后信号消失,然而账户却已经下单成交,这样图表就处理不了这个闪烁的单子)。
我测试了下单语句buy(1,1,thisclose);和buy(1,1,market);(开仓条件是当前根K满足)都在前一根K的58,59秒报单。
用buy(1,1,limitr,open);(开仓条件是前一根K满足),报单时间也都在前一根K的58,59秒报单。另,用这种开仓方式同时用了公共变量限制开仓一次。如果前一天收盘有信号,会在早上开盘前一秒(就是8点59分59秒)自动报单和撤单,这时也会有因为撤单导致本应该平仓的没有平仓( 也会开仓因为撤单单子不开仓而少了单子)。
以上三种BUY方式,软件里都设置k线走完下单.软件里我都没有设置撤单追单功能。策略里也没有提前下单的代码。
我的问题是:
1.如何保证在收盘后下单,这样才能彻底杜绝闪烁的单子(精确时间应该在59秒之后,至少不应该在58秒)?
2.如果前一天收盘有信号,如何让早上开盘前一秒(就是8点59分59秒)不报单撤单,改为在开盘后报单?
以上两点就是如何杜绝闪烁的问题。
你看到的时间是你本地计算机的本地时间。和实际交易时间之间存在一定误差。