SL/risk-control corpus analysis - don’t tighten SL, don’t add session peak-stop

Context. 2026-05-14 mid-session, user observed asymmetric P&L per trade: wins ~2k (TP fires at +10%), losses ~5k (SL fires at -25%). Breakeven win rate = 71%; corpus empirical win rate = 60-65%. User asked for the “sweet spot to limit the downside” without losing data-collection volume. Two candidate interventions tested against the full corpus (22 trading days, 315 trades, 2026-04-07 → 2026-05-14):

  1. Trailing daily-peak-stop (session lockout after give-back from intraday peak)
  2. SL-tightening (move -25% to a tighter level)

Both lost money over the corpus. Don’t implement either.

Intervention 1: Daily peak-stop

Configuration tested: stop new entries for the day when running P&L drops below peak by max($floor, peak × pct%). Sweep across floor=3000, pct=20-35%.

ConfigActual $Sim $Δ
floor=$2000 pct=25%+18,229+2,006-$16,223
floor=$2000 pct=30%+18,229+2,006-$16,223
floor=$3000 pct=35%+18,229+2,751-$15,478

**Result: every configuration costs 75k saved across days like 04-10 -4k, 04-30 -4.4k, 05-07 -2.5k, 05-12 -1.5k). On 6 days it hurt - 05-05 alone cost -74,373 winning day off at +$2,648 after early give-back). The engine demonstrably has recovery ability; peak-stop kills it.

Intervention 2: SL-tightening (-25% → tighter)

Computed against outcomes.mae_pct (runtime-recorded max adverse excursion, not noisy path snapshots). For each trade, if mae_pct ≤ -sl_pct, simulated SL fires and locks loss at -sl_pct × total_cost.

SL%Actual $Sim $ΔHelpedHurtBreakeven WR
30%+39,480-192k-$232k16875%
25% (current)+39,480-172k-$211k206671%
22%+39,480-162k-$201k446469%
20%+39,480-159k-$199k487067%
18%+39,480-162k-$201k517564%
15%+39,480-150k-$190k608160%

**Result: every SL ≤ 25% destroys 190-232k of P&L over the corpus.** For every 1 saved by cutting a loser shorter, $3-5 is lost by stopping a winner out before it recovers.

(Note: sim at SL=25% should ≈ actual; the gap reflects engine-actual MAE-based exit timing being slightly different from a hard MAE-trigger exit, plus partial-exit dynamics. The shape of the curve across SL levels is what matters - monotonically worse as SL tightens.)

Why SL-tightening fails: MAE distribution among ALL trades

MAE bucketnwinswin %
Barely dipped (>-5%)727097%
-5 to -10%403588%
-10 to -15%362158%
-15 to -20%231774% ← V-recovery sweet spot
-20 to -25%251144%
-25 to -30%23522%
≤ -30%702130%

The -15 to -20% MAE bucket has 74% win rate. These are V-recovery trades: option mid dips deep, then comes back through the entry to hit +10% TP. A tighter SL kills exactly these. Options premium has enormous intraday vol - a $0.30 SPY underlying move can cycle the option mid -20% then +10% inside 2 minutes. TP at +10% is small relative to the option’s natural vol, so winners frequently V-dip past where a tighter SL would have stopped them.

The real “limit the downside” levers (data-supported)

In order of durability:

1. Smaller position size, not tighter SL. Today’s 17k positions × 25%, not the SL %. Drop from 100 contracts to 50 = same -25% SL but $2k max loss. Preserves V-recovery winners. Cleanest implementation: scale contract count by signal confidence (HIGH=100, MEDIUM=70, LOW=50).

2. Filter out the “deep-MAE” cohort. Trades with MAE ≤ -25% have 22-30% win rate vs corpus baseline ~60%. If the meta-model retrain (task #56, nightly pipeline) can predict “this trade is likely to go deep” from entry features, those signals are skipped. Today’s data feeds that learning loop.

3. Path-aware exit (MK3 only). Use IMPULSE-against-position as an early-exit signal: if IMPULSE flips against the position before profit, bail before -25%. This is the right MK3 design - exit on signal flip, not just price level.

What NOT to do (data-proven wrong)

Decision

  • Keep -25% SL on MK2. Empirically near-optimal in (-15%, -30%) range.
  • Do not add session peak-stop. Net negative across corpus.
  • Reduce position size for low-confidence signals - MK3 design, validate first.
  • Filter deep-MAE candidates via meta-model - already in nightly pipeline, watch for signal once n grows.