Files
btc_price_anany/HURST_ENHANCEMENT_SUMMARY.md
riba2534 6f2fede5ba 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

240 lines
6.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Hurst分析模块增强总结
## 修改文件
`/Users/hepengcheng/airepo/btc_price_anany/src/hurst_analysis.py`
## 增强内容
### 1. 扩展至15个时间粒度
**修改位置**`run_hurst_analysis()` 函数约第689-691行
**原代码**
```python
mt_results = multi_timeframe_hurst(['1h', '4h', '1d', '1w'])
```
**新代码**
```python
# 使用全部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行
**新增代码**
```python
# 对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值上方显示时间框架名称
**时间周期映射**
```python
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行
```python
# 绘制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` 字典支持自定义时间周期映射
- 函数签名保持向后兼容
---
## 使用方法
### 运行完整分析
```python
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尺度分析
```python
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"))
```
### 测试增强功能
```bash
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两条曲线应当接近
- 如果差异较大,说明数据可能存在特殊结构(如极端波动、结构性断点)
---
## 修改验证
### 语法检查
```bash
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_INTERVALS``INTERVAL_DAYS` 提取为模块级常量
2. **并行计算**15个粒度的分析可使用多进程并行加速
3. **缓存机制**:对计算结果进行缓存,避免重复计算
4. **异常处理**:增强对缺失数据文件的容错处理
---
**修改完成时间**2026-02-03
**修改人**Claude (Sonnet 4.5)
**修改类型**:功能增强(非破坏性)