halo 的技术博客

返回

「市场到底有没有记忆?」这是技术分析和量化里最古老也最尖锐的问题。

如果价格序列是随机游走(几何布朗运动),那它没有记忆——今天的涨跌和明天无关,所有”追涨杀跌""均值回归”都是幻觉。但如果市场是分形的(Edgar Peters 在 1994 年《分形市场假说》里系统阐述),它就有长期记忆:涨了可能接着涨(趋势),也可能涨了更容易回落(均值回复)。

区分这两者的钥匙,是一个 1951 年由水利工程师 Harold Hurst 发明、后来被金融学借用的指标——Hurst 指数 H

一、Hurst 指数:H 在说什么#

对一个价格序列取增量(日收益),Hurst 指数 HH 描述增量之间的持久性(记忆):

  • H=0.5H = 0.5 → 随机游走。增量独立、无记忆,今天涨明天涨跌各半。
  • H>0.5H > 0.5 → 趋势型(正持久性)。增量正相关,涨了更可能接着涨、跌了更可能接着跌——有趋势
  • H<0.5H < 0.5 → 均值回复型(反持久性)。增量负相关,涨了更可能回落、跌了更可能反弹——有均值回复

它量的是「增量的统计结构」,所以对价格取一阶差分(收益)之后再估计,而不是直接拿价格序列去套。

为了干净地演示,我用 Davies-Harte 算法生成「分数高斯噪声 fGn(指定 Hurst 指数 HH 的增量)」,再积分成价格型 fBm:

设定 H=0.5H=0.5(随机游走)、H=0.78H=0.78(趋势)、H=0.22H=0.22(均值回复),各生成一条:

三类合成序列:Hurst 指数刻画「记忆」(随机/趋势/均值回复)

肉眼都能看出区别:中间那条(趋势)H=0.73H=0.73 一路倾斜往上、最”黏”;底下那条(均值回复)H=0.39H=0.39 频繁折返、最”抖”。

二、R/S 重标极差:经典估计法#

Hurst 自己发明、Peters 引入金融的估计法叫 R/S(Rescaled Range,重标极差)。直觉很简单:

  1. 把序列切成若干个长度为 ww 的窗口;
  2. 在每个窗口里,算累积离差 RR(最高点 − 最低点),除以标准差 SS;
  3. 理论上 R/SwHR/S \propto w^H。在 log-log 坐标里对多个 ww 做回归,斜率就是 HH

把三条序列送进去,得到 H≈0.44(随机)/ 0.73(趋势)/ 0.39(均值回复)——干净分离。把趋势型那条单独画 R/S 的 log-log 拟合,斜率和直接估计一致:

R/S 重标极差:log-log 拟合斜率即 Hurst 指数

三、把 H 做成”市场性格检测器”:滚动 Hurst#

R/S 估计的是整段序列的平均记忆。但真实市场不是恒定性格——它会在趋势市和均值回复市之间反复横跳。把 HH 做成滚动窗口(比如每 250 天重算一次),它就成了一个 regime 检测器

我造一个三段拼接的”市场”:前 500 天趋势型(H=0.75H=0.75)、中 500 天均值回复(H=0.25H=0.25)、后 500 天随机(H=0.50H=0.50),增量直接拼接保证价格路径连续。滚动 Hurst 算出来:

  • 趋势段内部滚动 HH 中位数 0.68
  • 均值回复段内部 0.29
  • 随机段内部 0.62

三个状态被识别得清清楚楚:

滚动 Hurst 检测 regime 切换(趋势→回复→随机)

图上黑色曲线就是滚动 HH:在趋势段(红色阴影)爬到 0.6 以上、在均值回复段(绿色)跌到 0.3 附近、在随机段(橙色)贴着 0.5。这比单纯看波动率有用得多——波动率只说”抖不抖”,Hurst 说的是”往哪个方向有记忆”

一个诚实的过滤实验#

把”滚动 H>0.55H>0.55 才做多、否则空仓”当成过滤器,和买入持有比(合成样本,无前视——信号用截至第 ii 天的数据,赚第 ii+1i\to i+1 天的收益):

指标买入持有H>0.55 过滤
最大回撤−74.9%−63.7%
Sharpe0.750.67
持仓时间占比100%39.5%

注意:这个过滤器没凭空变出 alpha(Sharpe 还略低),但它把回撤砍了约 11 个百分点、只用 4 成仓位——因为它在波动最猛的均值回复段(该段日波动率 4.33% 高于趋势段的 3.83%)主动离场。Hurst 过滤的本质是风险/状态过滤器,不是印钞机。真实市场里它的价值在于:让你”知道自己现在处于哪种市”,从而切换策略(趋势市追、回复市剥、随机市歇),而不是在所有市里用同一套打法。

四、经典 R/S 的坑:有限样本偏差#

R/S 有个常被忽略的毛病——有限样本下,它会系统性低估 HH。给 500 条标准随机游走(H=0.5H=0.5 真相)做 R/S 估计,中位数落在 0.539 附近、且分布明显右偏不居中:

有限样本偏差:随机游走常被估成略偏离 0.5

也就是说,你拿 R/S 算出个 0.48,很可能它真实就是 0.5。所以实务里:

  • 别把 HH 的边际变化当真,要看置信带(常用 Monte Carlo / 洗牌 bootstrap 重采样得到随机游走的 H 分布作为 null);
  • 短序列(几百点)的 R/S 估计极不可信,必须用长窗口;
  • 更稳的替代:基于小波、或修正版的 Anis-Lloyd / Lo 的自相关修正 R/S

五、六类真实陷阱(实战必看)#

  1. 估计的是增量不是价格:直接把价格序列塞进 R/S,等于在估计”价格差分的记忆”,而价格是累积量——结论会严重偏。先 diff 取收益
  2. 有限样本偏差:如上,R/S 在短样本上系统性偏低。没做 bootstrap 置信带就断定”市场有记忆”,大概率是假阳性。
  3. 多重共线性/结构突变:真实价格有跳空、有政策冲击、有波动率聚集。一段里混着趋势和回复,R/S 给的是平均 H,会糊成 0.5。滚动窗口 + 分段看才是正解。
  4. 窗口长度是超参:滚动 Hurst 的窗口 WW 决定了”记多久的账”——WW 太短噪声爆炸,WW 太长对 regime 切换反应迟钝。通常从 100~250 天起调,并和压力测试对比。
  5. Hurst ≠ 方向预测:H>0.5 只说”有正持久性”,不代表”明天一定涨”;它给的是统计结构,不是点预测。把 HH 当方向信号追涨杀跌,会在高波动段被反复打脸。
  6. 别和交易频率错配:日频算出的 HH 是日频记忆,想做月线级别的趋势得用月频收益重算——不同频率的 HH 可以完全不同(这也是分形市场假说的核心:不同投资期限的投资者共同决定价格)。

六、小结:Hurst 是”市场性格”的体温计#

Hurst 指数不预测涨跌,它回答一个更基础的问题:这个序列,记住了自己多少过去? H>0.5H>0.5 记住了(趋势)、H<0.5H<0.5 反向记住了(回复)、H=0.5H=0.5 忘干净了(随机)。

对你做策略的意义:

  • 趋势策略(动量为核心)该在 HH 偏高、且滚动 HH 在上升时用;
  • 均值回复策略(配对、统计套利)该在 HH 偏低时用;
  • 两边都不灵的时候(H0.5H\approx0.5),多半是随机市,最省事的做法是减仓或歇着——这正是分形市场假说给风控的提示:不同市场性格,该配不同打法。

先把 R/S 写顺、把有限样本偏差和 bootstrap 置信带吃透,你就拿到了识别”市场现在是什么性格”的第一件工具。


代码与图表均由自包含 Python(numpy/scipy/matplotlib)真实计算,随机种子固定为 20260717,可完整复现。所有统计数字(三类 H、R/S 斜率、滚动三段中位数 0.68/0.29/0.62、过滤器回撤 −74.9%/−63.7%、500 条随机游走估计中位数 0.539)来自文中脚本输出。合成数据为演示设定,实盘需对真实收益序列用 bootstrap 置信带判断显著性。

Hurst 指数与分形市场:用重标极差判断序列是随机游走还是有记忆
https://blog.halo26812.eu.org/blog/hurst-exponent-regime
Author halo
Published at 2026年7月17日
版权声明 CC BY-NC-SA 4.0
Comment seems to stuck. Try to refresh?✨