Skip to content

View translation

AdaFourHourDownStreakReversalUptrendLong

Hypotheses

ADA 4H Multi-Bar Down-Streak Reversal Long (Pullback Exhaustion in Established Uptrend)

Hypotheses

A long-only, single-instrument, single-timeframe strategy on ADAUSDT.BINANCE 4H bars. Implements a NEW structural mechanism aligned with the analyst's regime-decay warning: breakout strategies (sequence-based HH, channel-width expansion, ATR-expansion) failed in the 2025+ lower-vol regime, but PULLBACK-REVERSAL strategies should thrive (the just-landed ADAPullbackToRangeMidpointLong is an example). The mechanism: detect when 3+ consecutive bars have each closed LOWER than the prior bar (a down-streak — pullback within a broader uptrend) AND price has STAYED ABOVE the 100-bar SMA throughout (the broader uptrend is still intact — this is a dip-buy, not a falling-knife catch). The first BULLISH bar after the down-streak (close > open) signals the pullback has been bought and momentum has flipped. Enter long on that bullish reversal bar. Critically distinct from every existing ADA 4H mechanism: (a) NOT breakout-based (entries are at the END of pullbacks, not at channel-extreme breaches — sidesteps the regime-decay vulnerability flagged by analyst); (b) NOT failed-reclaim/absorption (uses count-based down-sequence with trend-still-intact, not a single-bar wick); (c) NOT pullback-to-midpoint (uses CONSECUTIVE down-bar SEQUENCE not midpoint proximity); (d) NOT statistical signals; (e) sequence-based + structural per analyst's successful-pattern profile. The mechanism captures the rhythm of liquid 4H crypto in lower-vol regimes: pullbacks happen, but they get bought — entering at the moment of buy-back signal extracts the rebound move.

Hypotheses

Iteration 2 fix: the only failure was a Layer-2 TypeError — `_sma()` was declared `@staticmethod` (2 params) but the synthetic verification proxy invokes it bound to `self`, passing 3 positional args ('takes 2 positional arguments but 3 were given'). Converted `_sma` to a normal instance method `def _sma(self, vals, n)` so the bound call `self._sma(self._close, self.sma_period)` matches its (self, vals, n) signature. No other logic changed — imports stay clean, and the continuous reversal signal, the down-streak/uptrend gate, entry/exit, and sizing are all identical to the previously-passing layers, so no earlier check regresses.

Hypotheses

Genuinely negative-edge mechanism, not a corrupted run. The strategy is correctly implemented (172 long-only down-streak-reversal entries, trades as specified) but has negative expectancy on ADA 4H: profit_factor 0.79, Sharpe -0.98, expectancy -$496/trade, total_return -70.5%, max_drawdown 72.7%, losing in 6 of 7 years. The premise is directly refuted: the hypothesis claimed this pullback-reversal would thrive in the 2025+ lower-vol regime, yet 2025 (-57.7%) and 2026 (-43.7%) are the two worst years — the 'first bullish bar after a 3-down-streak' entry catches falling knives, and the 100-SMA 'trend intact' filter does not prevent buying into continuing declines. Reckless 0.95 sizing (avg_position_pct 129%, 84.7% vol) amplifies the drawdown to 73% but does NOT cause the negative sign: profit_factor 0.79 and negative expectancy are sizing-invariant, so a properly-sized version still loses. Not iterate: unlike the ADA width-expansion sibling (PF 1.057, a positive gross edge masked by a sizing-driven impact artifact, which I sent back for a clean re-test), this signal has no hidden edge to recover — there is no code bug or cost artifact, just a negative-EV entry, and no parameter tuning flips a PF-0.79, lose-6-of-7-years signal positive. FAILURE PATTERN: count-based down-streak reversal long ('buy the first bullish bar after N consecutive down-closes while above a 100-SMA') on a crypto alt 4H is negative-EV because the down-streak frequently continues into a real decline — the trend-intact SMA filter does not screen out falling knives, and the mechanism loses hardest in the low-vol 2025/2026 regime the hypothesis predicted it would thrive in, refuting the premise.

Implementation

Long-only down-streak exhaustion reversal on ADAUSDT.BINANCE 4H bars (pure OHLCV). Detects >=3 consecutive bars each closing lower than the prior (a pullback) while price stays above the 100-bar SMA throughout (uptrend intact), then enters long on the first bullish bar (close > open) signalling the pullback has been bought. Exits on +8% take-profit, -5% stop, close below the SMA (trend break), or a 20-bar time stop. Sized at 95% of equity notional, leverage 1.0, never shorts.

Verification Results

Verification failed (Layer 2 — synthetic scenarios): Parameters used: ['min_streak', 'sma_period', 'min_notional', 'position_pct', 'max_hold_bars', 'stop_loss_pct', 'take_profit_pct'] Check that __init__ sets all attributes from self.parameters.get(). - steady_uptrend: TypeError: AdaFourHourDownStreakReversalUptrendLong._sma() takes 2 positional arguments but 3 were given (bar timestamp: 1735695840000) - steady_downtrend: TypeError: AdaFourHourDownStreakReversalUptrendLong._sma() takes 2 positional arguments but 3 were given (bar timestamp: 1735695840000) - flat_ranging: TypeError: AdaFourHourDownStreakReversalUptrendLong._sma() takes 2 positional arguments but 3 were given (bar timestamp: 1735695840000) - volatility_spike: TypeError: AdaFourHourDownStreakReversalUptrendLong._sma() takes 2 positional arguments but 3 were given (bar timestamp: 1735695840000) - zero_volume: TypeError: AdaFourHourDownStreakReversalUptrendLong._sma() takes 2 positional arguments but 3 were given (bar timestamp: 1735695840000) - price_gap: TypeError: AdaFourHourDownStreakReversalUptrendLong._sma() takes 2 positional arguments but 3 were given (bar timestamp: 1735695840000)

Backtest Review

Correctly implemented and trades as specified (172 long-only down-streak-reversal entries, clean entry gate, 0 dropped); healthy trade count

Backtest Review

Novel sequence-based mechanism distinct from the other ADA 4H strategies

Backtest Review

Negative edge: profit_factor 0.79, Sharpe -0.98, expectancy -$496/trade, total_return -70.5%, max_drawdown 72.7%

Backtest Review

Loses in 6 of 7 years (only 2023 positive); worst years are 2025 (-57.7%) and 2026 (-43.7%)

Backtest Review

Premise directly refuted: the hypothesis claimed pullback-reversal would thrive in the 2025+ low-vol regime, but those are the two worst years — the entry catches falling knives the 100-SMA filter fails to screen out

Backtest Review

Reckless 0.95 sizing (avg_position_pct 129%, 84.7% vol) amplifies the 73% drawdown, but the negative profit_factor/expectancy are sizing-invariant — proper sizing still loses

Backtest Review

No fixable artifact masking an edge (unlike the PF-1.057 width-expansion sibling) — the signal itself is negative-EV

Outcome Summary

This strategy aimed to buy pullback exhaustion on ADA 4H — entering the first bullish bar after a 3+ down-close streak while price held above its 100-SMA — explicitly betting that pullback-reversals would thrive in the 2025+ low-vol regime where breakouts had decayed. It was implemented correctly over 172 trades but was decisively negative-EV: profit factor 0.79, Sharpe -0.98, -70.5% return, a 72.7% drawdown, losing in six of seven years. The analyst abandoned it at the backtest-review gate on its second iteration, finding the premise refuted (2025 and 2026 were the worst years), the entry catches falling knives the SMA filter misses, and — unlike a sibling with a hidden positive edge — there was no artifact to recover, so it never advanced to optimization or risk review.

Outcome Summary

A 'trend-intact' SMA filter does not screen out falling knives — a count-based down-streak reversal long on a crypto alt 4H is negative-EV because the down-streak frequently continues into a real decline, and the regime the hypothesis bet on (2025+ low-vol) was where it lost most, so a plausible thesis can be flatly refuted by the data.

Outcome Summary

The backtest-review analyst issued an 'abandon' verdict: the code was correct and trades as specified, so this is a genuinely negative-EV mechanism, not a corrupted run — the 'first bullish bar after a 3-down streak' entry catches falling knives that the 100-SMA filter fails to screen out, and the premise was directly refuted since the strategy lost hardest in exactly the 2025+ low-vol regime the hypothesis claimed it would thrive in.

Outcome Summary

A long-only, single-instrument pullback-reversal strategy on ADAUSDT 4H Binance futures (1.0x leverage, 0.95 position fraction) that bought the first bullish bar after a 3+ consecutive down-close streak, provided price stayed above its 100-bar SMA throughout (a dip-buy in a still-intact uptrend, not a falling-knife catch), exiting on +8% target, -5% stop, a close below the SMA, or a 20-bar time stop.

Outcome Summary

Across 172 trades it returned -70.5% with profit factor 0.79, Sharpe -0.98, expectancy -$496/trade, a 38.4% win rate and a 72.7% max drawdown, losing in 6 of 7 years — with the two worst years being 2025 (-57.7%) and 2026 (-43.7%); reckless 0.95 sizing (avg position 129%, 84.7% vol) amplified the drawdown though the negative edge was sizing-invariant.
Strategy report

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