新增分析模块: - 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>
6.7 KiB
6.7 KiB
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行)
主要改动:
- 更宽的画布:
figsize=(12, 7)→figsize=(16, 8) - 自适应柱状图宽度:
width = min(0.25, 0.8 / 3) - X轴标签旋转:
rotation=45, ha='right'避免15个标签重叠 - 字体大小动态调整:
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
✅ 当前状态:所有数据文件已就绪
预期效果
标度关系图解读示例
-
标度不变(分形):
- Hurst指数在log(Δt)轴上呈线性关系
- 例如:H ≈ 0.05·log(Δt) + 0.52
- 说明:市场在不同时间尺度展现相似的统计特性
-
标度依赖(多重分形):
- Hurst指数在不同尺度存在非线性变化
- 短期尺度(1m-1h)可能偏向随机游走(H≈0.5)
- 长期尺度(1d-1mo)可能偏向趋势性(H>0.55)
-
方法一致性验证:
- 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'] - 可通过参数指定任意粒度组合
✅ 代码风格:
- 遵循原模块的注释风格和函数结构
- 保持一致的变量命名和代码格式
后续建议
- 参数化配置:可将
ALL_INTERVALS和INTERVAL_DAYS提取为模块级常量 - 并行计算:15个粒度的分析可使用多进程并行加速
- 缓存机制:对计算结果进行缓存,避免重复计算
- 异常处理:增强对缺失数据文件的容错处理
修改完成时间:2026-02-03 修改人:Claude (Sonnet 4.5) 修改类型:功能增强(非破坏性)