Skip to content
All strategies

Strategies

Compression-Trap Reversal, Cross-Asset-Class Breadth Test on US Equity ETFs: Buy the Failed Downside Break of an NR7 Day on SPY/QQQ/IWM/DIA + 9 Select Sector SPDRs, Next-Session-Open Entry, Fixed 3-Session Clock (USEQ 1-DAY, long-only event panel, flat most of the time, pure OHLCV)

Outcome: Abandoned

UseqEtfNr7FailedDownsideBreakReversalPanel

Outcome Summary

This run took the NR7 failed-downside-break reversal, already promoted on Bybit, OKX, Binance spot and Hyperliquid, and applied it unchanged to 13 US index and sector ETFs to see if it works outside crypto. The trigger fired about as often as predicted, but the backtest's average trade lost money (about -0.04% of notional), with a Sharpe of -0.12 and a drawdown of 26-30%, twice the pre-registered 15% limit. The analyst abandoned it at backtest review, after one iteration and without optimization: the losses were broad across names and years, costs were not the cause, and tuning would only fit noise. The breadth test answered its question: the edge looks crypto-specific, and this verdict covers only the ETF version, not the crypto panels.

Hypothesis

Original Research Lead hypothesis: an out-of-asset-class replication of the NR7 failed-downside-break reversal that the factory has promoted on four independent crypto universes (Bybit perps 742 trades avg 0.99%, OKX swaps 940 trades avg 1.11%, Binance spot, Hyperliquid 413 trades avg 1.10%; lesson L227). Every one of those tests is crypto, so they share one market's microstructure; this run freezes the pattern and the 3-day exit and asks whether the mechanism (stops parked under a quiet-day low get run, the……Show moreShow less

Original Research Lead hypothesis: an out-of-asset-class replication of the NR7 failed-downside-break reversal that the factory has promoted on four independent crypto universes (Bybit perps 742 trades avg 0.99%, OKX swaps 940 trades avg 1.11%, Binance spot, Hyperliquid 413 trades avg 1.10%; lesson L227). Every one of those tests is crypto, so they share one market's microstructure; this run freezes the pattern and the 3-day exit and asks whether the mechanism (stops parked under a quiet-day low get run, the break fails, trapped breakout-sellers cover) also exists in US index and sector ETFs, where short-horizon reversal is independently documented (Lehmann 1990; Connors & Alvarez index-ETF pullback studies) and execution is commission-free. Universe (fixed, no survivorship issue: all ETFs listed throughout, no delistings): SPY, QQQ, IWM, DIA, XLB, XLE, XLF, XLI, XLK, XLP, XLU, XLV, XLY on USEQ daily bars (XL* since Dec 1998, QQQ 1999, IWM 2000), ~25 years. Each name is evaluated independently on its own daily bars; the primary instrument is SPY and the other twelve are extra_instruments with their own 1-DAY bar types. Pattern, per name: day N-1 is an NR7 day (its high-low range is the smallest of the last 7 completed sessions including itself); on day N the low trades strictly below the NR7 day's low but day N closes at or above the NR7 day's low (failed downside break). Entry: market BUY decided at day N's close, filled at the NEXT SESSION's open (platform next_open_fill on USEQ, supported). Exit: market SELL decided at the close of the 3rd session held, filling at the following open (i.e. a 3-session clock, same as the crypto panels' 3-day clock). No stop in the source pattern; risk control is route (b): time exit plus capped sizing (12% of equity per leg, at most 6 concurrent legs = 72% gross, unlevered). A signal on a name that is already held is ignored (no pyramiding, no clock reset). Long-only by design: lesson L230 warns that the mirror short arm of absorption events failed in crypto, and no fixed-rule measurement of a short arm on these ETFs exists, so it is not included. Cost arithmetic: USEQ round trip ~0.02-0.05% (spread+impact, zero commission); a 3-session ETF holding has a ~2.5-3% standard deviation, unconditional drift ~+0.1%; the documented short-term reversal after a washed-out close-location day suggests a conditional mean of ~+0.3-0.4% per trade, i.e. 6-10x the round-trip cost. Predicted firing rate: NR7 ~1 in 7 sessions, a failed downside break the next day ~15-20% of those, so ~5-7 events per name per year, ~1,500-2,000 trades over the history, flat ~92% of the time per name. Drawdown comparison (lesson L224/L170): buy-and-hold SPY drew down ~55% in 2008-09; this panel is in the market a small fraction of the time and should stay under ~15%. Tags this run as breadth evidence: if the pattern works only in crypto, this test should fail, and that is informative.

Quota check: USEQ is 9.7% of experiments and BINANCE 49.6%; this adds nothing to Binance/BTC. Long-only is over-represented (75.6%), justified here because the long arm is the only arm with evidence (L230) and the run's purpose is a cross-asset-class breadth test of the factory's most replicated survivor (L227), on a fully new instrument set for this mechanism, with no supplementary feed (L189) and an event-driven, flat-most-of-the-time, fixed-clock design (L224). Prior USEQ reversal attempts that died (cross-sectional weekly reversal, KO/PEP pairs, XLF z-score) were continuous or always-in designs; this is a sparse event trigger with a frozen pattern.

negative_expectancy: The Research Lead's cross-asset breadth test of the crypto NR7 failed-downside-break reversal does not hold on US index and sector ETFs. Over 2,375 closed long trades on 13 ETFs (2000-2021, development period only), the average trade return is -0.042% of notional, against the USEQ floor of 0.05% (value -0.042% vs floor 0.05%). Profit factor is 0.937, Sharpe -0.12 and total return -13.1%, and max drawdown is 26.4% against the pre-registered 15%. Losses are spread across 8 of 13 names and 12 of……Show moreShow less

negative_expectancy: The Research Lead's cross-asset breadth test of the crypto NR7 failed-downside-break reversal does not hold on US index and sector ETFs. Over 2,375 closed long trades on 13 ETFs (2000-2021, development period only), the average trade return is -0.042% of notional, against the USEQ floor of 0.05% (value -0.042% vs floor 0.05%). Profit factor is 0.937, Sharpe -0.12 and total return -13.1%, and max drawdown is 26.4% against the pre-registered 15%. Losses are spread across 8 of 13 names and 12 of 22 years. Fees and slippage are not the cause (zero commission, 1 bp per side). The trades match the hypothesis (long entry at the next open after the failed break, time exit about 3 sessions later), so this is not an implementation defect. Tuning nr_lookback, hold_sessions or min_break_frac would be fitting noise on a mechanism whose net expectancy is not positive. The breadth question is answered: the edge appears specific to crypto and does not carry over to highly arbitraged US ETFs. QA's concern is borne out. This verdict covers this ETF operationalization only, not the crypto panels.

Implementation

Long-only event panel on 13 USEQ ETFs (SPY primary; QQQ, IWM, DIA and 9 Select Sector SPDRs as extras), daily bars, each name evaluated on its own bars. Trigger on day N: day N-1 is NR-k (range <= min of the previous k-1 sessions, so it is the smallest of the last k including itself; k=7), day N's low is strictly below the NR day's low by more than min_break_frac x NR range (default 0, i.e. any amount below), and day N closes at or above the NR low. A market BUY decided at N's close fills at the next session's open (platform next_open_fill). Exit: a market SELL decided at the close of the hold_sessions-th session held (default 3), filling at the next open. Sessions are counted as the name's bars stamped after position.ts_opened, so the clock survives a restart. Each leg is sized at 12% of equity in whole shares, with at most 6 concurrent legs including pending entries (72% gross, unlevered). Signals on a held or pending name are ignored. There is no stop.

This implements the frozen crypto NR7 failed-downside-break pattern and its 3-session clock on US index and sector ETFs, as a breadth test across asset classes. Risk control is route (b): a time exit plus capped sizing (12% per leg, 72% max gross, 1x). The legs don't depend on each other, so the cross-leg alignment barrier is turned off and each leg trades on its own close. All legs share the USEQ calendar. Next-open execution is supported natively. slippage_bps_per_side is kept in parameters for the platform to apply and is not charged in the code. The optimisation plan is followed: nr_lookback [4,10], hold_sessions [2,6] and min_break_frac [0,0.5] are tunable, clamped to the same ranges and declared in _param_bounds; leg_weight 0.12 and max_concurrent 6 are fixed. Two interpretation choices: the NR test uses <= (ties count as narrowest, since the brief says 'smallest including itself'), and the continuous signal is the break depth in NR-range units (negative when the close fails to reclaim the NR low).

Verification Results

Optional: rank same-session triggers by break depth, or document the arrival-order allocation.

When more than max_concurrent legs trigger on the same session, slots go to legs in the order their bars arrive (SPY on the primary path, then the extras), not by signal strength. This does not break the hypothesis, which sets no priority rule, but the selection is arbitrary and depends on bar-arrival order.

No change needed.

min_bars_required() overrides the base method and returns nr_lookback + 2 (6-12), below the base default of 20. That is enough for the NR window plus the trigger bar, so it is correct. Layer 1 flagged the override, which is deliberate here.

Sandbox: 1455 trades over about 2400 days on 13 names, roughly 17 per name per year. The hypothesis predicted 5-7, so check how the ledger counts trades and how often the trigger fires before reading per-trade economics. NR7 setups cluster in calm regimes, and the concurrency cap is first-come within a session, so on busy days which legs fill depends on the order the bars arrive. Whether a crypto stop-run reversal carries over to highly arbitraged index/sector ETFs is the open question. That is for the full backtest to decide (round trip about 0.02-0.05%, slippage applied by the platform).

Backtest Review

Sharpe
-0.12
Total return
-15.92%
Max drawdown
30.02%
Trades
2974
Win rate
51.3%
Profit factor
0.94

The code implements the frozen pattern as written: an NR day, a low below it on the next day, a close back at or above that low, a long entry at the next session's open, and a time exit about 3 sessions later. All 2,375 trades are long, with 12% legs and no commission.

The sample is large and reliable: 2,375 closed trades over about 21 years (2000-06 to 2021-07) on 13 ETFs, roughly 146-214 per name. That is close to the predicted 1,500-2,000, so the trigger fires as intended.

Net expectancy is negative. The average trade return is -0.042% of notional, against a USEQ floor of 0.05% and a preferred 0.10%. That is below zero, not just below the floor. The hypothesis predicted +0.3% to +0.4%.

Profit factor is 0.937, Sharpe -0.12 and total return -13.1%. Max drawdown is 26.4%, against the pre-registered 15%, and the strategy never recovered from it (drawdown duration of 7,350 days). The win rate of 51% comes with an average loss ($181) larger than the average win ($161).

The losses are broad, not concentrated. 8 of 13 names lost money (SPY -$2.7k, XLK -$3.4k, XLU -$3.9k, XLY -$2.8k, XLF/XLB/XLV about -$2.4k to -$2.6k). The winners (XLE, XLI, XLP, QQQ) look like dispersion around zero, and there is no subset showing a robust edge. 12 of 22 calendar years were negative.

Costs are not the cause. Commission is zero and the slippage is 1 bp per side, so the gross reversal effect is itself about zero or negative.

Outcome Summary

The NR7 failed-downside-break edge appears specific to crypto and does not carry over to heavily arbitraged US index and sector ETFs, so it should not be treated as a general cross-asset mechanism.

The backtest-review gate abandoned it before optimization for negative expectancy: -0.042% per trade, below the 0.05% USEQ floor and below zero. The losses were spread across 8 of 13 names and 12 of 22 years, with zero commission and 1 bp slippage, so the gross effect itself was about zero or negative. This was not an implementation defect.

A test of whether the NR7 failed-downside-break reversal, already promoted on four crypto universes, also works outside crypto: on 13 US index and sector ETFs (USEQ daily bars), it bought at the next session's open after a day broke below the prior NR7 day's low but closed back above it, sold on a fixed 3-session clock, and sized each leg at 12% of equity, long-only and unlevered.

The initial backtest lost money. Over the full report window (2000-06 to 2026-10) it made 2,974 long trades with an average trade return of -0.041% of notional, a Sharpe of -0.12, a profit factor of 0.94, a total return of -15.9% and a max drawdown of 30.0%. The reviewer's development-period figures (2,375 trades, 2000-2021) were close: -0.042% per trade, a total return of -13.1% and a max drawdown of 26.4%, against a pre-registered 15% drawdown limit.

Backtest and paper results are hypothetical. Trading involves risk of loss.