跳转至

报单回调规则

本文例举了一些常用的报单操作所对应的回调规则。在给定交易所报单回报顺序的前提下,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:撤单找不到相应报单)