3. 实盘交易基础
在回测与实盘一致性诊断中,最容易被忽视却最致命的差距,往往不在策略逻辑,而在交易执行层。回测里“信号出现即按收盘价成交”的假设,在实盘中要经过报单、撮合、排队、部分成交、撤单、回报确认等一系列环节。理解这些环节,才能解释为什么同一策略在实盘中会出现滑点、漏单和成交价偏差。
一、核心原理:从信号到持仓的完整链路
实盘交易流程可以抽象为一条状态机链路:策略产生目标仓位 → 风控校验 → 订单生成 → 报单 → 交易所/柜台撮合 → 成交回报 → 持仓与资金更新。回测通常把这条链路压缩成一步,而实盘每一步都可能引入延迟与不确定性。
关键差异点有三个:时间维度(信号时间、报单时间、撮合时间不一致)、价格维度(委托价与成交价可能不同)、数量维度(可能部分成交或未成交)。回测一致性诊断的本质,就是量化这三个维度的偏差来源。
二、订单类型与成交机制
不同订单类型决定了成交的确定性与价格风险。常见类型包括:
- 市价单(Market):优先成交,价格不确定,适合高流动性标的,但冲击成本高。
- 限价单(Limit):价格确定,成交不确定,可能排队等待或部分成交。
- 止损单(Stop):触发后转为市价或限价,存在触发价与成交价之间的滑点。
- 冰山单/隐藏单:只显示部分数量,降低市场冲击,但成交速度慢。
- IOC/FOK:立即成交否则取消 / 全部成交否则取消,用于控制执行风险。
成交机制方面,A股采用价格优先、时间优先的连续竞价,开盘/收盘有集合竞价;期货市场还有做市商与撮合混合机制。理解这些规则,才能解释为什么限价单在回测中“必然成交”,在实盘中却可能一直排队。
| 订单类型 | 价格确定性 | 成交确定性 | 典型偏差来源 |
|---|---|---|---|
| 市价单 | 低 | 高 | 滑点、冲击成本 |
| 限价单 | 高 | 低 | 未成交、部分成交、排队延迟 |
| 止损单 | 中 | 中 | 触发滑点、跳空 |
| IOC | 中 | 中 | 部分成交后剩余取消 |
三、市场微结构:盘口、流动性与冲击成本
市场微结构研究的是订单如何被撮合、价格如何形成。对回测一致性影响最大的三个概念是:买卖价差、盘口深度、订单簿不平衡。
买卖价差是即时交易的成本下限。回测若用中间价成交,等于假设零价差,实盘中买入要付卖价、卖出要付买价,一进一出就损失一个价差。盘口深度决定大单能否在不显著推动价格的情况下成交。订单簿不平衡则反映短期买卖压力,会影响成交速度和价格方向。
# 盘口快照示例(简化)
bid_price: 10.00 bid_volume: 5000
ask_price: 10.01 ask_volume: 3000
spread = 0.01
mid_price = 10.005
# 若买入10000股,需吃掉ask_volume并继续向上吃单
# 实际成交均价会高于10.01,产生冲击成本
冲击成本通常与下单量占盘口深度的比例正相关。回测中若忽略这一点,大资金策略的实盘收益会被显著高估。
四、案例与场景:限价单排队偏差
假设某策略在10:00:00产生买入信号,回测按10:00:00的收盘价10.00成交。实盘中,策略在10:00:00.050发出限价单10.00,此时盘口卖价为10.01,买单排在队列后方。10:00:03价格短暂下探至10.00,但队列前方有大量订单,策略未成交;10:00:05价格反弹至10.02,策略最终追单成交在10.02。
这一场景中,偏差来自三处:报单延迟50毫秒、排队未成交、追单滑点。回测若不做延迟建模和排队模拟,就会系统性高估收益。
五、误区与复盘
- 误区一:用收盘价成交。收盘价是集合竞价结果,实盘中无法保证按该价格成交。
- 误区二:忽略部分成交。部分成交会导致实际仓位小于目标仓位,影响后续信号。
- 误区三:假设限价单必然成交。限价单只是价格约束,不是成交保证。
- 误区四:忽视撤单与重报。实盘中撤单有延迟,重报可能错过最佳价格。
复盘时应逐笔对比回测成交记录与实盘成交记录,按“价格偏差、数量偏差、时间偏差”三类归因。只有把执行层的偏差量化,才能判断策略的真实容量与稳定性。
掌握实盘交易流程、订单类型、成交机制与市场微结构,是后续构建一致性诊断框架的基础。只有先看清执行层的真实约束,才能设计出贴近实盘的回测模型。