Removed timed loss cooldowns from CortanaROI MK2
Compiled Truth. On 2026-04-30 we removed all timed post-loss cooldowns
from the trading engine. The two systems (a 20-min same-direction gate in
scoring.py and a pair of timed gates in PositionRiskGate.can_enter) had
been quietly costing valid re-entries and were gameable by an opposite-
direction loss erasing a same-direction cooldown (Task #25). The user
accepts faster re-entry risk in exchange for not missing setups during
chop-recovery windows. The 3-consecutive-same-bias daily ban survives
because it is a hard circuit breaker, not a timed cooldown.
State
- Removed:
scoring.py20-min post-loss same-direction gate (lines 1136-1160 of pre-change file). Writer inapp.py(lines 1831-1842) was deleted at the same time. - Removed:
PositionRiskGatesame_bias_cooldown_sec(1200s default) andconsecutive_loss_cooldown_sec(1800s default). - Kept: daily
max_daily_losscircuit breaker, VIX circuit breaker, daily 3-loss same-bias ban (_state.blocked_bias),max_trades_per_day,max_trades_macro_day. - Commit:
fbffc3e(feat(risk): remove timed loss cooldowns per user directive).
Why this matters
The 20-min same-direction cooldown was added 2026-04-10 in response to trades #24/25/26 (a -$39K bearish PUT 3-peat cluster). The intent was preventing revenge-style re-entries. In practice:
- Bug: only the most-recent loss direction was tracked; an opposite- direction loss would erase the cooldown for the original direction (Task #25). So the gate was already unreliable.
- False negatives: 20 min is a long time inside a 0DTE session. Real chop-recovery setups were getting thrown away because of an earlier loss in the same direction.
- Mandate conflict: project mandates “early and right” - passing on valid re-entries is a direct violation.
Open Threads
- The Task #25 underlying bug (per-direction cooldown tracking) is now moot - close the task as superseded.
- We did NOT touch
consecutive_lossestracking or the day-ban (_state.blocked_bias). Three same-direction losses still ends that bias for the day. - If the system shows revenge-trading patterns post-removal (e.g., 3 losses in 3 minutes), revisit. The first thing to add back would be a per-direction cooldown that tracks both directions independently (5 min, not 20).
See Also
projects/cortana.md- root project state- (memory)
project_losses_april16_chop.md- original cluster that motivated cooldowns - (memory)
feedback_no_kill_with_open_positions.md- restart safety
2026-04-30 | trader directive | Removed both cooldown systems mid-market hours after stuck-OPEN trade #87 + active BEAR cooldown left engine effectively offline at 08:50 CT. Force-cancelled #87 manually. Code change pushed; engine restart required for in-memory cooldown state to clear.