在收到on_order回调的时候,根据order: OrderData读取到订单已经成交,记录入下:
20230417_09:49:28.957018:('order触发,trading值:', True)
20230417_09:49:28.957018:(OrderData(gateway_name='ROHON', extra=None, symbol='SPD CF307&CF309', exchange=<Exchange.CZCE: 'CZCE'>, orderid='1681689782_151_4', type=<OrderType.LIMIT: '限价'>, direction=<Direction.LONG: '多'>, offset=<Offset.OPEN: '开'>, price=-130.0, volume=2, traded=2, status=<Status.ALLTRADED: '全部成交'>, datetime=datetime.datetime(2023, 4, 17, 9, 3, tzinfo=zoneinfo.ZoneInfo(key='Asia/Shanghai')), reference=''),)
然后我根据全部成交状态,发出一个平多订单:
20230417_09:49:28.957018:('order触发,trading值:', True)
20230417_09:49:28.957018:(OrderData(gateway_name='ROHON', extra=None, symbol='SPD CF307&CF309', exchange=<Exchange.CZCE: 'CZCE'>, orderid='1681689782_151_49', type=<OrderType.LIMIT: '限价'>, direction=<Direction.SHORT: '空'>, offset=<Offset.CLOSE: '平'>, price=-120.0, volume=2.0, traded=0, status=<Status.SUBMITTING: '提交中'>, datetime=None, reference='CtaStrategy_CF307309_ren_02'),)
20230417_09:49:28.957018:('trade触发,trading值:', True)
20230417_09:49:28.957018:(TradeData(gateway_name='ROHON', extra=None, symbol='CF309', exchange=<Exchange.CZCE: 'CZCE'>, orderid='1681689782_151_4', tradeid=' 3182', direction=<Direction.SHORT: '空'>, offset=<Offset.OPEN: '开'>, price=15080.0, volume=2, datetime=datetime.datetime(2023, 4, 17, 9, 49, 29, tzinfo=zoneinfo.ZoneInfo(key='Asia/Shanghai'))),)
20230417_09:49:28.957018:('trade触发,trading值:', True)
20230417_09:49:28.957018:(TradeData(gateway_name='ROHON', extra=None, symbol='CF307', exchange=<Exchange.CZCE: 'CZCE'>, orderid='1681689782_151_4', tradeid=' 3183', direction=<Direction.LONG: '多'>, offset=<Offset.OPEN: '开'>, price=14950.0, volume=1, datetime=datetime.datetime(2023, 4, 17, 9, 49, 29, tzinfo=zoneinfo.ZoneInfo(key='Asia/Shanghai'))),)
然后这个订单被拒了:
20230417_09:49:28.988440:('order触发,trading值:', True)
20230417_09:49:28.988440:(OrderData(gateway_name='ROHON', extra=None, symbol='SPD CF307&CF309', exchange=<Exchange.CZCE: 'CZCE'>, orderid='1681689782_151_49', type=<OrderType.LIMIT: '限价'>, direction=<Direction.SHORT: '空'>, offset=<Offset.CLOSE: '平'>, price=-120.0, volume=2, traded=0, status=<Status.REJECTED: '拒单'>, datetime=None, reference=''),)
20230417_09:49:28.988440:('平多委托失败,订单号:', '1681689782_151_49', ',数量:', 2, ',价格:', -120.0)
在错误信息那边提示:交易委托失败,代码:30,信息:多仓不足,无法平仓[投机][卖][平仓][SPD CF307&CF309][2][-120.000][1 < 2]
请问这是咋回事?根据最后的错误信息[1 < 2],也就是仓位只有1,不足2,所以下单失败.
可是on_order过来的数据是显示已全部成交了呀?