全部期权指南
发送取消请求不等于订单已经从市场消失8 分钟阅读

为什么取消后期货订单还是成交了?

了解期货取消请求与确认取消为什么不同、pending cancel 与成交如何发生竞争,以及发送替代订单前应检查哪些记录。

由 Mark 编写 · 官方资料列于文末

直接答案

点击取消只是发送请求,并不能证明期货订单已经消失。在交易场所确认 Cancelled 前,剩余数量仍需要核对,而且取消最终生效前可能已经发生成交。

Pending cancel与Cancelled是不同状态

CME Globex区分Pending Cancel Confirmation和Cancelled。

Pending表示平台已收到取消请求,但交易引擎尚未确认取消。

Cancelled表示请求已经成功处理,订单已从订单簿移除。

当用户说“我在成交前取消了”时,应先检查这一差别。

只看点击时间不够。

应看交易场所确认的订单状态。

快速市场会产生消息竞争

假设有5份卖出限价正在等待。

5份仍为working时点击取消。

取消确认前,兼容买方到达订单。

如果先成交2份,账户已经有2份完成交易。

之后剩余3份可以成功取消。

后来的取消确认不会删除之前的成交。

部分成交容易让最终状态产生误解

假设原订单为10份。

取消流程前后成交3份。

最终记录可能是:

只看最终Cancelled标签,可能误以为什么都没有成交。

应同时核对累计成交和剩余数量。

为什么期货订单会在多个价格成交说明累计成交核对。

  • 累计成交:3
  • 取消剩余:7
  • 最终working:0

Cancel reject也是可能结果

取消是一项修改订单状态的请求。

CME订单协议支持无法处理取消请求时返回reject。

订单状态或请求标识问题都可能导致取消失败。

不要把界面动画或灰掉的按钮当作交易所确认。

查看经纪商日志或执行报告,确认取消是成功、拒绝还是仍在等待。

不知道旧订单状态时不要发送替代订单

假设取消5份订单后,在确认旧订单最终状态前又发送新的5份。

如果旧订单在取消竞争中成交2份,新订单又成交5份,实际敞口可能变成7份。

原本想保持5份,结果反而增加了持仓。

应按下面方式核对:

最终持仓 = 之前持仓 + 所有已确认成交。

取消数量不是交易,不计入持仓。

网络和界面时差会隐藏真实顺序

订单界面、经纪商服务器、订单网关、撮合引擎和市场数据不是同一个时钟。

其他消息路径已经发生成交时,屏幕仍可能显示Pending Cancel。

即使交易所成交事件更早,成交提醒也可能在点击取消后才到达。

重建顺序时使用交易所或经纪商时间戳。

不要把弹窗出现顺序当作事件发生顺序。

市场状态可以限制取消行为

订单功能会随市场状态变化。

CME Globex区分pre-open、open、pause、closed、maintenance,并分别定义订单输入、修改和取消能力。

不要假设open市场中的取消经验在所有时段都一样。

确认准确市场状态和当前规则。

期货市场全天24小时开放吗?说明时段边界的重要性。 [!TRYMARK] 重建一次取消竞争 从working 10份订单开始。假设取消确认前成交3份,剩余7份取消。写出累计成交、取消数量、最终working数量和持仓变化。

使用取消检查清单

记录准确合约和订单ID。

记录原始数量与累计成交。

记录取消请求时间。

等待取消确认或最终状态。

检查是否返回cancel reject。

分开核对剩余数量和成交数量。

发送替代订单前确认净持仓。

使用经纪商或交易所时间,而不是屏幕提醒顺序。

本文解释订单状态机制,不保证任何特定经纪商的取消处理速度。

常见问题

点击取消后期货订单还能成交吗?

如果成交发生在取消最终生效前,或消息到达界面的顺序不同,就可能出现这种情况。应检查交易场所确认时间和状态。

Pending cancel是什么意思?

表示取消请求已收到,但订单尚未进入确认的Cancelled状态。

显示Cancelled就表示没有成交吗?

不是。订单可能先部分成交,再取消剩余数量。应检查累计成交。

点击取消后可以马上重新发送同样订单吗?

应先确认旧订单的最终状态和成交,否则旧订单成交加上新订单可能造成超过预期的持仓。

资料来源与延伸阅读

相关指南