在使用cta模块时,发现只能成功发出一个交易指令,分析了一下代码,并输出调试信息,得出如下结论,请各位大神确认:
1、在类TargetPosTemplate中的的trade()函数中有如下逻辑:如果订单列表中存在订单号(活跃订单),直接返回,不发交易指令。
2、在收到订单回报时,如果订单状态是全部成交、已撤销、拒单,将订单号从订单列表中移除。
从上面两个处理逻辑来看,没有问题,但是通过添加调试打印发现,订单全部成交后,订单没有从订单列表中移除,导致下一次发单时没有发出去。
在使用cta模块时,发现只能成功发出一个交易指令,分析了一下代码,并输出调试信息,得出如下结论,请各位大神确认:
1、在类TargetPosTemplate中的的trade()函数中有如下逻辑:如果订单列表中存在订单号(活跃订单),直接返回,不发交易指令。
2、在收到订单回报时,如果订单状态是全部成交、已撤销、拒单,将订单号从订单列表中移除。
从上面两个处理逻辑来看,没有问题,但是通过添加调试打印发现,订单全部成交后,订单没有从订单列表中移除,导致下一次发单时没有发出去。
附上调试日志:
2019-05-31 13:30:00,029 INFO: sandwich_m: 当前是交易时间,trade_time设置为TRUE
2019-05-31 13:30:00,029 INFO: sandwich_m: 开空单, 设置目标仓位为-1
befer trade: []
2019-05-31 13:30:00,029 INFO: sandwich_m: trade in SelfTargetPosTemplate
2019-05-31 13:30:00,029 INFO: sandwich_m: poschange: -1
['CTP.54-1162931958_1']
2019-05-31 13:30:00,029 INFO: sandwich_m: long_price: 0
onorder: ['CTP.54-1162931958_1']
2019-05-31 13:30:00,029 INFO: sandwich_m: short_price: 2912.0
2019-05-31 13:30:00,029 INFO: sandwich_m: 设置tradeFlag为TRUE
2019-05-31 13:30:00,029 INFO: sandwichm: [订单回报]合约代码:m1909,订单编号:54-1162931958_1,价格:2912.0,数量:1,方向:空,开平仓:开,订单状态:提交中,报单时间:
onorder: ['CTP.54-1162931958_1']
2019-05-31 13:30:00,076 INFO: sandwichm: [订单回报]合约代码:m1909,订单编号:54-1162931958_1,价格:2912.0,数量:1,方向:空,开平仓:开,订单状态:提交中,报单时间:13:30:00
onorder: ['CTP.54-1162931958_1']
onorder: ['CTP.54-1162931958_1']
2019-05-31 13:30:00,857 INFO: sandwichm: [订单回报]合约代码:m1909,订单编号:54-1162931958_1,价格:2912.0,数量:1,方向:空,开平仓:开,订单状态:未成交,报单时间:13:30:00
2019-05-31 13:30:00,857 INFO: sandwichm: [订单回报]合约代码:m1909,订单编号:54-1162931958_1,价格:2912.0,数量:1,方向:空,开平仓:开,订单状态:全部成交,报单时间:13:30:00
2019-05-31 13:30:00,857 INFO: sandwich_m: 挂单全部成交,tradeFlag为FALSE
2019-05-31 13:30:00,857 INFO: sandwichm: [成交回报]合约代码:m1909,订单编号:54-1162931958_1,价格:2912.0,数量:1,方向:空,开平仓:开,成交编号: 10661910,成交时间:13:30:00
2019-05-31 13:30:00,857 INFO: sandwichm: 当前仓位为-1
befer trade: ['CTP.54-1162931958_1']
2019-05-31 13:34:31,496 INFO: sandwich_m: 存在空头仓位,设置目标仓位为1
return here
2019-05-31 13:34:31,496 INFO: sandwich_m: trade in SelfTargetPosTemplate
2019-05-31 13:34:31,496 INFO: sandwich_m: pos_change: 2
2019-05-31 13:34:31,496 INFO: sandwich_m: long_price: 2918.0
2019-05-31 13:34:31,496 INFO: sandwich_m: short_price: 0
2019-05-31 13:34:31,496 INFO: sandwich_m: 设置tradeFlag为TRUE
请在Github开个issue吧,我们来查下