Add indicator ablation framework + apply ablation-driven cleanup
Framework: - TechnicalConfig.disabled_indicators skips named indicators in engine.analyze - Optimizer supports disable_indicator override for parallel ablation sweeps - main.py --ablate runs leave-one-out across all 10 directional indicators Cleanup applied (validated across 2024 trend / 2023 chop / 2026 recent): - Drop pivot by default (cumulative +9.5% to disable) - Drop candlestick by default (+3.4% cumulative) - Regime-gate ichimoku: 1.3x in trending, 0.2x in ranging (was a chop villain) - Trim RSI weight 1.0 -> 0.3 (cumulative noise across regimes) Result: +10.60% on 2024 trend (+33.24% -> +43.84%, Sharpe 2.17 -> 2.77), +15.71% on 2023 chop (-18.27% -> -2.56%). Recent regime still adverse. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -446,6 +446,9 @@ def _apply_overrides(config: PlatformConfig, overrides: Dict[str, float]) -> Pla
|
||||
new_config.backtest.regime_filter_min_adx = float(overrides["regime_filter_min_adx"])
|
||||
if "risk_per_trade_pct" in overrides:
|
||||
new_config.backtest.risk_per_trade_pct = float(overrides["risk_per_trade_pct"])
|
||||
if "disable_indicator" in overrides:
|
||||
v = overrides["disable_indicator"]
|
||||
new_config.technical.disabled_indicators = [str(v)] if v else []
|
||||
|
||||
return new_config
|
||||
|
||||
|
||||
Reference in New Issue
Block a user