fix: kill switch research mode reset + adjust veto threshold

- Fix kill switch reset: remove unreachable drawdown recovery condition
  (equity can't change while trading is halted), reset peak_equity and
  drawdown_pct to 0 on cooldown expiry
- Raise veto_oneoff_penalty threshold 0.5 → 0.7 (was blocking 67% of
  candidates due to high median oneoff_penalty in dataset)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
main
I Luk Kim 5 months ago
parent 4d0e773ba0
commit 3779be78e3

@ -269,15 +269,17 @@ class BacktestRunner:
if self.config.risk.backtest_mode == "research":
self._kill_switch_cooldown_remaining = self.config.risk.kill_switch_cooldown_days
# Research mode: reset kill switch after cooldown + recovery
# Research mode: reset kill switch after cooldown expires
# Reset peak_equity to current equity so drawdown restarts from 0
if (
self._kill_switch_triggered
and self.config.risk.backtest_mode == "research"
and self._kill_switch_cooldown_remaining <= 0
and drawdown_pct < _KILL_SWITCH_DRAWDOWN_PCT
):
self._kill_switch_triggered = False
logger.info("kill_switch_reset", date=str(date), drawdown_pct=drawdown_pct)
self._peak_equity = self._equity
drawdown_pct = 0.0
logger.info("kill_switch_reset", date=str(date))
# --- ENTRIES (only if kill switch not triggered) ---
if not self._kill_switch_triggered:

@ -27,7 +27,7 @@
"stop_atr_multiplier": 3.0,
"backtest_mode": "research",
"kill_switch_cooldown_days": 20,
"veto_oneoff_penalty": 0.5,
"veto_oneoff_penalty": 0.7,
"veto_parse_confidence_min": 0.4,
"veto_unknown_direction": true,
"veto_bearish_direction": true

Loading…
Cancel
Save