· 量化交易 · 第 2 / 6 讲

五、市场微观结构

订单簿、Maker/Taker、资金费率、做市商模型、VPIN、清算瀑布与执行质量——CEX 量化必备。

市场微观结构研究价格如何在市场参与者的交互中形成,是 CEX 量化策略开发的必备基础知识。


订单簿(Order Book)

订单簿是交易所维护的所有挂单列表,分为两侧:

订单簿深度(Depth)反映市场的流动性:挂单量越大,单笔大额交易对价格的冲击越小。

订单簿快照解读

卖单(Ask)价格买单(Bid)
0.5 BTC60,050
1.2 BTC60,020
60,0002.0 BTC
59,9800.8 BTC
59,9503.5 BTC

订单簿深度与流动性

深度衡量:统计最优报价 ±0.1%、±0.5%、±1% 范围内的挂单量,反映不同规模订单的容纳能力。流动性差的市场特征:

订单流不平衡(Order Flow Imbalance, OFI)

OFI=ΔQbidΔQaskΔQbid+ΔQaskOFI = \frac{\Delta Q^{bid} - \Delta Q^{ask}}{|\Delta Q^{bid}| + |\Delta Q^{ask}|}

其中 ΔQbid\Delta Q^{bid} 为单位时间内买方订单簿数量变化,ΔQask\Delta Q^{ask} 为卖方变化:OFI > 0 表示买方压力更强,价格短期上涨概率更高;OFI < 0 则相反。OFI 是高频策略中重要的预测因子,在毫秒到秒级时间窗口内有显著预测能力。

OFI 的注意事项:市场高压情况下,做市商会快速撤单(Queue cancellation)而非实际成交,导致 OFI 信号被噪声污染。高质量的 OFI 需要区分「挂单变化·平抣成交」,而非直接用订单簿快照的数量差做 OFI。


Maker 与 Taker

在 CEX 量化中,策略的 Maker/Taker 比例直接影响手续费成本,做市策略通常追求 100% Maker。


价格冲击(Market Impact)

当单笔成交量超过订单簿某档挂单量时,会吃掉多个价格档位,导致实际成交价格比预期更差。资金量越大,价格冲击越显著,策略容量受到限制(见第二章「策略容量」节)。


资金费率(Funding Rate)

永续合约特有机制,每隔固定时间(通常 8 小时)根据合约价格与现货价格的偏差,多空双方互相支付费用。

资金费率计算公式

FR=Clamp ⁣(Premium+Clamp(IRPremium, 0.05%, 0.05%), 0.75%, 0.75%)FR = Clamp\!\left(Premium + Clamp(IR - Premium,\ -0.05\%,\ 0.05\%),\ -0.75\%,\ 0.75\%\right)

其中 Premium=(PperpPspot)/PspotPremium = (P_{perp} - P_{spot}) / P_{spot}IRIR 为利率分量(逆回资金投入率,通常赴零)。

年化资金费率 = 8小时费率 × 3 × 365(以 Binance 每日 3 次为例)。

资金费率的市场含义

资金费率市场情绪策略含义
> 0.1%(8h)过度贪婪多头拥挤,注意回调风险
0.01%~0.05%正常偏多中性
0%均衡中性
< 0偏空或恐慌空头拥挤,注意反弹

资金费率的不对称性:布林带策略认为资金费率中性是错误的。牛市中持续的正资金费率意味着空头持续支付,这会强制空头平仓并进一步推高价格;熊市中持续为负则强制多头平仓并进一步压低价格。资金费率的方向本身就包含了市场的趋势信息。


深入:做市商行为模型(Avellaneda-Stoikov Model)

理解做市商的行为模式,能够帮助量化策略更好地理解对手盘和流动性环境。

模型核心需求

做市商面临两个核心时题:

  1. 库存风险(Inventory Risk):持有非零库存时,价格走势不利可能造成损失。库存越大,风险扦露越高。
  2. 逆选择风险(Adverse Selection):有信息交易者(Informed Traders)知道价格将要运动的方向,他们会优先与做市商成交(在价格走高前用 Ask 价买入),不断优化做市商的报价。

Avellaneda-Stoikov 公式

模型的核心结果是两个报价公式:

保留价(Reservation Price)——做市商忍耐库存风险后所愿意指定的中间价:

r=sqγσ2(Tt)r = s - q \cdot \gamma \cdot \sigma^2 \cdot (T - t)

其中 ss 为当前中间价,qq 为当前库存(持有量,做空为负),γ\gamma 为风险厌恶系数,σ2\sigma^2 为价格方差,(Tt)(T-t) 为剩余时间。

最优报价差(Optimal Spread)

δask+δbid=γσ2(Tt)+2γln ⁣(1+γκ)\delta^{ask} + \delta^{bid} = \gamma \sigma^2 (T-t) + \frac{2}{\gamma} \ln\!\left(1 + \frac{\gamma}{\kappa}\right)

其中 κ\kappa 为订单到达强度参数。

直观解读

对量化策略的启示:即使不做做市策略,理解 Avellaneda-Stoikov 模型也有助于认识:为何在某些时刻市场深度会突然丢失(做市商工具库存超过阈值时会收紧报价)、为何大单的实际滑点远高于订单簿的理论值。


订单流毒性与 VPIN

逆选择风险的直观理解

实际上,市场中存在有信息交易者(Informed Traders),他们的交易显露了价格将要运动的信息。当有信息交易者活跃时,做市商和被动仓位者多成交一笔,就多一笔逆选择损失。

**订单流毒性(Order Flow Toxicity)**是指订单流中有信息交易者成分的占比。毒性越高,做市商选择拉大报价差、降低挂单深度或直接退出市场。订单流毒性的强弱直接决定了市场实际能承容多少交易。

VPIN(Volume-synchronized Probability of Informed Trading)

VPIN 由 Easley et al.(2012)提出,是评估订单流毒性的主要指标。其核心思想是:用一系列固定的「成交量桶(Volume Bucket)」替代固定时间间隔,并在每个桶中估计主动买入和主动卖出的比例。

VPIN=1nτ=1nVτBVτSVτVPIN = \frac{1}{n} \sum_{\tau=1}^{n} \frac{|V_\tau^B - V_\tau^S|}{V_\tau}

其中 VτBV_\tau^BVτSV_\tau^S 分别为第 τ\tau 个桶中的主动买入和卖出量,Vτ=VτB+VτSV_\tau = V_\tau^B + V_\tau^S

VPIN 的直观含义:若买卖均衡,|V^B - V^S| 趋近于 0,VPIN 低(毒性低)。若买方压倒性地远大于卖方,VPIN 高(可能有大量有信息购买行为)。

实战应用:VPIN 当作流动性危机的预警指标。当 VPIN 持续升高并超过历史分位数 80% 分位时,提示高信息密度的交易活动正在发生,市场流动性可能即将收紧、滑点急剧上升,高频策略应考虑降低成交频率或暂时回避。


逐笔数据分析(Tick Data Analysis)

交易方向标识(Trade Sign)

逐笔数据中每笔成交需要判断是「主动买入」还是「主动卖出」——这不能直接从 CEX 数据获得,需要判断算法。最常用的是 Lee-Ready 算法

Signt={+1成交价Best Ask1成交价Best BidSignt1其他(tick test)\text{Sign}_t = \begin{cases} +1 & \text{成交价} \geq \text{Best Ask} \\ -1 & \text{成交价} \leq \text{Best Bid} \\ \text{Sign}_{t-1} & \text{其他(tick test)} \end{cases}

即:成交在 Ask 一侧为主动买入,在 Bid 一侧为主动卖出,在价差内则继承上一笔的方向。

加密 CEX 的高频数据中,大量成交发生在价差内(做市商与做市商之间),此时 tick test 局限性较大。更精确的方法是结合 WebSocket 订单簿更新流来底层判断。

Bid-Ask Bounce

Bid-Ask Bounce 是指在无任何真实价格运动的情况下,仅由于成交在 Bid 和 Ask 之间来回切换而产生的表观价格波动。高频对齐回测中如果直接用成交价计算收益,而不考虑 Bid-Ask Bounce,会平白产生逍交擦费等和的虚假回测收益。

估算 Bid-Ask Bounce 的影响:每次成交需要越过上 Spread,所以单笔有效收益 = 真实价格变化 - Spread。对于高频策略,常要求 E[ΔP]>Spread/2\text{E}[\Delta P] > \text{Spread}/2 才有盈利空间。

钉形(Pin Bar)与层发成交识别

Pin Bar(长影线 K 线)在逐笔层面的表现往往是价格尝试穿越关键水平、遇到大量挂单抵抗后快速反射的结果。在逐笔层面演化过程如下:

  1. 价格接近大量挂单的价位,到达率(Order arrival rate)升高
  2. 大量 Taker 吃单,临时消耗订单簿深度
  3. 做市商快速补单(或防守挑战者入场),价格反射
  4. K 线上展现为长影线

识别此类模式有助于识别订单簿中的大量防守挂单位置,其对分类为市场支撑/阻力位的功能有重要认识价值。


加密市场特有:清算驱动行情机制

清算驱动行情的形成过程

加密衍生品市场(尤其永续合约)的高杠杆特性,使得清算驱动行情成为重要的驱动因素:

  1. 价格下跌到部分多头仓位的清算价,交易所自动市价卖出这些仓位(市价单 Taker)
  2. 大量市价卖单吸尽 Ask 一侧订单簿深度,价格快速下行
  3. 价格下跌触发进一步的删单(做市商撤回买单),订单簿更稀薄
  4. 清算量越大,价格下行幅度越大,且可能触发更多层级的清算

公开清算信息的策略意义

加密市场的一个独特性质是:清算数据是公开的。交易所(Binance、OKX 等)会实时公布合约的强平数据,包括:强平价、仓位角度和强平山簿各个价位的汇总数据。

清算热力图(Liquidation Heatmap):将各价位的权益(背后的几个百分点现价变化会导致强平的仓位资金量)展示为热力图。Coinglass 等平台提供了此类信息的可视化。

策略应用

清算驱动行情与正常行情的区分

特征清算驱动行情正常趋势行情
成因演算污染强平信息/资金流走向
波动特征瀑布式急蒌,漠不迎相对平滑,有逐段强弱
持续时间通常极短(分钟~小时)可能持续多天
进入清算带后灵敏反弹或尾盘深幅继续趋势
订单簿特征Bid侧奇空,深度急剥两侧均受影响

深入:成交量分析

VWAP(成交量加权平均价格)

VWAP=i(Vi×Pi)iViVWAP = \frac{\sum_i (V_i \times P_i)}{\sum_i V_i}

VWAP 代表市场参与者的平均成本。价格在 VWAP 上方视为多方主导,下方视为空方主导。

执行算法应用:机构大单常以 VWAP 为目标价格,将大订单拆分成小订单分批执行(VWAP 算法),减少市场冲击。

TWAP(时间加权平均价格)

TWAP = iPi/N\sum_i P_i / N

在固定时间间隔内均匀执行,不考虑成交量。适合对价格冲击不敏感的场景。

成交量异常检测

成交量突然放大(如超过 20 日均值 3 倍以上)通常预示重大信息释放或大资金入场,是趋势信号的重要确认因子。


深入:执行质量与滑点控制

执行算法分类

滑点的实测方法

回测与实盘对比时,统计每笔交易的实际成交价格与信号触发时的理论价格之差:

平均滑点=实际成交价信号价格成交量\text{平均滑点} = \frac{\sum |\text{实际成交价} - \text{信号价格}|}{\text{成交量}}

持续监控平均滑点,若明显高于回测假设,说明策略容量可能已超过当前市场流动性上限。


时间与延迟(Latency)

延迟的定量影响:在策略预期信号恢复时间(如 5 秒)内,延迟 τ 秒的执行价格偏差约为 σ×τ/T0\sigma \times \sqrt{\tau/T_0}。这对于趋势策略影响较小,对于套利和高频策略则可能是致命的。