背景
CSI300(000300)触下轨买入策略(close ≤ MA120 − 1.5σ)60 日胜率仅 ~50%,最大浮亏 −30%。同策略在 512890(红利低波)上胜率 93%、最大浮亏 −5%。差异巨大,需诊断原因并探索改进方向。
研究路径
- 牛市段波动率特征(2024-09-24+) — 415 个交易日:偏度 +0.28(正偏)、超峰 +10.6(厚尾)、年化 vol 19.9%。Jarque-Bera 强烈拒绝正态。
- Zigzag 切分全历史 — 用 15% 阈值切 CSI300(2002-2026),得 52 段(26 牛 + 26 熊)。
- 每段日收益率分布 — Bull 平均 +54%/skew +0.18/kurt +2.05;Bear 平均 −27%/skew −0.04/kurt +0.75。波动率几乎对称,差别在偏度方向。
- 偏态分布的阈值理论 — 整理 normal / CF (Cornish-Fisher) / empirical 三种方法。
- 三种方法在 CSI300 全历史对比 — z_obs 全样本是扁峰(kurt=−0.88),normal/CF 都欠触发,empirical 才校准正确。命中关系:normal ⊂ CF ⊂ empirical。
- z_obs 按 regime 切开 — Bull mean=+0.74/skew −0.29;Bear mean=−0.70/skew +0.43。均值位移 1.44σ,偏度反向,左尾阈值差 0.62σ。
- per-regime 阈值回测(hindsight 上界) — 胜率 53% → 71%,60d 均值 −0.2% → +6.4%,平均浮亏 −9% → −6%。
核心结论
- z_obs 不是正态,是扁峰:用 normal/CF 阈值都会少触发
- z_obs 分布在牛/熊里形态完全不同:固定 k 的"3σ 事件"在不同 regime 里意义完全不同
- per-regime 阈值潜力巨大(hindsight 上界):胜率/收益/回撤全面提升
- 问题不在阈值高低,在 regime 敏感性:fixed_emp 比 fixed_k15 收益还低就证明了这点
本次提交范围
只提交研究文档(docs/),不改代码:
docs/algo_notes.md:新增「布林带通道策略优化探索(CSI300,2026-06)」章节(背景、3 个尝试方向、未尝试方向、推荐顺序)
docs/csi300/2024-09-24~至今.md:牛市段波动率分布详细统计
docs/csi300/regime_threshold_research.md:完整研究日志(7 个 step + 数据产物清单 + 待办)
数据产物(不提交,在 /mnt/dataset/)
csi300_regime/zigzag_t15_segments.csv — 52 段牛熊区间
csi300_regime/zigzag_t15_segment_stats.csv — 每段日收益率分布
csi300_regime/zobs_by_segment.csv — 每段 z_obs 分布
csi300_zigzag.png / threshold_compare_000300.png — 可视化
待办(后续 issue)
- B:滚动 252 天算 z_obs 动态阈值(不依赖 regime 识别,完全因果)
- C:因果版 regime 识别 + per-regime 阈值
- 把阈值方法接入
plots/channel_entry_signals.py 加 --threshold-mode 开关
背景
CSI300(000300)触下轨买入策略(close ≤ MA120 − 1.5σ)60 日胜率仅 ~50%,最大浮亏 −30%。同策略在 512890(红利低波)上胜率 93%、最大浮亏 −5%。差异巨大,需诊断原因并探索改进方向。
研究路径
核心结论
本次提交范围
只提交研究文档(docs/),不改代码:
docs/algo_notes.md:新增「布林带通道策略优化探索(CSI300,2026-06)」章节(背景、3 个尝试方向、未尝试方向、推荐顺序)docs/csi300/2024-09-24~至今.md:牛市段波动率分布详细统计docs/csi300/regime_threshold_research.md:完整研究日志(7 个 step + 数据产物清单 + 待办)数据产物(不提交,在 /mnt/dataset/)
csi300_regime/zigzag_t15_segments.csv— 52 段牛熊区间csi300_regime/zigzag_t15_segment_stats.csv— 每段日收益率分布csi300_regime/zobs_by_segment.csv— 每段 z_obs 分布csi300_zigzag.png/threshold_compare_000300.png— 可视化待办(后续 issue)
plots/channel_entry_signals.py加--threshold-mode开关