Five corpus-validated rules for MK3

Context. 2026-05-14 mid-session, after the SL-tightening, peak-stop, and time-of-day analyses, ran five more corpus slices to identify rules MK3 should bake in from day one. Corpus: 337 paper trades, 22 trading days, 2026-04-07 → 2026-05-14.

All findings are MK3 design inputs - see “Why NOT implement in MK2” section below for why we are NOT hot-patching these into the running engine.

Rule 1: Post-loss cooldown (single biggest lever)

Prior consecutive lossesnwinsWRsum $avg/trade
0 (fresh)21013665%+$57,391+$273
1 (after 1 loss)713549%-$41,236-$581
2 (after 2L)321959%-$5,064-$158
3 (after 3L)12650%-$3,757-$313

The single biggest predictive signal in the corpus. After one loss, win rate drops 16 percentage points and expected value flips from +581/trade. The “next trade after a loss” cohort lost $41k cumulatively. By streak=2 the effect partially recovers (59% WR), so the cooldown only needs to span 1 trade or ~30 min.

Mechanism (hypothesis): losses cluster in regime-change windows. The signal that just lost is followed by another signal in the same broken regime. The cooldown lets the regime reset before re-entering.

MK3 design: 30-min cooldown after any closed loss. RiskGate feature, not signal-engine feature.

Rule 2: Skip timer trigger in midday (11:00-13:00 CT)

Routine timer-tick scoring evaluations dominate midday losses:

TriggerMorningMiddayAfternoon
timern=46 WR=65% +$35,014n=39 WR=44% -$46,245n=14 WR=71% +$2,731

Same trigger flips from huge winner to huge loser by time-of-day. Event-driven triggers (hiro+strike_stack, repeated_hits, stack_only) hold up better midday than the routine timer tick. The midday bleed is mostly engine-default scoring evaluations, not event-driven entries.

MK3 design: time-of-day modifier on trigger weights. timer trigger contributes less to the score during 11:00-13:00 CT.

Rule 3: Promote hiro+strike_stack to high-confidence sleeve

Third corpus confirmation. Only trigger that survives midday cleanly:

WindownWRsum $
Morning875%+$4,534
Midday786%+$3,743
Afternoon250%-$2,500

n is still thin (17 total) but the compound trigger is signal-of-signal: when both hiro (flow imbalance) AND strike_stack (institutional positioning) fire simultaneously, the win rate beats baseline by ~20pp.

MK3 design: separate alert sleeve with higher confidence, optionally larger position size. Watch for n=30+ before locking in. Linked to task #101.

Rule 4: Filter low-BEAR (score < 35)

ScoreBiasnWRTP%sum $
35-44BEARISH8858%22%+$17,630
<35BEARISH6156%16%-$30,504

Same win rate, but the losses on BEAR <35 are larger and more frequent in the TP-hit column. This is the climax-reversal anti-signal (task #84): when BEAR score is screamingly low (<35), SPY is often near a local bottom - the position gets rinsed when the move reverses.

MK3 design: invert or hard-reject BEAR signals with score below ~35. Existing task #84 captures this.

Rule 5: Hard time-based exit at 10 minutes

HoldnWRTP%sum $
<2 min8976%26%+$55,632
2-5 min10263%25%+$30,368
5-10 min8251%12%-$30,885
10-20 min4337%14%-$58,259
20-60 min1753%35%+$11,029

WR collapses with hold time. Trades that resolve fast (<5 min) win at 63-76%. Trades that grind for 10-20 min win at 37%. Average win/loss dollar magnitudes are nearly identical across buckets - what changes is win frequency.

Mechanism: when the engine is right, the option premium responds fast. When the engine is wrong, the position bleeds slowly. The 10-20 min bucket is the “model was wrong but stop hasn’t fired yet” cohort.

MK3 design: time-based market exit if not profitable by t=10min. Or tighter trailing TP after t=5min. Needs path simulation to confirm precise threshold.

Bonus: MAE × time-of-day reveals midday isn’t whippy, it’s binary

TODshallow (>-10%)mid (-10/-20%)deep (20%)
Morning38%24%38%
Midday45%13%43%
Afternoon32%27%41%

Midday has FEWER trades in the V-recovery middle bucket (13% vs 24% morning). When midday trades go bad, they tend to keep going. This explains why tighter SL hurts most in morning (kills V-recovery winners) and helps least midday (deep dips don’t recover anyway).

Why NOT implement these in MK2 (decision)

The user’s primary stated goal is data collection for MK3 strategy revision, not paper-P&L optimization. Implementing these rules in MK2 would:

  1. Reduce data volume. Rules 1, 2, 4 are filters that skip trades. Fewer trades = less ML training data. The hard-negative examples (losses) are the most valuable training data for the meta-classifier; cutting them removes the signal we need to learn from.

  2. Bias the captured data. Once we filter, future analysis can’t compare apples-to-apples against the prior corpus. Changing rules mid-corpus invalidates rule-comparability. Better to validate ALL rules against the same complete corpus, then ship the validated package in MK3.

  3. Burn Codex cycles on a replaced system. Each rule = a Codex handoff + .py edits + tests, then ripped out for MK3. Net effort negative.

  4. Risk distorting the engine in flight. The current engine has known issues (THESIS_INVALID lag, structural BULL bias, etc.); adding 5 more rules on top of a known-broken base raises the chance of unintended interactions in paper trading.

Recommendation: keep MK2 trading as-is. All five rules are MK3 design lock-ins. Validate each against the corpus once more as the data grows; ship the consolidated rule set in MK3 with proper feature engineering (regime detector that captures these patterns implicitly rather than as hard-coded if/else).