Strategy Graveyard
← All strategies

volatility squeeze / breakout

Low-volatility breakout, 20-session hold

Eaten by frictionArchived · long · 2014-2026

Pre-registered 2026-10-14 (commit b80e123) · 1 run · data snapshot 2026-09-19T090800Z

The idea

The 10-session low-volatility breakout had shown real alpha but too little of it to pay generic slippage: about 0.14% per trade. Friction is paid once per round trip, whatever the holding period. If the drift after a breakout from a volatility squeeze keeps running past 10 sessions, holding longer should grow the alpha per trade while the cost per trade stays fixed.

The question was purely economic, and it came from a result already seen. That was declared up front rather than hidden.

How it was tested

Pre-registered on 2026-10-14 (commit b80e123) with two other conjunctions, all committed before running. Bonferroni over the batch of 3 put the Gate 7 bar at t ≥ 2.13. Exactly one variable changed: the hold went from 10 to 20 sessions. The signal, universe, 2×ATR stop, 5×ATR target and neutral sizing ($5,000, 1% risk, 10 slots) were the parent's. The success criterion was fixed in advance: Gate 7, Gate 8 and at least 0.30% alpha per trade. The registration also ruled out 30- and 40-session variants, whatever the outcome.

Where it died

The single run passed Gate 7 comfortably: t +3.07, 0.195% per trade over 7,387 trades, beta 0.33. It failed the other two. On the 2,057 trades a 10-slot portfolio actually took, alpha turned negative: t −0.38, capture ratio −0.22. And 0.195% per trade is still well short of 0.30%.

This run predates the engine and standard-error corrections that later took the 10-session parent below Gate 7 as well (see the low-volatility breakout). The verdict here does not depend on them: the alpha per trade was too small at either horizon.

The record

Thesis

The low-volatility breakout has real alpha but was archived because about 0.14% per trade at a 10-session hold cannot pay generic slippage. If the drift after a breakout from a volatility squeeze continues past 10 sessions, alpha per trade grows with the holding period while friction per trade does not.

Prior: Not independent of a result already seen — chosen precisely because the 10-session result was known. Declared up front: one variable changed (holding 10 → 20), success criterion fixed before the run, and no further 30- or 40-session variants whatever the outcome.

Specification

signal
ATR(14) < 2% of price; within 3% of the 52-week high; 20-day return > 0 (unchanged)
universe
US stocks, price ≥ $10, 20d dollar volume ≥ $10M (unchanged)
entry
next open
exit
20 sessions (was 10), 2×ATR stop, 5×ATR target
sizing
neutral default — $5,000, 1% risk per trade, 10 slots
validation
one of a batch of 3 pre-registered conjunctions; Bonferroni k=3 → t ≥ 2.13; Gate 8; alpha ≥ 0.30% per trade

Gates

Pre-registrationpass
Was the hypothesis, its parameters and its pass/fail rule written down before any data was looked at?
Gate 7 — Jensen alphapass
After regressing out market exposure, is there alpha left?
t ≥ 2.13 (Bonferroni, batch of 3)
t (HAC)+3.07alpha / trade %+0.20beta+0.33trades7,387
Gate 8 — Capture-preserved alphafail
Does the subset of trades a real portfolio can actually take keep the alpha?
scaled t_cap threshold and ratio ≥ 0.50
t captured-0.38capture ratio-0.22trades captured2,057
Gate F — Frictionfail
Is the alpha per trade large enough to pay for its own execution?
alpha/trade ≥ 0.30%
alpha / trade %+0.20

Why it died

The alpha is real and survives the batch correction (t +3.07), but it grows sublinearly with the hold: 0.140% per trade at 10 sessions, 0.195% at 20 — ×1.4 for twice the holding period. The drift is spent after about 10 sessions, so a longer hold does not outrun friction. At 20 sessions Gate 8 also inverts: the trades a 10-slot portfolio takes have negative alpha.

What it taught

Closes the low-volatility breakout family. Changing exactly one variable, for the economic reason named in the original archive, and committing in advance not to try the next holding period, is what made a known-result follow-up legitimate rather than a search.

Verdict history

  1. 2026-09-08Parent strategy (10-session hold) archived on friction: 0.140% per trade needs 2.14× more just to cover slippage
  2. 2026-10-14Pre-registered with two other conjunctions, committed before running
  3. 2026-10-14Single run: Gate 7 pass (t +3.07), Gate 8 fail (ratio −0.22), alpha 0.195% < 0.30% Eaten by friction