2. 交易执行基础概念
在讨论成交率与撤单率之前,必须先厘清三个基础概念:一笔订单从产生到终结经历了哪些状态、什么算“成交”、什么算“撤单”。这三个定义直接决定了统计口径,而口径一旦不一致,两个交易团队报出的“成交率 85%”可能根本不可比。本节围绕订单生命周期、成交与撤单的判定边界,以及常见订单类型对统计口径的影响展开。
一、订单生命周期:从提交到终结的状态链
一笔订单在交易系统中的完整生命周期通常包含以下状态:已创建(策略或人工生成订单意向)、已提交(发送至柜台或交易所)、已受理/已确认(交易所或券商柜台返回确认)、部分成交(成交量大于零但小于委托量)、全部成交、已撤单(主动撤销或系统撤销)、已拒绝(风控或交易所拒单)、已过期(如当日有效订单收盘失效)。
统计时必须明确“分母”取哪个状态。常见做法有两种:以已提交订单数为分母,或以已受理订单数为分母。前者把被拒单也计入分母,反映策略意图到实际成交的转化;后者剔除拒单,反映“进入市场后”的成交效率。两者差异在拒单率较高的场景下可能达到数个百分点,因此报表中必须标注口径。
二、成交与撤单的判定边界
成交的判定相对明确:只要交易所回报的成交量大于零,即产生成交。但统计上有两个易混淆点。其一,部分成交是否计入“成交订单数”?若按订单笔数统计,一笔部分成交订单算 1 笔成交;若按成交量统计,则只计入实际成交股数。两种算法得出的成交率可能相差很大——例如 100 笔订单中 60 笔全部成交、20 笔部分成交、20 笔全撤,按笔数成交率为 80%,按成交量加权则取决于部分成交的比例。其二,成交后撤销剩余量的订单,应同时计入“有成交”和“有撤单”,不能因为发生过成交就忽略撤单行为。
撤单的判定需要区分主动与被动。主动撤单是策略或交易员发出的撤销指令;被动撤单包括交易所因风控、涨跌停、流动性不足等原因触发的系统撤销。统计撤单率时,通常将两者合并计算,但分析原因时应分开归因。此外,已拒绝和已过期不属于撤单,若把它们混入撤单率,会虚高撤单水平,掩盖真实的策略行为。
三、常见订单类型及其对统计口径的影响
不同订单类型的执行逻辑不同,对成交率与撤单率的统计影响也不同。以下列举几类常见订单:
| 订单类型 | 执行特征 | 对成交率的影响 | 对撤单率的影响 |
|---|---|---|---|
| 限价单(Limit) | 指定价格,未成交部分挂单等待 | 成交率取决于价格偏离程度,挂单时间越长成交概率越高 | 策略主动撤单频繁,撤单率通常较高 |
| 市价单(Market) | 立即以对手方最优价成交 | 成交率接近 100%(流动性充足时) | 几乎不产生撤单,撤单率极低 |
| IOC(立即成交剩余撤销) | 能成交的部分立即成交,剩余量自动撤销 | 成交率取决于瞬时流动性 | 未成交部分自动计入撤单,撤单率被系统性抬高 |
| FOK(全部成交否则撤销) | 要么全部成交,要么整笔撤销 | 成交率呈“全有或全无”分布 | 未满足条件时整笔撤销,撤单率与流动性强相关 |
| 止损单/条件单 | 触发后才提交至市场 | 触发前不计入已提交订单,统计起点需明确 | 触发后若未成交可能撤单,需区分触发前后 |
以 IOC 订单为例:假设某策略当日提交 500 笔 IOC 订单,其中 300 笔全部成交、100 笔部分成交后剩余量自动撤销、100 笔完全未成交而整笔撤销。若按订单笔数统计,成交率为 300/500 = 60%,撤单率为 200/500 = 40%。但这里的 40% 撤单中,有 100 笔是“部分成交后的剩余量撤销”,并非策略主动放弃。若报表不区分“主动撤单”与“IOC 自动撤销”,就会误判策略的撤单行为。因此,使用 IOC/FOK 等自动撤销类订单时,撤单率必须单独标注“含自动撤销”口径,否则与限价单策略的撤单率不可比。
四、统计口径的落地约定
为了让成交率与撤单率在团队内部和跨周期比较中保持一致,建议在统计前明确以下约定并写入报表说明:
- 分母定义:采用“已提交订单数”还是“已受理订单数”,是否剔除拒单。
- 成交计数方式:按订单笔数还是按成交量(股数/金额)加权;部分成交订单如何计数。
- 撤单范围:是否包含 IOC/FOK 自动撤销、系统撤销、部分成交后的剩余量撤销。
- 时间窗口:按自然日、交易时段还是策略运行区间统计;跨日订单归属哪一天。
- 订单类型分层:限价单、市价单、IOC、FOK 等是否分开统计,还是合并后加权。
举例来说,某交易台在日报中约定:分母为已受理订单数(剔除拒单),成交按订单笔数统计(部分成交计 1 笔),撤单仅统计策略主动撤单(不含 IOC 自动撤销),并按订单类型分层展示。这样,限价单策略的撤单率与 IOC 策略的撤单率各自独立,不会因为订单类型结构变化而产生虚假的“撤单率上升”信号。若某日限价单占比从 70% 降至 40%、IOC 占比上升,合并统计的撤单率会自然下降,但这并不代表执行质量改善——分层统计才能看清真实变化。
订单生命周期、成交与撤单的判定、订单类型的执行特征,三者共同构成统计口径的基础。口径清晰之后,后续的成交率计算、撤单率归因和跨周期对比才有意义。实际工作中,建议把上述约定固化为统计脚本中的字段映射规则,而不是每次手工判断,以减少口径漂移。