← 返回研究文章
交易执行实践方法

成交之前,先理解你在队列中的位置

把队列假设与撤单/新增消息比转换成可失败的测试:先区分笔数、平均尺寸与总量,再检验前缀不变性和样本外策略排序。

一张限价单的生命,不止是价格

下单决策、请求发送、交易所确认、进入队列、部分成交、撤单请求与撤单确认,是不同的事件。回测如果把它们折叠为同一个时刻,就可能忽略关键执行成本。

本文给出一个事件回放的设计方法。具体撮合优先级应以目标交易所与合约的规则为准,不能默认所有市场都使用相同机制。

先说明你拥有什么数据

逐笔委托数据与聚合档位快照支持的判断精度不同。如果无法恢复真实队列位置,就应在结果中明确使用了估计。尤其不能把所有档位减少都算作自己前面的撤单。

并排运行三种成交假设

  • 乐观情形:使用较有利的队列消耗假设,作为敏感性比较。
  • 基准情形:依据可观测数据和样本校准队列变化。
  • 保守情形:不给不可识别撤单带来优先级改善,并加入延迟压力。

如果一个模型只在乐观情形下成立,下一步研究的重点应是补齐执行证据。平均收益之外,还应比较三种情形的成交数量、持仓时间与成交后价格变化。

撤单也有未决状态

撤单请求发出,并不表示订单立即失效。设计回放时应保留“待撤”状态,并允许在确认前发生成交;随后根据回报调整库存,防止重复计入或遗漏。

实践输出:为每笔订单保存事件轨迹,用少量真实可核对的订单逐一复查状态转换,再扩大回放规模。
补充原始参考:Huang、Lehalle 与 Rosenbaum 的 Queue-reactive 模型,为状态依赖订单流建模提供框架;它不替代真实队列恢复和本地校准。

新增研究推进 · 把撤单/新增消息比拆成三种量

Yueshen 的队列不确定性模型把“新增后很快撤单”作为可检验的深度过冲机制,并区分撤单/新增的笔数比与平均尺寸比。这两个量不能用一个“撤单量占比”替代;模型是同价位、静态一跳和特定修正时点下的机制预测,不是对所有市场消息的普适解释。

对一个预先登记的同价位、同方向消息簇,令 A、C 为新增与撤单笔数,V+、V- 为对应数量(均只计入定义好的窗口和可链接消息),可同时报告:

r_N = C / A
r_qbar = (V- / C) / (V+ / A)
r_V = V- / V+ = r_N × r_qbar

其中 r_qbar 是“每笔撤单平均尺寸 ÷ 每笔新增平均尺寸”,不是总撤单量与总新增量;三者的乘法恒等式是账本检查,不是额外的经验结论。分母为零、跨窗口无法链接或消息数量不完整时,保留为缺失并报告原因,不能填零。

在 Yueshen 的同质大市场近似中,设初始新增深度为 yhat、修正后的盈亏平衡深度为 y、队列中使阈值被跨越的订单序号为 k、新增笔数为 n,并令 alpha = yhat / y - 1。其有限样本关系可写为:

r_N = (n - k + 1) / n
r_qbar = [ (yhat - y) / (n - k + 1) ] / (yhat / n)
    = [ alpha / (1 + alpha) ] / r_N
r_V = r_N × r_qbar

当同质市场规模趋于大时,r_N -> alpha/(1+alpha)、r_qbar -> 1;存在快慢做市者时,模型预测 r_qbar < 1,且随快流动性提供者占比 psi_F 增加而上升。这里的 k、yhat 与 y 在真实聚合盘口中通常不可直接观测,所以这些式子用于规定可失败的映射和边界,不得当作已校准参数。原始机制与边界见 Yueshen · Queuing Uncertainty of Limit Orders。

将机制变成可证伪的消息事件研究

  1. 定义簇与窗口:按价格、方向和短时间阈值预先聚合同一层的新增消息;在交易所接受时间或可验证的回报时间上定义 t0,在固定的 H 内跟踪撤单、成交和改价。能用订单 ID 链接时逐笔核对;只有聚合盘口时,另设“无法链接”类别,不把所有深度减少归为撤单。
  2. 并列三个结果:对每个簇记录 r_N、r_qbar、r_V,同时给出按簇分布与按总暴露加权的结果。簇内若先发生部分成交,再发生撤单,应按事件顺序拆分剩余量,避免把已成交数量重复当作撤单。
  3. 检验方向而非套结论:在相同价差、初始深度、波动、OFI、时段、场所、订单年龄和可观测延迟分层后,预先登记“更不利的成交后价格变化是否伴随更低的 r_N”以及“可观测的快延迟占比是否伴随更高的 r_qbar”。前者对应模型中更严重逆向选择压低撤单/新增笔数比的方向,后者只在有可靠延迟或参与者标签时才可检验;没有这些数据时只能报告不可识别。
  4. 反事实与不确定度:使用时间分块或按事件簇聚类的区间,加入伪簇/非重叠窗口作为负控;同时报告盘口缺包、无法链接和跨时段样本比例。若关系在随机伪簇中同样存在,先解释选择和时段混杂,不得称为队列机制证据。
尚未证实

本站没有运行上述消息簇事件研究,也没有观测到真实队列序号、快慢做市者占比或交易所回报来校准 k、yhat、y。当前新增内容的实质是把原始理论的两类可观测预测(笔数比与平均尺寸比)转换成不混淆的三种指标、账本恒等式和失败条件;它不构成国内期货的实证结论或盈利承诺。

研究推进 · 先验证模拟器,再评价策略

以下是本站新增的实验设计,不是已完成的本地实证。原文要求并排比较队列假设,但仍缺少一个前置问题:模拟器是否把未来信息带进过去,或者用自己生成的成交证明自己正确?需要把观察到的市场事件、模型推断的队列状态、模拟成交与真实订单回报分别保存。聚合盘口匹配只能检验盘口层,不能单独证明真实队列位置和成交概率准确。

第一道门:历史前缀不变性

冻结代码、参数、训练结果、随机种子和同时间戳事件顺序。选择截止事件序号 k,构造两条在 k 及以前完全相同、之后不同的数据流。逐一比较两次运行在 k 及以前的特征、动作、队列估计、成交回报和库存,它们应完全相同;数值计算若使用容差,应预先声明。用于评价的未来 Markout 标签不参加这项比较,因为标签本来依赖未来。

E[1:k] = E′[1:k] ⇒ O[1:k] = O′[1:k]
O:当时可知的状态、订单动作、成交与库存

这里的等式是因果回放应满足的必要条件,不是充分的真实性证明。只有交易所时间相同而接收顺序不同的事件,不算同一信息前缀。离线标准化、全日统计量、整段插值和预先读取后续快照都可能破坏该条件。测试时既运行截断数据,也替换后缀并维持共同前缀的随机数;禁止借文件总长度改变初始状态。若失败,先定位第一处差异,不再解释策略收益。

第二道门:最小事件样例与账本约束

  • 构造前方排队、主动成交、无法定位的撤单、部分成交、档位离开可见深度、待撤成交、确认后失效等最小序列,手算预期状态转换。
  • 任何订单的累计成交不得超过有效订单量;撤单确认前仍按有效订单处理,确认之后不得产生新的交易所成交事件。迟到回报应按原成交时刻对账,不能误删。
  • 同一份市场成交量不能既完整消耗前方队列,又再次完整分配给自己的订单。多张自有订单共享队列时,也不能各自独占全部可用成交量。
  • 固定种子回归用于发现代码变更,不能替代无前视测试和真实订单校准;通过次数、失败次数和跳过次数应分开报告。

第三道门:检验策略排序是否依赖队列假设

预先冻结一个与数据和撮合规则相容的模型集合 Θ,再把候选策略 A 与基线 B 放在相同样本外时段、费用和风险约束下比较。每个队列模型 θ 都要重新运行完整策略,不能只替换成交标签而保留原库存和后续动作。

Δ(θ) = J(A;θ) − J(B;θ)
敏感性区间 = [minθ∈Θ Δ(θ), maxθ∈Θ Δ(θ)]

J 必须是统一成本口径的策略评价量,并与库存路径和退出规则相容。这是所选模型集合上的敏感性区间,不是置信区间,也不是包含真实收益的数学保证。若该区间跨零,说明候选优劣依赖未识别的队列假设;若全为正,也只能说明在所选集合内排序稳定。还需分别报告时间分块或聚类的不确定度,不能把模型差异与抽样误差混为一谈。

并列输出任意成交概率、成交数量、成交条件 Markout、库存尾部和净财富变化。队列变化会改变被选入成交样本的订单,也会改变后续库存与报价,所以“更保守的成交假设”并不必然产生更低收益,不能把少成交自动当作收益下界。相关会计边界见成交率与库存财富研究。

尚未证实

本站尚未运行上述测试,也没有用真实订单回报完成本地队列校准。当前推进是把“队列不确定性”转换成明确的失败条件和实验顺序:先验因果性,再验状态与账本,最后检验样本外排序。它连接成交概率、成交条件质量、库存路径、执行延迟与样本外验证,不构成盈利结论。

参考文献与研究边界

本文为研究与教学笔记,示意数据不代表实盘表现,未进行实盘绩效验证。

继续浏览研究文章 →

搜索研究

从一个问题开始,寻找一条研究路径。