Files
btc_price_anany/HURST_ENHANCEMENT_SUMMARY.md
riba2534 24d14a0b44 feat: 添加8个多尺度分析模块并完善研究报告
新增分析模块:
- microstructure: 市场微观结构分析 (Roll价差, VPIN, Kyle's Lambda)
- intraday_patterns: 日内模式分析 (U型曲线, 三时区对比)
- scaling_laws: 统计标度律 (15尺度波动率标度, R²=0.9996)
- multi_scale_vol: 多尺度已实现波动率 (HAR-RV模型)
- entropy_analysis: 信息熵分析
- extreme_value: 极端值与尾部风险 (GEV/GPD, VaR回测)
- cross_timeframe: 跨时间尺度关联分析
- momentum_reversion: 动量与均值回归检验

现有模块增强:
- hurst_analysis: 扩展至15个时间尺度,新增Hurst vs log(Δt)标度图
- fft_analysis: 扩展至15个粒度,支持瀑布图
- returns/acf/volatility/patterns/anomaly/fractal: 多尺度增强

研究报告更新:
- 新增第16章: 基于全量数据的深度规律挖掘 (15尺度综合)
- 完善第17章: 价格推演添加实际案例 (2020-2021牛市, 2022熊市等)
- 新增16.10节: 可监控的实证指标与预警信号
- 添加VPIN/波动率/Hurst等指标的实时监控阈值和案例

数据覆盖: 全部15个K线粒度 (1m~1mo), 440万条记录
关键发现: Hurst随尺度单调递增 (1m:0.53→1mo:0.72), 极端风险不对称

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 16:35:08 +08:00

6.7 KiB
Raw Blame History

Hurst分析模块增强总结

修改文件

/Users/hepengcheng/airepo/btc_price_anany/src/hurst_analysis.py

增强内容

1. 扩展至15个时间粒度

修改位置run_hurst_analysis() 函数约第689-691行

原代码

mt_results = multi_timeframe_hurst(['1h', '4h', '1d', '1w'])

新代码

# 使用全部15个粒度
ALL_INTERVALS = ['1m', '3m', '5m', '15m', '30m', '1h', '2h', '4h', '6h', '8h', '12h', '1d', '3d', '1w', '1mo']
mt_results = multi_timeframe_hurst(ALL_INTERVALS)

影响从原来的4个尺度1h, 4h, 1d, 1w扩展到全部15个粒度提供更全面的多尺度分析。


2. 1m数据截断优化

修改位置multi_timeframe_hurst() 函数约第310-313行

新增代码

# 对1m数据进行截断避免计算量过大
if interval == '1m' and len(returns) > 100000:
    print(f"  {interval} 数据量较大({len(returns)}截取最后100000条")
    returns = returns[-100000:]

目的1分钟数据可能包含数百万个数据点截断到最后10万条可以

  • 减少计算时间
  • 避免内存溢出
  • 保留最近的数据(更具代表性)

3. 增强多时间框架可视化

修改位置plot_multi_timeframe() 函数约第411-461行

主要改动

  1. 更宽的画布figsize=(12, 7)figsize=(16, 8)
  2. 自适应柱状图宽度width = min(0.25, 0.8 / 3)
  3. X轴标签旋转rotation=45, ha='right' 避免15个标签重叠
  4. 字体大小动态调整fontsize_annot = 7 if len(intervals) > 8 else 9

效果支持15个尺度的清晰展示避免标签拥挤和重叠。


4. 新增Hurst vs log(Δt) 标度关系图

新增函数plot_hurst_vs_scale() 第464-547行

功能特性

  • X轴log₁₀(Δt) - 采样周期的对数(天)
  • Y轴Hurst指数R/S和DFA两条曲线
  • 参考线H=0.5(随机游走)、趋势阈值、均值回归阈值
  • 线性拟合:显示标度关系方程 H = a·log(Δt) + b
  • 双X轴显示下方显示log值上方显示时间框架名称

时间周期映射

INTERVAL_DAYS = {
    "1m": 1/(24*60),   "3m": 3/(24*60),   "5m": 5/(24*60),   "15m": 15/(24*60),
    "30m": 30/(24*60), "1h": 1/24,        "2h": 2/24,        "4h": 4/24,
    "6h": 6/24,        "8h": 8/24,        "12h": 12/24,      "1d": 1,
    "3d": 3,           "1w": 7,           "1mo": 30
}

调用位置run_hurst_analysis() 函数第697-698行

# 绘制Hurst vs 时间尺度标度关系图
plot_hurst_vs_scale(mt_results, output_dir)

输出文件output/hurst/hurst_vs_scale.png


输出变化

新增图表

  • hurst_vs_scale.png - Hurst指数vs时间尺度标度关系图

增强图表

  • hurst_multi_timeframe.png - 从4个尺度扩展到15个尺度

终端输出

分析过程会显示所有15个粒度的计算进度和结果

【5】多时间框架Hurst指数
--------------------------------------------------

正在加载 1m 数据...
  1m 数据量较大1234567条截取最后100000条
  1m: R/S=0.5234, DFA=0.5189, 平均=0.5211

正在加载 3m 数据...
  3m: R/S=0.5312, DFA=0.5278, 平均=0.5295

... (共15个粒度)

技术亮点

1. 标度关系分析

通过 plot_hurst_vs_scale() 函数,可以观察:

  • 多重分形特征不同尺度下Hurst指数的变化规律
  • 标度不变性:是否存在幂律关系 H ∝ (Δt)^α
  • 跨尺度一致性R/S和DFA方法在不同尺度的一致性

2. 性能优化

  • 对1m数据截断避免百万级数据的计算瓶颈
  • 动态调整可视化参数,适应不同数量的尺度

3. 可扩展性

  • ALL_INTERVALS 列表可灵活调整
  • INTERVAL_DAYS 字典支持自定义时间周期映射
  • 函数签名保持向后兼容

使用方法

运行完整分析

from src.hurst_analysis import run_hurst_analysis
from src.data_loader import load_daily

df = load_daily()
results = run_hurst_analysis(df, output_dir="output/hurst")

仅运行15尺度分析

from src.hurst_analysis import multi_timeframe_hurst, plot_hurst_vs_scale
from pathlib import Path

ALL_INTERVALS = ['1m', '3m', '5m', '15m', '30m', '1h', '2h', '4h',
                 '6h', '8h', '12h', '1d', '3d', '1w', '1mo']
mt_results = multi_timeframe_hurst(ALL_INTERVALS)
plot_hurst_vs_scale(mt_results, Path("output/hurst"))

测试增强功能

python test_hurst_15scales.py

数据文件依赖

需要以下15个CSV文件位于 data/ 目录):

btcusdt_1m.csv   btcusdt_3m.csv   btcusdt_5m.csv   btcusdt_15m.csv
btcusdt_30m.csv  btcusdt_1h.csv   btcusdt_2h.csv   btcusdt_4h.csv
btcusdt_6h.csv   btcusdt_8h.csv   btcusdt_12h.csv  btcusdt_1d.csv
btcusdt_3d.csv   btcusdt_1w.csv   btcusdt_1mo.csv

当前状态:所有数据文件已就绪


预期效果

标度关系图解读示例

  1. 标度不变(分形)

    • Hurst指数在log(Δt)轴上呈线性关系
    • 例如H ≈ 0.05·log(Δt) + 0.52
    • 说明:市场在不同时间尺度展现相似的统计特性
  2. 标度依赖(多重分形)

    • Hurst指数在不同尺度存在非线性变化
    • 短期尺度1m-1h可能偏向随机游走H≈0.5
    • 长期尺度1d-1mo可能偏向趋势性H>0.55
  3. 方法一致性验证

    • R/S和DFA两条曲线应当接近
    • 如果差异较大,说明数据可能存在特殊结构(如极端波动、结构性断点)

修改验证

语法检查

python3 -m py_compile src/hurst_analysis.py

通过

文件结构

src/hurst_analysis.py
├── multi_timeframe_hurst()     [已修改] +数据截断逻辑
├── plot_multi_timeframe()      [已修改] +支持15尺度
├── plot_hurst_vs_scale()       [新增]   标度关系图
└── run_hurst_analysis()        [已修改] +15粒度+新图表调用

兼容性说明

向后兼容

  • 所有原有函数签名保持不变
  • 默认参数依然为 ['1h', '4h', '1d', '1w']
  • 可通过参数指定任意粒度组合

代码风格

  • 遵循原模块的注释风格和函数结构
  • 保持一致的变量命名和代码格式

后续建议

  1. 参数化配置:可将 ALL_INTERVALSINTERVAL_DAYS 提取为模块级常量
  2. 并行计算15个粒度的分析可使用多进程并行加速
  3. 缓存机制:对计算结果进行缓存,避免重复计算
  4. 异常处理:增强对缺失数据文件的容错处理

修改完成时间2026-02-03 修改人Claude (Sonnet 4.5) 修改类型:功能增强(非破坏性)