开拓者期货期权程序化系统交易论坛

标题: 同一个tick里,订单状态和持仓状态信息不同步的问题 [打印本页]

作者: willxue    时间: 2018-12-25 16:33:13     标题: 同一个tick里,订单状态和持仓状态信息不同步的问题

求教:
      我用a函数交易,在每个tick根据当前A_GetOpenOrderCount(),A_TotalPosition,是否变化进而交易。
但是,今天发现同一个tick里,A_GetOpenOrderCount()已经变化,但是A_TotalPosition不变,导致后续逻辑出错,
请问,如何确保两者都是同步的,要不都不更新,要不都更新?
如下图:
在14:06挂了1837买单和1843卖单,持仓数=30,此时openordercount=2;
在12:12时,1843卖单成交,此时检测到openordercount=1,但是持仓数还是30,导致后续调仓数据不准,请问有何办法处理,非常感谢!
[attach]37417[/attach]
作者: 小米    时间: 2018-12-25 17:13:15

已报与持仓等的推送是不同的事件,各自异步进行的,没法保证两者是同时到达的。
所以您日志所示的情况是正常存在的现象。
建议主要以持仓量的判断来决定后续调仓的处理。
如果一定需要挂单做判断,可考虑某状态改变后多等一两个tick,待另一个判断条件状态不太变化后再做下一步动作。
作者: zhenghaibinlove    时间: 2018-12-25 17:40:48

用到 A函数  要启用程序化交易 而且要登录账号
作者: zhenghaibinlove    时间: 2018-12-25 17:43:37

还有 A_TotalPosition()获得新的准确数据比其他的A_函数要慢  ,最好判断成交回报状态为成交后,A_TotalPosition()才能获取最新的准确数据。
作者: zhenghaibinlove    时间: 2018-12-25 17:51:47

没看到其他代码 还有一个问题 就是判断用A函数来判断,但是发委托单的函数是用图表函数来发单(就是buy  sell  buytocover SellShort),这样也会出现这个问题,A函数是直接读取交易账号里的真实仓位情况,而图表函数(buy  sell  buytocover SellShort)是图表出现信号发委托单,如果委托单还未成交的话,A函数读取的就不一定是准确的了。 您可以看下 是不是策略里A函数用在判断,而下单用了图表函数。
作者: willxue    时间: 2018-12-25 17:58:24

非常感谢各位老大,准备改成用持仓量判断了,毕竟这个最保险,再次感谢!




欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2