# BT Strategy Broad Search Plan ## Goal 先建立 40–70 个策略候选池;其中第一阶段先力争形成 15–25 个真实可回测策略样本。完成初筛后,再两轮筛选,最后收敛到 5–10 个重点优化。 核心原则: - 先建池,再收敛 - 先横向比较,再参数优化 - 回测完成即刻可靠通知属于主流程 - 同类问题优先修根因,不靠补发兜底 --- ## Current status ### 已验证流程 - 单策略 BT 回测 + 主动通知:已验证 - 三策略批量 BT 回测 + 主动通知:已验证 - 使用 `.bt-runs//state.json` 与 `notify.json` 的新流程:已接入 ### 当前已跑策略 1. DualThrustRegimeStrategy 2. DonchianRegimeStrategy 3. MomentumVolTargetStrategy 4. MomentumRegimeStrategy 5. MomentumAtrTrailStrategy 6. DonchianHybridVolAtrStrategy 7. SuperTrendLongMaStrategy --- ## Strategy families to expand 目标:扩展为 12 个家族,每个家族先准备 4–6 个变体,第一阶段形成 40–70 个策略池。 ### Core 6 families (priority first) 这些家族优先做深,先保证每类至少有足够样本和可比较变体。 #### 1. Breakout family - Donchian variants - DualThrust variants - Opening range breakout - N-day breakout with filters - Breakout + volatility filter #### 2. Momentum family - Single-period momentum - Dual-period momentum - Momentum + regime - Momentum + ATR trail - Momentum + vol targeting #### 3. Trend family - SMA / EMA crossover - Long-MA filter - SuperTrend variants - KAMA trend - MACD trend filter #### 4. Volatility / risk family - Vol targeting - ATR stop / ATR trail - Position scaling by vol - Risk budget variants #### 5. Regime family - Bull/bear filter - Vol regime filter - Trend regime switch - Risk-on / risk-off filter #### 6. Hybrid family - Breakout + regime - Breakout + ATR - Trend + vol target - Momentum + trend filter - Breakout + trend + regime ### Expansion 6 families (expand after core coverage) 这些家族保留在第一阶段,但执行顺序晚于核心 6 家族,不要求一开始平均铺开。 #### 7. Mean reversion family - Bollinger mean reversion - Z-score pullback - Channel reversion - Short-term oversold rebound #### 8. Pullback family - Trend pullback entry - MA pullback continuation - ATR pullback setup - Breakout then pullback re-entry #### 9. Range / consolidation family - Range breakout failure - Range oscillation - Box mean reversion - Consolidation filter variants #### 10. Volume-confirmed family - Volume breakout confirmation - Price-volume trend filters - Volume surge entry - Low-volume rejection filters #### 11. Breadth / internal strength family - Market breadth proxy filters - Relative participation filters - Breadth-confirmed trend entry - Internal strength defensive overlays #### 12. Defensive / overlay family - Max drawdown guard - Risk-off overlay - Trailing stop overlay - Exposure cap / defensive switch --- ## Batch execution plan ### Batch 0: current base 现有已跑样本,作为第一阶段底座: 1. DualThrustRegimeStrategy 2. DonchianRegimeStrategy 3. MomentumVolTargetStrategy 4. MomentumRegimeStrategy 5. MomentumAtrTrailStrategy 6. DonchianHybridVolAtrStrategy 7. SuperTrendLongMaStrategy 意义: - Breakout / Hybrid 已有初步基础 - Momentum 已有初步基础 - Trend / Defensive 有少量基础 - 其他家族基本空白 ### Batch 1: expand strong families 目标:补 10–12 个新策略,优先扩当前强势方向,同时加入少量对照和防守样本。 建议配比: - Breakout / Hybrid: 4 - Momentum: 3 - Trend: 3 - Defensive / Overlay: 1–2 建议名单(需先做仓库现实检查,标注可跑 / 待实现): - DonchianAdxStrategy — 可跑(已存在) - DonchianBasicStrategy — 待实现 / 待确认 - DualThrustBasicStrategy — 待实现 / 待确认 - OpeningRangeBreakoutStrategy — 待实现 / 待确认 - TsmomBasicStrategy — 待实现 / 待确认 - MomentumMaFilterStrategy — 待实现 / 待确认 - MomentumDefensiveFilterStrategy — 待实现 / 待确认 - EmaCrossoverStrategy — 待实现 / 待确认 - SmaLongFilterTrendStrategy — 待实现 / 待确认 - KamaTrendStrategy — 可跑(已存在) - AtrStopOverlayStrategy — 待实现 / 待确认 - MaxDrawdownGuardStrategy — 待实现 / 待确认 备注: - Batch 1 在真正执行前,先拆成“当前可跑批次”与“研发 backlog” - 不把概念性策略名直接当成可回测对象 ### Batch 2: trend / regime / risk 目标:再补 10–12 个,把趋势过滤、状态切换、风险控制这一层铺开。 建议配比: - Trend: 3 - Regime: 3 - Volatility / Risk: 4 - Pullback / Range: 1–2 建议名单(需先做仓库现实检查,标注可跑 / 待实现): - SmaCrossoverStrategy — 待实现 / 待确认 - MacdTrendFilterStrategy — 待实现 / 待确认 - SuperTrendBasicStrategy — 待实现 / 待确认 - BullBearFilterStrategy — 待实现 / 待确认 - VolatilityRegimeFilterStrategy — 待实现 / 待确认 - RiskOnRiskOffStrategy — 待实现 / 待确认 - VolTargetBasicStrategy — 待实现 / 待确认 - PositionScalingByVolStrategy — 待实现 / 待确认 - AtrTrailBasicStrategy — 待实现 / 待确认 - ExposureCapStrategy — 待实现 / 待确认 - TrendPullbackEntryStrategy — 待实现 / 待确认 - RangeOscillationStrategy — 待实现 / 待确认 ### Batch 3: fill blank families 目标:再补 10–12 个,优先填补此前覆盖不足的逻辑空间。 建议配比: - Mean Reversion: 3 - Volume-confirmed: 3 - Breadth / Internal Strength: 2–3 - Defensive / Overlay: 2–3 建议名单(原则上先进入研发 backlog,不默认视为可直接回测): - BollingerMeanReversionStrategy — 待实现 - ZScoreReversionStrategy — 待实现 - OversoldReboundStrategy — 待实现 - VolumeBreakoutConfirmationStrategy — 待实现 - PriceVolumeTrendFilterStrategy — 待实现 - VolumeSurgeEntryStrategy — 待实现 - BreadthProxyFilterStrategy — 待实现 - ParticipationFilterStrategy — 待实现 - InternalStrengthTrendStrategy — 待实现 - TrailingStopOverlayStrategy — 待实现 - RiskOffOverlayStrategy — 待实现 - DrawdownShutdownStrategy — 待实现 ### Batch 4: pullback / range / hybrid detail 目标:补 8–10 个,把 pullback、range、hybrid 细分补完整。 建议配比: - Pullback: 3 - Range / Consolidation: 3 - Hybrid: 2–4 建议名单(原则上先进入研发 backlog,不默认视为可直接回测): - MaPullbackContinuationStrategy — 待实现 - AtrPullbackSetupStrategy — 待实现 - BreakoutPullbackReentryStrategy — 待实现 - BoxReversionStrategy — 待实现 - ChannelBounceStrategy — 待实现 - BreakoutFailureReentryStrategy — 待实现 - BreakoutTrendRegimeStrategy — 待实现 - MomentumRegimeAtrStrategy — 待实现 - TrendVolTargetStrategy — 待实现 - DefensiveHybridStrategy — 待实现 ### Batch 5: expand winning families 目标:补 8–12 个,根据前 4 批结果定向扩优胜家族。 规则: - 如果 Breakout 整体占优,继续扩 Breakout 变体 - 如果 Momentum + 风控表现更稳,优先扩该方向 - 如果 Trend / Defensive 更稳,优先扩相关组合 - 如果某家族整体弱,减少继续投入 - 如果某家族有互补价值但收益一般,可保留少量观察位 目标总量:40–70 个策略 --- ## Strategy inventory 每个 batch 开始前,先做一次仓库现实检查,并输出三类清单: - `runnable_now`: 当前仓库已有、可直接回测 - `needs_adaptation`: 稍作改造即可回测 - `needs_implementation`: 仅有概念,还未实现 建议落地文件: - `strategy_inventory.md` 或 `strategy_inventory.csv` ## Unified evaluation table 后续所有策略都应进入统一总表,至少包含: - strategy_name - family - key_params - total_return - annual_return - sharpe - max_drawdown - win_rate - closed_trades - avg_exposure - status - shortlist_flag - notes 建议后续落地文件: - `strategy_pool.csv` 或 `strategy_pool.md` --- ## Screening rules ### Track A: main strategy filter 适用于主方向策略(breakout / momentum / trend / regime / hybrid)。 #### Round 1: hard filter 默认硬筛门槛: - annual_return > 8% - sharpe > 0.30 - max_drawdown < 40% - closed_trades > 20 不满足时: - 默认淘汰 - 或标记为观察样本(仅当风格有特殊参考价值) #### Round 2: shortlist filter 从通过硬筛的策略里,再看: - 收益 / 回撤比 - Sharpe 相对优势 - 风格是否重复 - 是否具备组合互补价值 - 是否值得继续做参数优化 目标:收敛到 10–15 个主策略候选 ### Track B: component / overlay filter 适用于 defensive / overlay / vol-risk 组件型策略,不与主策略共用同一套门槛。 优先看: - 是否显著降低 max_drawdown - 是否改善收益 / 回撤比 - 是否提升稳定性或持有体验 - 是否能作为通用叠加层复用 组件型策略可以在以下情况下保留: - 绝对收益一般,但显著改善风控 - 单独表现一般,但叠加后明显提升主策略表现 - 交易次数较少,但具备明确的防守价值 ### Final focus 最终进入重点优化池: - 5–10 个主策略 - 若干值得保留的 overlay / 组件模块 - 进行小范围参数优化 - 分阶段稳健性验证 - 组合测试 --- ## Current observations ### 第一优先级候选 - DualThrustRegimeStrategy - DonchianRegimeStrategy - MomentumVolTargetStrategy - DonchianHybridVolAtrStrategy ### 第二优先级候选 - MomentumRegimeStrategy - MomentumAtrTrailStrategy - SuperTrendLongMaStrategy ### 当前判断 - Breakout 家族:目前最值得继续扩 - Momentum 家族:有明显潜力,但需要更多风控变体比较 - Trend / Defensive 家族:更适合作为回撤控制对照组 --- ## Execution discipline 1. 没有真实 run/session 证据,不报“已开跑” 2. 回测完成不等于任务完成;通知送达也属于完成条件 3. 优先修根因,不靠补发充当解决方案 4. 每跑完一批,就更新总表与阶段判断 5. 不在策略池尚小的时候过早深挖单个参数 6. 每个 batch 开始前先做一次仓库现实检查:区分“当前可跑策略”与“待实现策略” --- ## Unified evaluation table template 建议统一维护 `strategy_pool.csv` 或 `strategy_pool.md`,字段如下: | strategy_name | family | key_params | total_return | annual_return | sharpe | max_drawdown | win_rate | closed_trades | avg_exposure | status | shortlist_flag | notes | |---|---|---|---:|---:|---:|---:|---:|---:|---:|---|---|---| | DualThrustRegimeStrategy | Breakout / Hybrid | range_period=20,k1=0.3,k2=0.3,regime=120 | 391.77% | 15.02% | 0.405 | 34.04% | 47.22% | 36 | 26.24% | tested | yes | 当前收益第一 | | DonchianRegimeStrategy | Breakout / Regime | breakout=55,exit=30,regime=150 | 262.60% | 11.98% | 0.440 | 40.47% | 45.00% | 20 | 25.98% | tested | yes | 当前 Sharpe 第一 | | MomentumVolTargetStrategy | Momentum / Vol | mom_short=20,mom_long=120,vol_period=30,target_vol=0.3 | 261.49% | 11.95% | 0.419 | 37.62% | 38.89% | 72 | 24.21% | tested | yes | 风险收益较均衡 | 字段说明: - `status`: planned / running / tested / dropped / shortlisted - `shortlist_flag`: yes / no / observe - `notes`: 记录阶段判断,不写废话 --- ## Next checkpoint 下一步建议: 1. 先确认 Batch 1 名单是否接受当前命名与方向 2. 逐批回测并自动通知 3. 跑完后更新统一对比表 4. 做第一轮硬筛