4. 盘口策略信号定义与回测执行

盘口策略的核心不在于“看到盘口变化就下单”,而在于把盘口特征转化为可计算、可复现、可回测的信号。本节围绕两个典型信号——订单簿失衡(Order Book Imbalance, OBI)与大单跟踪(Large Order Tracking)——说明如何定义信号、如何在回测引擎中触发、如何模拟订单执行与成交,并给出可落地的参数与判断依据。为便于说明,本节所有数值均为教学示例或合理假设,不代表真实市场实测结果。

一、信号定义:从盘口快照到可计算指标

盘口数据通常以快照序列形式到达,每个快照包含买一至买N、卖一至卖N的价格与数量。定义信号前必须先固定参照约定:本文中“失衡度”以买盘为正向,OBI > 0 表示买方力量占优,OBI < 0 表示卖方力量占优;价格变动以“最新成交价相对上一快照的变化”计,上涨为正。

订单簿失衡信号:取前K档(示例K=5),计算买方总量与卖方总量:

bid_vol = Σ bid_qty[i], i=1..K
ask_vol = Σ ask_qty[i], i=1..K
OBI = (bid_vol - ask_vol) / (bid_vol + ask_vol)   # 取值 [-1, 1]

示例:某快照前5档买量合计 12000 手,卖量合计 8000 手,则 OBI = (12000−8000)/20000 = 0.20。仅凭单点 OBI 不足以触发交易,通常还需加入持续性条件(连续M个快照 OBI > 阈值)与价格条件(买一价未被击穿),以过滤瞬时挂单抖动。

大单跟踪信号:识别单笔或单档挂单量显著高于近期均值的“大单”,并跟踪其后续行为。示例规则:某档挂单量 ≥ 近200个快照该档位挂单量均值的3倍,且持续存在≥3个快照,记为“大单出现”;若该大单在买盘且价格未创新低,视为支撑性大单,产生偏多信号;若大单被快速撤单且价格反向运动,则视为“假支撑”,信号失效。

信号定义应写成“条件表达式 + 参数 + 失效条件”三部分,例如:OBI_5 > 0.15 连续3快照 且 买一价 ≥ 前3快照最低买一价 → 多头信号;OBI_5 回落至 0.05 以下或买一价被击穿 → 信号失效。这样回测引擎才能逐条判定,而不是依赖人工看盘。

二、回测引擎中的信号触发与订单执行

回测引擎按时间顺序回放快照,每个快照执行“更新盘口状态 → 计算指标 → 判定信号 → 生成订单 → 模拟成交 → 记录持仓与盈亏”的循环。关键在于信号触发与订单执行必须分离:信号只产生“意图”,订单执行才决定成交价与成交量,二者混在一起会导致回测结果虚高。

订单执行模拟需明确三件事:下单时点(信号所在快照的下一快照开盘执行,避免使用未来信息)、成交价(市价单按对手盘逐档吃单,限价单按价格优先判定是否可成交)、成交量(受对手盘挂单量约束,超出部分按未成交处理或按滑点模型折算)。示例:信号在快照t触发,快照t+1卖一价10.02、卖一量300手,若下单买入500手,则300手以10.02成交,剩余200手按卖二价10.03成交,形成实际滑点。

盘口信号 → 回测执行 → 成交与结果判定 盘口快照序列 买1-5 / 卖1-5 价量 指标计算 OBI_5、大单倍数 持续性计数 信号判定 阈值 + 持续 + 价格条件 输出:多 / 空 / 失效 订单生成 方向 / 数量 / 限价或市价 下一快照执行 成交模拟 逐档吃单 / 滑点 部分成交处理 持仓与盈亏 成交价、手续费 浮动/已实现盈亏 结果判定 胜率、盈亏比 最大回撤、滑点 信号失效 → 平仓/不再加仓 示例参数(教学假设): K=5档;OBI阈值 0.15,连续3快照;大单倍数 3倍、持续3快照;信号在t+1快照执行;市价单逐档成交,限价单按价格优先判定。 判定口径:OBI>0为买方占优;价格相对上一快照上涨为正;滑点=实际成交均价−信号快照对手价。

三、成交模拟的关键细节与常见偏差

回测结果失真往往来自成交模拟过于理想。第一,不能假设信号快照的价格可成交:信号基于快照t的盘口,但下单到达时盘口可能已变化,必须用t+1快照的对手盘模拟。第二,限价单要判定排队与成交概率:若限价买单价等于买一价,需考虑前方排队量,示例可设“成交概率 = 可成交量 / (前方排队量 + 本单量)”,或保守地仅在价格被击穿时成交。第三,大单信号要处理撤单:大单撤单本身是信息,回测中应把“大单消失”作为信号失效事件记录,而不是忽略。

此外,手续费与滑点应显式建模。示例:单边手续费万分之三,市价单滑点按逐档成交均价与信号快照对手价之差计算。若某笔多头信号在10.02买入500手、实际均价10.024,则滑点为0.004元/股,需在盈亏中扣除,否则高频盘口策略的收益会被系统性高估。

四、结果观察与判断依据

回测跑完后,不应只看总收益,而应按信号类型分组统计:OBI信号与大单信号各自的触发次数、胜率、平均盈亏比、平均滑点、信号失效后的反向波动。判断信号是否可用的示例标准:触发次数足够(如≥100次)、胜率与盈亏比组合下期望为正、滑点占预期收益比例不超过30%、最大回撤在可接受范围。若某信号触发频繁但扣除滑点后期望转负,说明信号本身可能被盘口噪声主导,应调整阈值或增加持续性条件,而不是直接投入实盘。

回测中严禁使用未来数据:指标计算只能使用当前及历史快照,订单执行只能使用信号之后的快照。任何“用信号快照的卖一价成交”的写法都会让结果偏乐观,是盘口策略回测最常见的错误之一。

综上,盘口策略信号定义要落到“条件、参数、失效”三要素,回测执行要严格分离信号与成交,成交模拟要覆盖逐档吃单、部分成交、滑点与手续费。只有把这三层都做扎实,回测报告中的胜率、盈亏比与回撤才具备参考价值,后续的自动报告生成也才有可信的数据基础。