2. 金融市场与交易基础
算法交易执行的第一步,不是写策略信号,而是理解“订单如何被市场撮合”。同一笔买入指令,在开盘集合竞价、连续竞价、午间休市前后、收盘集合竞价中,成交结果可能完全不同。市场微结构研究的就是价格形成、订单撮合、参与者行为与交易规则之间的微观机制。对执行算法而言,它决定了滑点模型、下单节奏、订单类型选择以及风险控制参数。
一、核心原理:市场微结构如何决定成交质量
现代交易所普遍采用电子限价订单簿(Limit Order Book, LOB)。订单簿按价格优先、时间优先排列:买方出价最高者优先,卖方要价最低者优先;同价则先到先得。订单簿两侧的实时状态,构成了执行算法的“战场地图”。
- 买一价(Bid1):当前最高买入报价,代表即时可卖出价格。
- 卖一价(Ask1):当前最低卖出报价,代表即时可买入价格。
- 买卖价差(Spread):Ask1 − Bid1,是做市商与流动性提供者的基础补偿,也是交易者的即时成本。
- 中间价(Mid Price):(Bid1 + Ask1) / 2,常作为算法参考价格与滑点基准。
- 市场深度(Depth):各价位挂单量,决定大单能否在不显著推动价格的情况下成交。
流动性是执行算法的核心约束。流动性好时,价差窄、深度厚,市价单冲击小;流动性差时,价差宽、挂单稀薄,大单会“吃穿”多个价位,产生显著滑点。因此,执行算法必须在“成交速度”与“成交价格”之间做权衡。
二、订单类型与交易时段:执行算法的工具箱
不同订单类型对应不同的成交确定性与价格风险。执行算法通常组合使用多种订单,以平衡冲击成本与机会成本。
| 订单类型 | 成交确定性 | 价格风险 | 典型用途 |
|---|---|---|---|
| 市价单(Market) | 高,立即成交 | 高,可能吃穿多档 | 紧急建仓、止损 |
| 限价单(Limit) | 低,可能不成交 | 低,价格可控 | 被动挂单、降低价差成本 |
| IOC(立即成交或取消) | 部分确定 | 中,剩余取消 | 快速试探流动性 |
| FOK(全部成交或取消) | 全有或全无 | 中,避免部分成交 | 套利、组合交易 |
| 冰山单(Iceberg) | 隐藏真实数量 | 低,分批暴露 | 大单拆分、减少市场冲击 |
交易时段同样关键。以A股为例,9:15–9:25为开盘集合竞价,9:30–11:30与13:00–15:00为连续竞价,14:57–15:00为收盘集合竞价。集合竞价阶段流动性集中但价格波动剧烈,连续竞价阶段适合算法拆单,收盘集合竞价则常用于以收盘价成交。算法必须根据时段动态调整下单频率与订单类型。
三、案例场景:一笔大单的执行滑点复盘
假设某机构需要在流动性一般的股票上买入50,000股,当前中间价为100.01元,Bid1=100.00,Ask1=100.02。若直接发送市价单,订单将依次吃掉Ask1的1,000股、Ask2的2,200股、Ask3的3,500股……直至成交完毕。成交均价可能达到100.05元,相对中间价的滑点为:
滑点 = (成交均价 - 中间价) / 中间价
= (100.05 - 100.01) / 100.01
≈ 0.04%
若买入50,000股,额外成本 ≈ 50,000 × 0.04 = 2,000元
若改用TWAP算法,将50,000股拆分为50笔、每笔1,000股,在30分钟内均匀下单,并优先使用限价单挂在Bid1或中间价附近,成交均价可能降至100.03元,滑点压缩至0.02%,节省约1,000元。这就是执行算法存在的直接价值。
四、方法流程与复盘要点
建立执行算法的市场微结构分析流程,建议按以下步骤推进:
- 采集订单簿快照:记录Bid1/Ask1、各档深度、成交明细,频率至少每秒一次。
- 计算流动性指标:价差、深度、订单簿不平衡(OBI)、成交量分布。
- 选择订单类型:根据紧迫度、流动性、时段决定市价/限价/IOC比例。
- 设定滑点基准:以到达价(Arrival Price)或中间价为基准,实时监控滑点。
- 动态调整节奏:流动性变差时放慢,价差收窄时加快。
- 盘后复盘:对比实际成交均价与基准,归因于价差、冲击、时机还是延迟。
复盘时重点关注三类偏差:一是时机偏差,即下单延迟导致价格已变动;二是冲击偏差,即自身订单推动价格;三是机会偏差,即限价单未成交而错失行情。只有把这三类偏差量化,才能持续优化执行算法参数。