Closed pg-adm1n closed 4 years ago
Bug
MT5端vnpy_server on_order的时候根据 ret_code 来转换order的状态
MT5端vnpy_server on_order的时候没有根据 ret_code 来更新order的状态
在周末(休市), 发单, send_order是正确的, 返回的是10008, 即发单成功, 但是on_order的时候result_retcode为10018(Market_closed), 但是 在MT5端vnpy_server 无把result_retcode传去vnpy端, 在vnpy端也没有根据result_retcode 做order的状态更新
https://www.mql5.com/zh/docs/constants/errorswarnings/enum_trade_return_codes
日志: (这里on_order_info 有ret_code是我自己加进去的, vnpy_server 和 vnpy端都加了关于这个字段的提取) time,msg,gateway_name 18:18:14.33,"on_order_info: {'type': 'order', 'data': {'symbol': None, 'deal': 0, 'order': 0, 'trans_type': 10, 'order_type': 0, 'order_state': 0, 'order_price': 0.0, 'order_volume_initial': 0.0, 'order_volume_current': 0.0, 'order_comment': None, 'order_time_setup': 0, 'deal_type': 0, 'trans_price': 0.0, 'trans_volume': 0.0, 'trans_state': 0.0, 'result_deal': 0, 'result_order': 0, 'result_volume': 0.0, 'result_price': 0.0, 'result_comment': None, 'result_retcode': 10018, 'request_action': 5, 'request_type': 2, 'request_comment': '20200808_181813_0001'}}",MT5 18:18:13.756,"send_order result: {'type': 'send', 'data': {'result': True, 'retcode': 10008, 'comment': 'Order placed'}}",MT5 18:18:07.631,委托信息查询成功,MT5 18:18:07.619,合约信息查询成功,MT5 18:18:07.618,MT5连接成功,MT5
MT5的vnpy_server OnTradeTransaction 应该要把 result_retcode 传过去 vnpy, vnpy也应该根据result_retcode做order的状态变更
已在dev分支修改
环境
Issue类型
Bug
预期程序行为
MT5端vnpy_server on_order的时候根据 ret_code 来转换order的状态
实际程序行为
MT5端vnpy_server on_order的时候没有根据 ret_code 来更新order的状态
重现步骤
在周末(休市), 发单, send_order是正确的, 返回的是10008, 即发单成功, 但是on_order的时候result_retcode为10018(Market_closed), 但是 在MT5端vnpy_server 无把result_retcode传去vnpy端, 在vnpy端也没有根据result_retcode 做order的状态更新
https://www.mql5.com/zh/docs/constants/errorswarnings/enum_trade_return_codes
日志: (这里on_order_info 有ret_code是我自己加进去的, vnpy_server 和 vnpy端都加了关于这个字段的提取) time,msg,gateway_name 18:18:14.33,"on_order_info: {'type': 'order', 'data': {'symbol': None, 'deal': 0, 'order': 0, 'trans_type': 10, 'order_type': 0, 'order_state': 0, 'order_price': 0.0, 'order_volume_initial': 0.0, 'order_volume_current': 0.0, 'order_comment': None, 'order_time_setup': 0, 'deal_type': 0, 'trans_price': 0.0, 'trans_volume': 0.0, 'trans_state': 0.0, 'result_deal': 0, 'result_order': 0, 'result_volume': 0.0, 'result_price': 0.0, 'result_comment': None, 'result_retcode': 10018, 'request_action': 5, 'request_type': 2, 'request_comment': '20200808_181813_0001'}}",MT5 18:18:13.756,"send_order result: {'type': 'send', 'data': {'result': True, 'retcode': 10008, 'comment': 'Order placed'}}",MT5 18:18:07.631,委托信息查询成功,MT5 18:18:07.619,合约信息查询成功,MT5 18:18:07.618,MT5连接成功,MT5
解决方案
MT5的vnpy_server OnTradeTransaction 应该要把 result_retcode 传过去 vnpy, vnpy也应该根据result_retcode做order的状态变更