报单回调规则
本文例举了一些常用的报单操作所对应的回调规则。在给定交易所报单回报顺序的前提下,CTP返回给API的回调顺序是固定的。
1.术语说明
- 报单回报
指报单的状态回报,有未知单报单回报、未成交报单回报、部分成交报单回报、全部成交报单回报和撤单回报。对应回调函数OnRtnOrder,以OrderStatus字段区分。
- 成交回报
指报单成交后推送的成交回报,对应回调函数OnRtnTrade。
- 错单响应
指报单被CTP拒绝后返回的响应通知,对应回调函数OnRspOrderInsert,其中ErrorID和ErrorMsg指明了错误原因。
- 错单回报
指报单被CTP或交易所拒绝后的报单的状态回报。对应回调函数OnErrRtnOrderInsert,发送报单请求需填写UserID该接口才会被调用。
2.回调规则
测试场景1
报单合约10002733,报入1手,到交易所先未成交,后全部成交1手。
报单 ReqOrderInsert 回调顺序: OnRtnOrder (未知单) 此时CTP接收到交易所的未成交报单回报 OnRtnOrder (未成交) 此时CTP接收到交易所的成交回报和全部成交报单回报 OnRtnOrder (全部成交) OnRtnTrade |
测试场景2
对一笔已经撤单的委托单再次撤单。
对一笔已撤单再次撤单 ReqOrderAction 触发撤单错误响应 OnRspOrderAction (CTP:报单已全成交或已撤销,不能再撤) 触发撤单错误回报 OnErrRtnOrderAction (CTP:报单已全成交或已撤销,不能再撤) |
测试场景3
对一笔未成交委托进行撤单,因为委托号填写错误导致撤单失败
撤一笔不存在的委托 ReqOrderAction 触发撤单错误响应(CTP:撤单找不到相应报单) OnRspOrderAction 触发撤单错误回报 OnErrRtnOrderAction (CTP:撤单找不到相应报单) |