Skip to content

View translation

EthDailyPriceRsiDivergenceReversalLS

Hypotheses

ETH Momentum-Divergence Reversal (Single-Instrument USD-M, Long-Short, Daily, Price/RSI Divergence at Swing Pivots, Regime-Filtered, ATR-Stopped)

Hypotheses

A long-SHORT, SINGLE-INSTRUMENT, pure-OHLCV reversal strategy on ETHUSDT.BINANCE USD-M perpetual futures using DAILY bars, that trades PRICE/MOMENTUM DIVERGENCE at confirmed swing pivots. This is the analyst's explicit, repeatedly-cited-but-never-attempted recommendation for filling the long/short gap: an 'OHLCV-derivable positioning proxy (price/funding-free momentum-divergence).' A divergence is a disagreement between price and momentum at an extreme: price makes a new low but momentum (RSI) makes a HIGHER low (downside exhausting -> LONG), or price makes a new high but RSI makes a LOWER high (upside exhausting -> SHORT). EVERY design choice is anchored to this session's kills: (1) PURE OHLCV, SINGLE INSTRUMENT -- immune to the FIVE-times-killed supplementary-data wall (OI/taker/L-S/liquidations all data-poor) AND the basket data-collection wall (thin alts like ARB/AAVE abort multi-symbol runs); one confirmed-full-history major cannot fail on data. (2) ETH -- the asset where mean-reversion/fades actually WORK in this factory (the promoted VWAP-MR is ETH-specific; the identical fade went anti-predictive on higher-vol SOL), so the reversal is pointed at the regime where reversion physics holds. (3) NOT the dead generic-RSI anti-pattern -- the signal is a price/momentum DISAGREEMENT at a confirmed pivot (the specific exhaustion 'twist'), not a naive RSI-oversold level cross. (4) REGIME/EXHAUSTION FILTER -- the universal killer of fades is fading INTO a strong trend (SOL VWAP, XRP fade both died this way); a single context filter blocks entries when ETH is in a strong directional trend against the reversal, taking divergences only in ranging/exhaustion conditions. (5) ATR STOP beyond the divergence pivot -- a failed divergence (price continues past the pivot) is cut fast, containing the fade-into-trend tail. (6) DENSE firing -- divergences form ~20-30x/year across both directions, so every walk-forward OOS window is populated (no event-sparsity, the drawdown-family killer). (7) NOT a funding-confirmed-trend clone (closed to ETH/BTC), NOT VWAP-MR, NOT breakout/momentum, NOT cross-asset ratio, NOT supplementary-primary, NOT engine-incompatible continuous-spot-rebalance. Intentionally minimal: 3 tunables (rsi_period, swing_lookback, atr_stop_mult).

Hypotheses

Iteration 3 fixes the reported dormancy and direction failures with the smallest targeted changes. (1) DORMANCY: the pivot center index was derived from the buffer length m, which the base template caps at 500, so center froze once the buffer saturated (~2021-05) and `center > _last_center_idx` never fired again -> detection died. The window is still sliced with a buffer-relative index (center_rel) but the monotonic guard, divergence gap window, stored pivot ids, and max-hold now use an absolute, ever-advancing index (center_abs = _bar_count-1-w), so divergences are detected across ALL years including the 2022 bear. (2) DIRECTION/REGIME: REGIME_BAND tightened 0.35 -> 0.15 so shorts are blocked whenever price is extended >15% above SMA50 (strong uptrend, the fade killer that produced 19/24 counter-trend bull-market shorts) and longs symmetrically below it. (3) Per-year diagnostics (confirmed pivots / divergences / entries-blocked-by-regime / entries-taken) plus bull/bear divergence totals are logged on_stop (with super().on_stop() preserved) so the analyst can confirm dense entries resume every year and populated OOS windows. PIVOT_HISTORY raised 6 -> 10 to guard comparison density. calculate_signal still returns the continuous (RSI-50)/50 signal, and imports stay clean (added only stdlib datetime), so Layers 1-2 remain green.

Hypotheses

The RSI price/momentum-divergence reversal mechanism is anti-predictive on ETH daily, not merely mistuned. The base backtest loses money in every year 2020-2026 (except +0.79% in 2024) with profit_factor 0.57, Sharpe -1.14, negative expectancy, and an inverted payoff (avg_loss ~2x avg_win, skew -3.68). This is a valid, dense edge test (138 trades, trades match the hypothesis) that decisively shows NO edge across all regimes. With only 3 tunables and uniform losses everywhere, there is no parameter region to optimize toward — 2 hours of optimization would curve-fit noise on a money-loser. This is the third iteration of the same mechanism; the premise (divergence fades on ETH daily) does not hold. Recommend abandoning this specific mechanism rather than optimizing.

Implementation

Long-short single-instrument ETHUSDT.BINANCE USD-M perpetual daily reversal strategy trading price/RSI divergence at confirmed swing pivots (bullish: lower price low + higher RSI low -> LONG; bearish: higher price high + lower RSI high -> SHORT), with a regime/exhaustion filter that blocks fading into strong trends (|price/SMA50 - 1| > 15%), an ATR stop beyond the divergence pivot, SMA mean-reversion target, and a max-hold cap. Pure OHLCV, leverage 1.0. Three tunables: rsi_period, swing_lookback, atr_stop_mult.

Backtest Review

Mechanically sound: 138 trades over 6 years, dense in both directions (61 long / 77 short), no data-wall or sparsity failure

Backtest Review

Trades match the hypothesis — divergences fire and entries are taken as designed, so this is a genuine edge test, not a coding bug

Backtest Review

Single-instrument pure-OHLCV on a full-history major — no supplementary-data or basket-collection risk

Backtest Review

Loses money at base: total_return -14.2%, Sharpe -1.14 (CI -2.00 to -0.18), profit_factor 0.57, expectancy -$100/trade, avg_trade_return negative — edge is below zero, not just below fees

Backtest Review

Negative in EVERY year 2020-2026 except a trivial +0.79% in 2024 — fails across bull, bear, and range regimes, so no regime for the optimizer to tune toward

Backtest Review

Inverted payoff: avg_loss ($480) is ~2x avg_win ($258) at a 51% win rate; skew -3.68 / kurtosis 28.7 show the ATR stop is NOT containing the fade-into-trend tail the hypothesis promised

Backtest Review

probabilistic_sharpe 0.007 — true Sharpe almost certainly below zero; rolling Sharpe persistently negative across the whole history

Backtest Review

Already iteration 3 of this mechanism (dormancy + REGIME_BAND=0.15 fixes); the divergence-reversal premise is anti-predictive on ETH daily, and only 3 tunables cannot manufacture an edge that does not exist

Analysis

Do NOT optimize — the backtest is uninterpretable because the strategy stops trading after 2021-05 (24 trades total, ALL in 2020-2021; data_days=170 of 2318 bars; annual_returns only has 2020/2021 keys). The 2022-2026 walk-forward OOS windows would be empty, so optimization would fit noise. Two things to fix before re-review: (1) DIAGNOSE THE DORMANCY. Surface the divergence diagnostics you already track (_bull_div_count / _bear_div_count) plus a per-year count of confirmed pivots, divergences detected, entries blocked-by-regime, and entries taken. A bullish-divergence detector should fire heavily in the 2022 bear market, so zero trades there points to a state bug — prime suspects: the pivot-history/gap logic (PIVOT_HISTORY=6 with DIVERGENCE_MAX_GAP_BARS=120 may starve comparisons as pivots age out), the _last_center_idx advance, or a position that fails to close and blocks the flat-only entry path. Confirm entries resume across ALL years. (2) FIX DIRECTION/REGIME. 19 of 24 trades were shorts during the 2020-2021 bull run with long_win_rate 0.20 — the REGIME_BAND (0.35) gate is letting you fade into strong uptrends, the documented fade killer. Verify the gate actually blocks counter-trend shorts when price is extended above the regime SMA. RE-BACKTEST and confirm BOTH: dense entries in every year (target ~20-30/yr, populated OOS) AND non-negative expectancy/positive PF. If the density fix still yields negative expectancy (fades genuinely don't work here), abandon rather than iterate again — this is already the 2nd sparsity iteration.

Outcome Summary

This strategy was the analyst's long-cited but never-attempted recommendation for the long/short gap: fading price/RSI divergences at swing pivots on ETH daily, built as pure-OHLCV single-instrument to sidestep the session's data-wall and sparsity kills, with a regime filter and ATR stop as the fade's survival kit. By its third iteration it had fixed earlier dormancy and regime-band bugs and traded densely in both directions (138 trades), making it a genuine edge test rather than a coding artifact — but the result was decisively negative: -14.2% return, Sharpe -1.14, profit factor 0.57, an inverted payoff, and losses in every year except a negligible 2024. The reviewer concluded the divergence-reversal premise is anti-predictive on ETH daily across all regimes, leaving no region for the optimizer to tune, and abandoned the mechanism at the backtest-review gate rather than curve-fit noise on a money-loser.

Outcome Summary

A well-specified, dense edge test that loses uniformly across all regimes (not just below fees) proves the mechanism itself is anti-predictive — RSI divergence fades do not hold on ETH daily, and three tunables cannot manufacture an edge that does not exist, so the mechanism should be retired rather than iterated a fourth time.

Outcome Summary

It was abandoned at the pre-optimization backtest-review gate (verdict: abandon) as an anti-predictive mechanism rather than a mistuned one — losing across bull, bear, and range regimes with no parameter region to optimize toward; optimization, analyst, and risk-review stages were never reached.

Outcome Summary

A long-short, single-instrument, pure-OHLCV ETH daily futures reversal strategy that trades price/RSI momentum divergences at confirmed swing pivots, gated by a regime/exhaustion filter (only fade at moderate extension) and cut by an ATR stop beyond the divergence pivot.

Outcome Summary

It fired densely and as designed (138 trades over ~6 years, 61 long / 77 short) but lost money at base: total return -14.2%, Sharpe -1.14 (CI -2.00 to -0.18), profit factor 0.57, expectancy -$100/trade, probabilistic Sharpe 0.007, with an inverted payoff (avg loss $480 ≈ 2x avg win $258 at a 51% win rate) and negative returns in every year 2020–2026 except a trivial +0.79% in 2024.
Strategy report

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