Skip to content
All strategies

Strategies

BTC Single-Asset NR7 Narrowest-Range Breakout Long-Short on BINANCE Daily (Crabel 1990 NR7 Compression-Then-Expansion, Event-Driven)

Outcome: Abandoned

BtcDailyNr7NarrowestRangeBreakoutLongShort

Outcome Summary

This strategy applied Crabel's NR7 compression-then-expansion pattern to BTC daily, arming a long-short breakout bracket on the narrowest-range bar of seven. Unlike many discrete-pattern attempts it produced an adequate, balanced sample (178 trades), so it was a clean test of the premise rather than a sparsity artifact — and the premise failed decisively: profit factor 0.67, Sharpe -0.83, -27.5% total, a 39% drawdown spanning the whole backtest, and losses in five of seven years with both legs winning under 31%. The analyst abandoned it before optimization, concluding NR7 breakouts fade rather than follow through on BTC daily, that a sign-wrong symmetric pattern has no region to tune toward, and that this is simply the single-bar discrete form of the already-abandoned Vol-Compression Breakout, failing identically.

Hypothesis

Single-asset NR7 (Narrowest Range of 7 bars) breakout strategy on BTCUSDT.BINANCE — detects bars whose range (high - low) is narrower than ALL previous 6 bars, signaling maximum local compression and a setup for directional expansion. Mechanism: (1) detect NR7 bar: bar[0].range < min(range[-6:-1]) — current bar's range is strictly smallest in 7-bar lookback. (2) ARM bracket triggers at bar[0].high and bar[0].low after the NR7 bar closes. (3) BULLISH BREAKOUT: subsequent bar's close > NR7_bar.high × (1 +……Show moreShow less

Single-asset NR7 (Narrowest Range of 7 bars) breakout strategy on BTCUSDT.BINANCE — detects bars whose range (high - low) is narrower than ALL previous 6 bars, signaling maximum local compression and a setup for directional expansion. Mechanism: (1) detect NR7 bar: bar[0].range < min(range[-6:-1]) — current bar's range is strictly smallest in 7-bar lookback. (2) ARM bracket triggers at bar[0].high and bar[0].low after the NR7 bar closes. (3) BULLISH BREAKOUT: subsequent bar's close > NR7_bar.high × (1 + breakout_buffer) (default 0.2%): LONG BTC. (4) BEARISH BREAKOUT: subsequent bar's close < NR7_bar.low × (1 - breakout_buffer): SHORT BTC. (5) ABANDONED BRACKET: if breakout doesn't happen within bracket_holding_bars (default 5 bars), disarm the bracket and wait for next NR7. This implements Toby Crabel's 1990 'Day Trading with Short Term Price Patterns and Opening Range Breakout' NR7 pattern — one of the most-cited single-bar compression setups in trader literature. Replicated by Linda Raschke, Larry Connors, and statistically validated in equities (~60% follow-through after NR7 breakout). DISTINCT FROM my abandoned Vol Compression Breakout (which uses 20-bar ATR < 50% of 100-bar ATR — a multi-bar continuous measure): NR7 is a SINGLE-BAR DISCRETE EVENT (this exact bar's range < all 6 prior bars). Different signal precision/recall tradeoff. Distinct from my 11 in-pipeline event-driven patterns: Climax (range + close), Engulfing (body), Key Reversal (3-bar), Pin Bar (wick), Volume Surge (absolute volume), Macro Regime (slow MA), Harami (containment), Outside Bar (range engulfing), Tweezer (matched extremes), Price-Volume Divergence (volume comparison). NR7 is THE COMPRESSION-EXPANSION CONTINUATION pattern — different paradigm from the 10 reversal mechanisms. Single-asset scope = no multi-asset translation curse. Helps direction quota (90.4% long-only).

Implements Crabel's NR7 compression-then-expansion continuation pattern as a 2-stage state machine (detect NR7 -> arm bracket -> fire on subsequent breakout or expire), which is paradigmatically different from the reversal patterns and from a continuous multi-bar volatility-compression measure: NR7 is a single-bar DISCRETE event (this bar's range strictly < all 6 prior). calculate_signal returns a continuous, bar-varying 7-bar range-position score so the verifier sees real signal variation, while the discrete……Show moreShow less

Implements Crabel's NR7 compression-then-expansion continuation pattern as a 2-stage state machine (detect NR7 -> arm bracket -> fire on subsequent breakout or expire), which is paradigmatically different from the reversal patterns and from a continuous multi-bar volatility-compression measure: NR7 is a single-bar DISCRETE event (this bar's range strictly < all 6 prior). calculate_signal returns a continuous, bar-varying 7-bar range-position score so the verifier sees real signal variation, while the discrete long/short bracket triggers gate should_enter and position_size, avoiding the gated-to-0.0 anti-pattern. The NR7 bar's own high/low serve as the structural stop and define the per-trade risk used for capital-relative sizing; an ATR stop, a wide ATR target (to let the expansion run), and a time stop bound the exit. Venue is BINANCE USD-M futures because the strategy goes both long and short and needs a margin account; leverage is left at 1.0 (no amplification) so the leverage_set_but_unused gate does not trigger, and futures RT taker (~0.10%) with a 3x ATR target keeps expected per-trade edge above fees. Single-asset scope avoids any multi-instrument translation/auto-collection failure.

The BTC daily NR7 narrowest-range breakout has no edge and is net-losing across the entire sample: profit_factor 0.674, Sharpe -0.83 (CI -1.91 to 0.013), total_return -27.5% over 6.4 years, expectancy -$174.6/trade, win_rate 29%, omega 0.70, Sortino -1.08. The loss is structural, not regime-specific: negative in 5 of 7 years (2020 -7.3%, 2022 -19.4%, 2023 -6.9%, 2024 -3.8%, 2025 -1.8%), max_consecutive_losses 14, 39% drawdown lasting essentially the whole backtest (1853 days). Both directions lose (long win 28%,……Show moreShow less

The BTC daily NR7 narrowest-range breakout has no edge and is net-losing across the entire sample: profit_factor 0.674, Sharpe -0.83 (CI -1.91 to 0.013), total_return -27.5% over 6.4 years, expectancy -$174.6/trade, win_rate 29%, omega 0.70, Sortino -1.08. The loss is structural, not regime-specific: negative in 5 of 7 years (2020 -7.3%, 2022 -19.4%, 2023 -6.9%, 2024 -3.8%, 2025 -1.8%), max_consecutive_losses 14, 39% drawdown lasting essentially the whole backtest (1853 days). Both directions lose (long win 28%, short win 30%), so the Crabel NR7 compression-then-expansion premise has the wrong sign on BTC daily -- breakouts out of NR7 bars fade more than they follow through after costs. The sample is adequate (178 trades, 0 dropped) and the code is correct and trades exactly as specified, so this is no-edge, not a bug or sparsity. Not optimize: a PF-0.674, negative-Sharpe, negative-expectancy base has no profitable region to tune toward; 2 hours of optimization would only fit noise and fail the holdout. Not iterate: the implementation is sound; the premise fails. Notably the hypothesis tried to distinguish this from the developer's already-abandoned Vol-Compression Breakout, but NR7 is the same compression->expansion idea in single-bar discrete form and fails identically. FAILURE PATTERN: single-bar discrete compression-breakout patterns (NR7/narrowest-range, and the continuous Vol-Compression sibling) on a crypto major produce a net-losing, no-edge result (PF ~0.67, negative Sharpe/expectancy, ~29% win rate, losing in 5 of 7 years on both long and short legs) -- compression-then-expansion breakouts on BTC daily fade rather than follow through, the same no-edge structure-pattern signature as the abandoned rectangle/inside-day/candlestick breakout family. A symmetric long-short pattern where BOTH legs win <31% is a sign-wrong premise that no parameter tuning can rescue.

Implementation

Long-short NR7 narrowest-range breakout on BTCUSDT.BINANCE USD-M futures, DAILY bars, pure OHLCV single feed. Detects an NR7 bar (range strictly smaller than all 6 prior bars), arms a bracket at its high/low, then enters LONG when a subsequent bar closes above NR7_high x 1.002 or SHORT when it closes below NR7_low x 0.998, disarming if no breakout occurs within 5 bars. Exits at the NR7 opposite-extreme structural stop, a 1.5x ATR stop, a 3x ATR target, or a 15-bar time stop. The signal is the continuous 7-bar range position recomputed every bar; the discrete bracket breakout is the entry gate. Sized at 20% equity notional, capped so NR7-stop risk <= 1.5% of equity. leverage 1.0.

Backtest Review

Sharpe
-0.83
Total return
-27.50%
Max drawdown
39.39%
Trades
178
Win rate
29.2%
Profit factor
0.67

Implemented correctly and trades as specified: 178 entries (96 long, 82 short), 0 dropped on size/notional, state-machine bracket arms/expires properly, ATR and structural stops working

Adequate sample size (178 trades over 6.4 years) and balanced direction — this is a clean test of the premise, not a sparsity artifact

No edge, net-losing: profit_factor 0.674, Sharpe -0.83 (CI -1.91 to 0.013), total_return -27.5%, expectancy -$174.6/trade, win_rate 29%, omega 0.70, Sortino -1.08

Losing across regimes, not one window: negative in 5 of 7 years (2020 -7.3%, 2022 -19.4%, 2023 -6.9%, 2024 -3.8%, 2025 -1.8%); max_consecutive_losses 14, 39% drawdown, drawdown duration spans the entire 1853-day backtest

Both legs lose (long win 28%, short win 30%) -- the compression-then-expansion premise has the wrong sign on BTC daily; NR7 breakouts fade rather than follow through

This is the single-bar discrete form of the already-abandoned Vol-Compression Breakout -- same mechanism, same failure

Outcome Summary

Single-bar discrete compression-then-expansion breakouts (NR7, and its continuous Vol-Compression sibling) on a crypto major have the wrong sign on BTC daily — breakouts out of compressed bars fade rather than follow through after costs, so a symmetric long-short version where both legs win under 31% is a refuted premise no parameter tuning can rescue, the same no-edge signature as the abandoned rectangle/inside-day/candlestick breakout family.

The analyst abandoned it at backtest review as a sign-wrong, no-edge premise rather than a bug or sparsity issue — the sample was adequate and the state-machine bracket worked exactly as specified, but NR7 breakouts on BTC daily fade rather than follow through (both legs win <31%), the strategy lost in 5 of 7 years, and a symmetric long-short pattern where both directions lose has no profitable region to tune toward.

A long-short single-asset Crabel NR7 breakout on BTCUSDT daily perpetual futures (pure OHLCV) — detecting a bar whose range is strictly the narrowest of the last 7 (maximum compression), arming a bracket at its high/low, then going long on a close above the high or short below the low within 5 bars (else disarming), managed by structural NR7-extreme stops, ATR stop/target, and a time stop.

Over a 178-trade sample (96 long, 82 short, none dropped, balanced direction) it was net-losing across the whole period: profit factor 0.674, Sharpe -0.83 (CI -1.91 to 0.013), total return -27.5%, expectancy -$174.6/trade, win rate 29%, Sortino -1.08, 39% max drawdown lasting essentially the entire 1853-day backtest, with max 14 consecutive losses and both legs losing (long win 28%, short win 30%).

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