fix: carry action/risk_level onto backtest candidates for the gate ablation
Deploy / lint (push) Successful in 6s
Deploy / test (push) Successful in 57s
Deploy / deploy (push) Successful in 2m24s

_window_setups computed them but _replay_ticker dropped them, so the
ablation's NEUTRAL/tightener checks saw None for every candidate and the
'without confidence floor' / 'without R:R floor' rows collapsed to 0
setups (impossible — removing a floor can only add setups). Regression
test now goes through the real _replay_ticker path.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-02 08:07:27 +02:00
parent 29b1a9a28c
commit 8750aac6d9
2 changed files with 31 additions and 0 deletions
+4
View File
@@ -394,6 +394,10 @@ def _replay_ticker(symbol: str, records: list, config: dict, activation: dict) -
"best_prob": s["best_prob"],
"momentum": s["momentum"],
"meets_core": s["meets_core"],
# Gate fields the ablation recomputes floors from — without them
# every candidate looks NEUTRAL and the ablation rows collapse.
"action": s["action"],
"risk_level": s["risk_level"],
"outcome": outcome,
"target_hit": target_hit,
"realized_r": realized_r,