Skip to content

View original

BtcConnorsRsi2OversoldBullRegimeLong

Hypotheses

BTC BINANCE Futures 4H Connors RSI(2) Oversold Mean-Reversion Long-Only with 200-Bar Bull Regime Filter (3-Parameter, No Stop-Loss, Direct Implementation of 'Connors Needs 4H Refresh' Analyst Recommendation)

Hypotheses

A long-only single-instrument SHORT-TERM MEAN-REVERSION strategy on BTCUSDT.BINANCE perpetual futures using 4-HOUR bars and OHLCV-only data. Mechanism: classic Larry Connors RSI(2) oversold signal — enter long when RSI(2) drops below oversold_threshold (default 5, deeply oversold) AND price is above the 200-bar SMA (confirmed bull regime). Exit when RSI(2) recovers above 50 (momentum normalized) OR after 12 bars (~2 day time cap). This is the FACTORY-PRESCRIBED REFRESH of the Connors mechanism class per the ETH Daily Consecutive-Down-Day Pullback abandon notes: 'THE LARRY CONNORS MECHANISM CLASS NEEDS A 4H BAR REFRESH: future hypotheses should test 2-down-day patterns at 4H (~6x more bars, more conjunction opportunities, faster mean-reversion). The daily-timeframe version of this mechanism is empirically dead on crypto majors.' This proposal implements that EXACT recommendation but uses RSI(2) (the original Connors mechanism, single signal) instead of N-down-day pattern (the failed daily variant). STRATEGIC RATIONALE: (1) DIRECT IMPLEMENTATION OF ANALYST RECOMMENDATION — the Connors mechanism class is specifically named in the abandon notes as needing 4H bar refresh. RSI(2) is the ORIGINAL Connors mechanism (Connors-Alvarez 2009 'Short Term Trading Strategies That Work') from which the N-down-day variant was derived. (2) MECHANISM CHOICE — RSI(2) is structurally DIFFERENT from prior failed mechanisms: (a) NOT a breakout (uses oversold momentum, opposite signal class — entries occur during selling pressure not after upward breaks); (b) NOT a Bollinger Band signal (uses 2-period momentum, not 20-period standard deviation — single tunable threshold vs BB's std-multiplier which produced 5 cliffs on BTC 4H); (c) NOT a drawdown accumulation (entries fire on 2-bar momentum, not 90-bar high deviation — no buy-and-hold disguise risk); (d) NOT cross-sectional (single asset, no correlation collapse); (e) NOT a pair MR (no 4-leg fee burden). (3) PORTFOLIO QUOTA POSITION — fills proven MR mechanism class with a NEW signal type. Distinct from EthFuturesOneHourVwapExcursionMRLong (VWAP signal at 1H), LinkFuturesFourHourRangeMRLowVolLong (range-bound MR with vol filter), EthBtcRatioFourHourBollingerMRLongPair (FAILED pair Bollinger MR). RSI(2) is a fast-twitch momentum-MR signal not present in the 1111-experiment portfolio. (4) DECISIVE FAILURE-MODE AVOIDANCE: NO stop_loss parameter — explicit fix for LINK/ETH iter-2 optimizer-reversal failure. NO tunable max_hold_bars (12 hard-coded). NO tunable exit_rsi_threshold (50 hard-coded). Only 3 tunable parameters (rsi_period, oversold_threshold, position_pct). Risk bounded by (a) 200-bar bull regime filter (only trade in confirmed up-trends), (b) 12-bar hard time exit, (c) 30% position sizing. (5) FEE MATH EXPLICITLY VIABLE: per-trade typical 1-3% recovery × 30% sizing = 0.3-0.9% gross per winner. Net of 0.10% RT Binance USD-M fees = 0.2-0.8% per winner. Per losing trade (time exit at 12 bars without recovery): typical 0.5-2% loss × 30% = 0.15-0.6% per loss. At literature-validated win rate 65-72% (Connors RSI(2) documented win rate): EV = 0.68 × 0.5% − 0.32 × 0.4% = 0.34% − 0.13% = +0.21% per trade NET, comfortably above 0.15% futures viability floor. (6) AVOIDS ALL SYSTEM-WIDE FAILURE PATTERNS: NOT breakout (system-wide moratorium); NOT drawdown accumulation (avoids buy-and-hold disguise infrastructure issue); NOT cross-sectional momentum/reversal (single asset); NOT pair MR (single instrument); NOT funding/premium/OI/skewness (different signal class entirely); NOT cross-venue. (7) HOLDOUT-FAVORABLE: RSI(2) oversold mean-reversion has DOCUMENTED edge in chop/range-bound regimes — exactly the 2024-2026 regime. Unlike breakout strategies which decay in chop, RSI(2) MR INTENSIFIES in chop because momentum extremes mean-revert more reliably when there's no sustained trend. The factory's 'holdout is the strongest predictor' insight WORKS FOR this strategy.

Hypotheses

Iteration 2 fixes the Layer-2 (synthetic) failure 'TypeError: _rsi() takes 2 positional arguments but 3 were given'. Root cause: _rsi was declared @staticmethod, but the Layer-2 synthetic proxy rebinds strategy helper methods and invokes them as self-receiving bound methods, so the 2-arg staticmethod received 3 args. The minimal fix converts _rsi from a staticmethod to an instance method (add self, drop @staticmethod) -- the only change to the file. The call site already used self._rsi(closes, self._rsi_period), so it works unchanged, and all signal logic (RSI computation, 200-bar bull-regime gate, RSI-recovery / 12-bar time-cap exits, 30% capital-relative sizing) is byte-identical, preserving every Layer-1 check that already passed. Leverage stays 1.0 (referenced nowhere as a multiplier, so no unused-leverage gate). This matches the same staticmethod-proxy gotcha pattern seen and fixed in the sibling skewness/EMA helpers.

Hypotheses

Connors RSI(2) oversold MR on BTC 4H has no fee-surviving edge: Sharpe -0.46, profit_factor 0.95, expectancy -$8.45/trade, and avg_trade_return is NEGATIVE — below trading costs, which is the framework's explicit abandon condition (no parameter change can fix an edge below fees). Fees dominate the result (commission_pct_of_gross 19.84%): the RSI>50 exit holds only ~10h on average, so each of the 846 trades captures a move too small to clear the 0.10% round-trip, and the picking-pennies asymmetry (64.5% win rate but avg_loss $497 vs avg_win $260, skew -2.06) makes net expectancy negative. The strategy is negative in 5 of 7 years; only 2024 (+7%) is positive, so optimizing a negative-expectancy base would only curve-fit that one year. This is the prescribed 4H refresh of the Larry Connors mechanism class — and it confirms the class is dead on crypto majors at 4H just as it was at daily: the reversals are too small to survive fees regardless of timeframe. FAILURE PATTERN: Connors RSI(2) / short-term oversold MR on a crypto major (BTC) produces a respectable win rate but negative per-trade expectancy because the fast RSI-recovery exit captures sub-fee moves — fees consume ~20% of gross and the avg_loss/avg_win asymmetry pushes net below zero. A high win rate with avg_trade_return below the fee floor is not an edge; the Connors mean-reversion class does not survive 0.10% round-trip costs on crypto majors at either daily or 4H frequency.

Implementation

Long-only Connors RSI(2) oversold mean-reversion on BTCUSDT.BINANCE perpetual futures, 4H bars, OHLCV-only, with a 200-bar bull-regime filter. Enters long when RSI(rsi_period) falls below the oversold_threshold AND price is above the 200-bar SMA; exits when RSI recovers above 50 or after a 12-bar (~2 day) hard time cap. No stop-loss or tunable exit; risk bounded by the bull filter, time cap, and 30% sizing. Three tunable parameters: rsi_period, oversold_threshold, position_pct.

Verification Results

Verification failed (Layer 2 — synthetic scenarios): Parameters used: ['rsi_period', 'min_notional', 'position_pct', 'oversold_threshold'] Check that __init__ sets all attributes from self.parameters.get(). - steady_uptrend: TypeError: BtcConnorsRsi2OversoldBullRegimeLong._rsi() takes 2 positional arguments but 3 were given (bar timestamp: 1735701600000) - steady_downtrend: TypeError: BtcConnorsRsi2OversoldBullRegimeLong._rsi() takes 2 positional arguments but 3 were given (bar timestamp: 1735701600000) - flat_ranging: TypeError: BtcConnorsRsi2OversoldBullRegimeLong._rsi() takes 2 positional arguments but 3 were given (bar timestamp: 1735701600000) - volatility_spike: TypeError: BtcConnorsRsi2OversoldBullRegimeLong._rsi() takes 2 positional arguments but 3 were given (bar timestamp: 1735701600000) - zero_volume: TypeError: BtcConnorsRsi2OversoldBullRegimeLong._rsi() takes 2 positional arguments but 3 were given (bar timestamp: 1735701600000) - price_gap: TypeError: BtcConnorsRsi2OversoldBullRegimeLong._rsi() takes 2 positional arguments but 3 were given (bar timestamp: 1735701600000)

Backtest Review

Clean, correct implementation; signal fires plenty (846 trades) — not a coding/no-trade bug

Backtest Review

Directly implements the prescribed Connors 4H refresh, so it's a clean test of that hypothesis

Backtest Review

No fee-surviving edge: Sharpe -0.46, PF 0.95, expectancy -$8.45/trade, avg_trade_return NEGATIVE — below trading costs (the framework's hard abandon line)

Backtest Review

Fees dominate: commission_pct_of_gross 19.84%; ~10h avg hold means each trade captures a tiny move that 0.10% RT erases

Backtest Review

Picking-pennies asymmetry: 64.5% win rate but avg_loss $497 vs avg_win $260 (2x), return_skew -2.06, tail_ratio 0.73

Backtest Review

Negative in 5 of 7 years (2021/2022/2023/2025 all negative); only 2024 positive — flat-to-losing across regimes

Backtest Review

Degenerate capacity ($478) and impact (1446%) confirm the average trade barely moves

Outcome Summary

BtcConnorsRsi2OversoldBullRegimeLong directly implemented the analyst's prescribed 4H refresh of the Larry Connors mechanism, using the original RSI(2) oversold signal with a 200-bar bull-regime filter and no stop-loss to test whether faster bars would revive the class. The implementation was clean and the signal fired 846 times with a textbook 64.5% win rate, but average trade return was negative: fees consumed nearly 20% of gross, the ~10h exit captured sub-fee moves, and a 2x avg-loss/avg-win asymmetry pushed expectancy to -$8.45/trade with losses in 5 of 7 years. Because per-trade return sat below the fee floor — the framework's hard abandon condition — no tuning could help. The analyst abandoned it at the backtest-review gate, concluding the Connors mean-reversion class does not survive round-trip costs on crypto majors at 4H any more than it did at daily.

Outcome Summary

A high win rate with average trade return below the fee floor is not an edge — the Connors RSI(2) / short-term oversold mean-reversion class captures reversals too small to clear 0.10% round-trip costs on crypto majors at either daily or 4H frequency, so the prescribed timeframe refresh confirmed the class is dead rather than reviving it.

Outcome Summary

The analyst abandoned it at the backtest-review gate before optimization because the average trade return was negative — below trading costs, the framework's explicit hard abandon line that no parameter change can fix: the ~10h RSI-recovery exit captures sub-fee moves so the 0.10% round-trip erases each trade, and the picking-pennies asymmetry (high win rate but 2x avg loss) pushes net expectancy below zero.

Outcome Summary

A long-only, OHLCV-only short-term mean-reversion strategy on BTCUSDT 4H futures implementing the classic Larry Connors RSI(2) oversold signal — entering long when RSI(2) dropped below 5 (deeply oversold) while price held above its 200-bar SMA (bull regime), exiting when RSI recovered above 50 or after a 12-bar (~2 day) time cap, with 3 parameters and deliberately no stop-loss, as the analyst-prescribed 4H refresh of the Connors mechanism class.

Outcome Summary

The signal fired plenty (846 long trades) and posted the documented Connors-style 64.5% win rate, but it had no fee-surviving edge: a flat +1.8% total return (CAGR -1.17%), Sharpe -0.46, profit factor 0.95, per-trade expectancy -$8.45, with avg loss ($497) twice avg win ($260), return skew -2.06, commission at 19.84% of gross, and negative returns in 5 of 7 years.
Strategy report

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