The Bid & Ask

Quotations, Dispatches, and the Daily Tape

Thursday, August 13, 2026

Rejected thesis

Burst-chain stock-side exit grid

The result

Question: For users trading the burst-chain underlying (not the options spec), which exit rule maximises edge over same-name random controls?

Code: research/burst_stock_exits.py Report: research/burst_stock_exits_report.json

Setup: Anchor on second_burst==True events from burst_continuation_report.json, entry at close[T+1]. Walk forward day-by-day with each rule until exit, time-cap MAX_HOLD=45. Controls walked under the same rule from their random entry date (no T+1 offset since they're not events). n=718 events, 3,511 controls.

Rules tested: - time_{15,21,30,45} — fixed-day hold, no other stop. - atr_{1.5x,2x,3x} — trailing high-water-mark stop at K × ATR(14) where ATR is computed at entry day. - pct_trail_{5,10,15} — trailing high-water-mark stop at X % off. - break_lo_day1 — exit on first close below the day-1 trigger-day low. - break_lo_day2 — same but vs the day-2 entry-day low.

Top 5 by edge_mean:

rule n ev_mean ev_hit ev_sharpe exit_day ct_mean ct_hit edge_mean edge_hit
break_lo_day1 718 +5.3 % 47.6 % +0.143 34.5 +0.4 % 17.9 % +4.9 pp +29.7 pp
time_45 718 +6.8 % 54.5 % +0.179 45.0 +2.1 % 55.5 % +4.6 pp -1.0 pp
atr_3.0x 718 +5.1 % 45.5 % +0.153 26.1 +1.0 % 43.4 % +4.0 pp +2.2 pp
break_lo_day2 718 +3.9 % 32.7 % +0.117 22.9 +0.4 % 17.9 % +3.6 pp +14.8 pp
atr_2.0x 718 +3.2 % 37.5 % +0.107 16.8 +0.6 % 39.7 % +2.6 pp -2.3 pp

Three observations:

  1. break_lo_day1 is the selection-aware winner. Edge on mean is +4.9 pp (close to time_45's +4.6 pp) but the edge on hit-rate is +29.7 pp — by far the biggest of any rule tested. Random control days don't have a meaningful "trigger-day low" reference; when the rule fires on an event, it's signalling actual setup failure. This is the most cohort-specific exit.

  2. time_45 (just hold 45 days) has the highest Sharpe (0.179) but ~zero edge on hit-rate. Means the absolute return comes mostly from generic 45-day market drift, not from cohort selection. Better mean, worse risk-adjusted information ratio. Acceptable if you want maximum simplicity and aren't bothered by tying up capital regardless of price action.

  3. ATR / percentage trailing stops are weaker than the technical level. atr_3.0x is the best of the trailing family (mean +5.1 %, Sharpe 0.153, exit ~26 days). Tighter trails (atr_1.5x, pct_trail_5) bleed alpha by stopping on noise. None beat break_lo_day1 on either edge dimension.

Comparison to options grid (burst_options_exits.py winner: 1.0/1.10 debit-call-spread 45-DTE hold-to-expiry, +14.2 pp edge, Sharpe 0.22). The stock-side edge is smaller in pp terms because we lose the option leverage, but the +29.7 pp hit-rate edge on break_lo_day1 is a stronger information signal than anything in the options grid — it points at a genuine cohort-specific structural feature (the day-1 low matters) rather than just IV / vol-of-vol arbitrage.

Verdict: Add break_lo_day1 as the stock-side burst exit; keep hold to expiry as the options-side exit. Both wired into web/scanner_charts.py:_COHORT_POSITION_SUMMARIES['burst'] as parallel <dl> blocks under one cohort_position section.

Meta-finding: When choosing an exit, the right metric depends on intent: - Maximise expected return → time_45 (or equivalent long hold). - Maximise cohort-specific information → break_lo_day1 (technical-level stop at the structural reference). - The two diverge here because controls show that long holds capture generic drift as much as event-specific drift.

At a glance
Sample718
Validatorresearch/burst_stock_exits.py
VerdictRejected

Every result here is reproducible from the script named above. Reports are in the repository.

Other rejected theses