halo 的技术博客

返回

一句话版本#

两个高度相关的资产,几乎从不同时动。期货先于现货,大盘股先于小盘股,ETF 先于成份股,美股先于亚洲镜像资产。领先滞后估计(lead-lag estimation)要回答的是:谁先动、领先多少、这个先后关系稳不稳定——而答案里藏着高频世界最直接的一类预测信号。

上一篇《Epps 效应》讲的是高频相关估计如何被异步交易摧毁。这一篇是它的镜像问题:当两个资产之间存在真实的时间错位时,怎么把这个错位测出来、而不是被采样机制抹掉。


问题:同期相关是一张糊掉的照片#

标准的相关系数隐含一个假设:两个资产的信息是同时到达价格的。现实里这个假设几乎总是错的:

  • 股指期货 vs 现货指数:期货流动性好、杠杆高、做空无约束,宏观信息几乎总是先打进期货,现货指数(尤其被成份股买卖价约束)要慢几百毫秒到几秒;
  • 大盘股 vs 小盘股:同行业信息先反映在流动性好的龙头上,小票的调整可以慢几分钟;
  • 跨市场镜像:美股收盘价对第二天亚洲市场的开盘有明确的领先性,日内的 ADR 与本地股同理;
  • ETF vs 成份股篮子:套利者的存在让 ETF 与篮子高度耦合,但谁先动取决于哪边流动性更好。

如果 X 领先 Y 两秒钟,你在 t 时刻同时取两者的收益算相关,实际上是在比较「X 的新信息」和「Y 对 X 两秒前信息的回应」——同期相关会系统性低估这对资产的真实耦合,而且完全丢掉了方向信息。测出「谁先谁后」这件事,本身就是一个可交易的信号。

受控实验:把真实滞后钉死在 2 秒#

模拟的好处是真值已知,能校准估计器。构造如下:

  • 领先者 X 是布朗运动(每 0.1 秒一步),跟随者 Y 的增量 = 0.8 × X 滞后 2 秒的增量 + 独立噪声——真实领先滞后 θ = 2 秒;
  • 两个资产都以泊松到达观测(平均 3 秒一笔成交),叠加微观结构噪声——你看不到有效价格,只看到异步的、带噪的成交价;
  • 一个 6.5 小时交易日约 7800 笔观测,重复多日取均值。

工具一:滞后互相关函数(网格法)#

最直接的做法:把两个资产 previous-tick 对齐到 1 秒网格,然后计算带滞后的互相关 Corr(rX(t), rY(t+))\text{Corr}(r_X(t),\ r_Y(t+\ell)),让 \ell 从 −8 秒扫到 +8 秒:

def lagged_corr(rx, ry, lag_steps):
    """lag_steps>0:Y 滞后,比较 X 现在的收益与 Y 未来的收益"""
    if lag_steps > 0:
        return np.corrcoef(rx[:-lag_steps], ry[lag_steps:])[0, 1]
    elif lag_steps < 0:
        return np.corrcoef(rx[-lag_steps:], ry[:lag_steps])[0, 1]
    return np.corrcoef(rx, ry)[0, 1]
python

滞后互相关函数

20 日均值的结果(1 秒网格):

关键量数值
同期相关(ℓ=0)0.066
峰值相关0.120
峰值位置+2 秒(精确命中真值)

两个要点。第一,峰值位置精确落在真实滞后 2 秒上——滞后互相关函数是领先滞后方向和幅度的一致估计。第二,同期相关 0.066 只有峰值的一半——如果你只算同步相关,不仅丢了方向,连耦合强度都低估了 45%。曲线的不对称性就是方向:右侧(Y 滞后)明显高于左侧,X 是领先者。

工具二:HRY 估计器——不用网格的做法#

网格法有一个继承自 Epps 问题的缺陷:previous-tick 对齐引入陈旧价格,且网格宽度是一个需要拍脑袋的超参数。Hoffmann, Rosenbaum & Yoshida (2013) 把 Hayashi-Yoshida 估计器扩展成了领先滞后版本(HRY):

把 Y 的时间轴整体平移 δ,然后按「时间区间重叠」配对两资产的逐笔收益算 HY 协方差,对 δ 扫描,让相关性最大的 δ 就是领先滞后的估计。

def hy_cov_shift(tx, px, ty, py, shift):
    """Y 时间轴平移 -shift 后做 Hayashi-Yoshida 区间重叠配对"""
    rx, ry = np.diff(px), np.diff(py)
    ax0, ax1 = tx[:-1], tx[1:]
    ay0, ay1 = ty[:-1] - shift, ty[1:] - shift
    total, j = 0.0, 0
    for i in range(len(rx)):
        while j < len(ry) and ay1[j] <= ax0[i]:
            j += 1
        k = j
        while k < len(ry) and ay0[k] < ax1[i]:
            total += rx[i] * ry[k]   # 区间重叠即配对
            k += 1
    return total
python

HRY 平移扫描

结果:HRY 相关在 δ = 2 秒处达到峰值 0.80——几乎还原了 Y 对 X 的真实载荷,且不需要任何网格。对比网格法的峰值 0.120,HRY 的信号强度是 6.7 倍,因为它不被 previous-tick 的陈旧价格稀释。这就是「用对估计器」的价值:同一份数据,同一个真相,信噪比差近一个数量级。

代价是计算量(双重循环遍历区间重叠,实盘需要用排序+双指针优化到近线性)和对微观结构噪声的敏感——HY 家族对噪声不设防,噪声大时需要先做 pre-averaging,这与上一篇 Epps 文章的结论一致。

采样频率扫描:领先滞后是尺度依赖信号#

实操上最重要的问题:网格该取多细? 把互相关不对称度(正向峰 − 反向峰)作为「领先滞后信号强度」,对采样间隔 h 扫描:

信号随采样间隔衰减

h1s2s5s10s30s60s
不对称度0.0690.1420.2000.1550.0450.020

这条曲线是个倒 U 形,两端都有明确的机制:

  • h 太小(1 秒):Epps 效应主导——异步观测 + 陈旧价格把所有相关性(含滞后相关)都稀释了;
  • h 在 θ 附近(2-10 秒):信号最强,网格分辨率恰好能区分「X 先动」和「Y 后动」;
  • h 太大(30-60 秒):一个网格内 X 的动作和 Y 的回应被打包进同一个收益区间,先后关系被压扁成同期相关,不对称度趋于零。

结论:领先滞后是尺度依赖信号,采样粒度必须与 θ 同数量级。用 1 分钟线找 2 秒级的领先滞后是缘木求鱼;反过来,用 tick 级数据找几分钟级的大小盘轮动也纯属浪费算力。先猜 θ 的数量级,再选工具。

方向性检验:这个信号真的能预测吗#

领先滞后关系的可交易形式是:用领先者刚刚的动作预测跟随者接下来的动作。检验:用 X 过去 2 秒的累计收益预测 Y 未来 2 秒的收益,逐日算 IC;再做一个反向对照(用 Y 的过去预测 X 的未来):

方向性 IC 检验

方向15 日 IC 均值IC 标准差
X→Y(正向)0.2150.007
Y→X(反向对照)0.0740.007

正向 IC 稳定在 0.215,且 15 天里没有一天低于反向对照——方向性是实打实的。反向 IC 不为零(0.074)是因为 Y 的收益里有 X 的滞后成分,而 X 自身有自相关为零的增量——这个非零值来自 previous-tick 对齐让部分同期信息渗漏到「过去」,这正是实盘中评估领先滞后信号时最常见的假象来源:对照组不做,你不知道 IC 里有多少是对齐机制送的

0.2 级别的 IC 在高频世界是巨大信号——但先别激动,看下一节。

为什么这钱不好赚#

第一,你在和光速竞赛。 领先滞后利润的收割者是延迟最低的玩家:期现之间几百毫秒的领先性,套利容量几乎全部被 co-location 的 HFT 吃掉。你能测出 θ=2 秒不代表你能在 2 秒内完成「观测 X → 下单 Y → 成交」的闭环——减去你的全链路延迟后剩下的才是你的可收割窗口。模拟里 IC=0.215 对应的是零延迟的理想执行。

第二,θ 不是常数。 真实市场的领先滞后随波动率状态、流动性分布、参与者结构漂移:高波动时段信息传导加快(θ 收缩),午盘清淡时段 θ 拉长。用全样本估计一个静态 θ 然后固定使用,等于假设市场结构十年不变。实盘需要滚动重估,而滚动窗口内的 HRY 估计方差不小。

第三,Epps 与领先滞后互为混杂。 观测到的互相关曲线同时被两个机制塑形:真实的领先滞后把峰值推离零点,异步采样的 Epps 效应把整条曲线往下压且展宽。清淡资产做跟随者时,你测出的「滞后」里有一部分只是它成交稀疏导致的机械延迟——成交间隔本身就会制造 θ 量级的伪滞后。区分「信息传导慢」和「成交更新慢」需要把成交强度作为协变量建模,或者直接用报价数据(报价更新远比成交密集)重估。

A 股场景注记#

  • 天然领先滞后对:沪深 300 股指期货 vs 300ETF(期货领先,秒级);AH 两地上市股(A 股日内领先性受港股通资金流影响);行业龙头 vs 小票(分钟级)。期现之间的领先性在 2015 年股指期货受限后一度反转——θ 的符号都可能变,这是市场结构依赖性的极端例子;
  • T+1 的约束:现货腿今天买了明天才能卖,跟随者方向的高频往返交易做不了。实操上 A 股的领先滞后信号更多用于执行择时(已决定要买时,等领先者回落再入场)而非独立策略;
  • 数据条件:Level-2 快照 3 秒一档,报价级领先滞后估计的分辨率下限就是 3 秒——比美股的毫秒级报价流粗得多,θ 小于 3 秒的结构测不出来。

与前文的连接#

这是市场微观结构系列的一篇:《Epps 效应》讲了异步交易如何摧毁同期相关估计——本篇是同一个硬币的另一面,异步性既是需要修复的偏差(Epps),也掩盖着真实的时间错位信号(领先滞后),HY/HRY 这对估计器分别处理这两个问题。《Tick 失衡 Bar》《Run Bars》讲的知情交易签名,在跨资产维度的对应物就是领先滞后:知情者先打流动性好的腿。


本文实验代码基于受控模拟(真实滞后已知),用于校准估计器行为。实盘环境的 θ 估计需叠加处理报价数据、成交强度协变量与滚动重估,复杂度显著高于本文演示。

高频领先滞后估计:谁先动,谁跟随
https://blog.halo26812.eu.org/blog/lead-lag-highfreq-estimation
Author halo
Published at 2026年7月30日
版权声明 CC BY-NC-SA 4.0
Comment seems to stuck. Try to refresh?✨