LtcBchForkCointegrationPairStatArbLS
Hypotheses
LTC-BCH Bitcoin-Fork Cointegration Pair Stat-Arb (Market-Neutral Long-Short, Binance USD-M Futures, 4H, ADF/Hurst Stationarity Gate + De-Cointegration Stop, Pure OHLCV)
Hypotheses
A MARKET-NEUTRAL, two-leg statistical-arbitrage pair trade on LTCUSDT.BINANCE and BCHUSDT.BINANCE USD-M perpetual futures (4H bars) whose CORE MECHANISM is a rolling STATIONARITY GATE: it fades the LTC/BCH log-spread ONLY when a rolling statistical test confirms the spread is CURRENTLY mean-reverting (cointegrated), and stands aside the instant it is not. It sits squarely inside the analyst's explicit carve-out from the otherwise-dead reversion family -- 'relative-value must be on a GENUINELY cointegrated relationship; sector analogy does not guarantee a stationary ratio' -- and targets the STRONGEST structural cointegration candidate in crypto: two BITCOIN FORKS. LTC (2011, Bitcoin's 'digital silver') and BCH (2017, a direct Bitcoin hard fork) share Bitcoin's fixed-supply monetary design, PoW mining economics, and store-of-value/digital-cash narrative, giving their spread a genuine structural tether -- historically among the most cointegrated crypto pairs -- unlike two independent L1s (SOL/AVAX) that may co-trend without a stationary spread. CRITICAL DISTINCTION from every dead naive ratio-MR (ETH/BTC -62%, cross-sectional reversal -94%, all fades): those assumed reversion from analogy and faded NON-STATIONARY spreads that trend; the reversion-is-dead lesson applies to non-stationary spreads. This strategy NEVER assumes cointegration -- it VERIFIES it every bar (rolling ADF p-value on the spread, or a Hurst-exponent < 0.5 / variance-ratio proxy if statsmodels is unavailable) and only trades the stationary windows. EVERY design choice respects this session's binding lessons: (1) FUTURES Binance, >=12-month 4H data for a real walk-forward (NOT data-starved HL, which killed the prior SOL/AVAX-15m attempt at ~2 months). (2) PURE OHLCV -- spread, hedge ratio, z-score, stationarity tests all price-derived; immune to the funding-data-end-2024, supplementary-stream (0-for-7), and HL-data kills. (3) STATIONARITY GATE as the core. (4) DE-COINTEGRATION STOP for the fade-a-trending-spread tail. (5) DYNAMIC hedge ratio for true beta-neutrality. (6) Fills the UNDER-target pairs/multi scope and market-neutral direction; NOT a momentum basket (explicitly closed by the analyst), NOT supplementary, NOT spot. It is a substantively better-cointegrated pair than the pending SOL/AVAX instance, not a swap. Intentionally minimal: 3 tunables (lookback, entry_z, stationarity_threshold).
Hypotheses
Iteration-2 fix is minimal and targeted at the Layer-2 synthetic failure: `_hurst` was a `@staticmethod` with signature `(spread)`, but the verification proxy invoked `self._hurst(spread)` in a way that supplied two positional args ('takes 1 positional argument but 2 were given'). Converting `_hurst` to a regular instance method (`def _hurst(self, spread)`) makes the call arity correct — `self._hurst(spread)` now binds `self` plus `spread`. No signal logic, thresholds, sizing, imports, or class structure were changed, so the previously-passing Layer-1 checks remain green and the strategy's stationarity-gated pair-arb mechanism is untouched.
Hypotheses
Pre-optimization gate: the base is a decisively losing, negative-Sharpe strategy whose 3 tunables cannot rescue it. Sharpe -0.369 (CI [-0.96, 0.64]), Sortino -0.278, PSR 0.15, profit_factor 0.893 (<1), negative per-trade expectancy (-115.5), total_return -59.2%, CAGR -11.2%. Critically, the distinguishing mechanism is empirically refuted: the whole thesis was that the rolling Hurst stationarity gate plus de-cointegration and z-blowout stops eliminate the 'fade-a-trending-spread' tail, yet the book took a -53.16% single-day loss on 2023-06-30 (return_skew -19.2, kurtosis 535) that drove 2023 to -60.4% and a 74.5% max drawdown — the stops did not contain the very tail they were built for. 'Strongest structural cointegration candidate (two Bitcoin forks)' is false in the data: the LTC/BCH log-spread de-cointegrates violently, exactly like the sibling SOL/AVAX pair. On top of that, costs dominate (commission alone is 292% of gross PnL, plus $8.3K impact, turnover 51.9). Optimizing lookback/entry_z/stationarity_threshold cannot make a non-stationary spread cointegrate nor turn a negative-Sharpe, negative-expectancy strategy positive — this is the recurring reversion-is-dead outcome on a spread that isn't genuinely stationary. Not worth 2 hours.
Implementation
Market-neutral LTC/BCH Bitcoin-fork cointegration pair stat-arb on Binance USD-M futures (4H). A rolling stationarity gate (Hurst exponent of the log-spread) is the core: it fades the beta-hedged LTC/BCH log-spread only when H <= stationarity_threshold (currently mean-reverting) and |z| >= entry_z, and exits on z-reversion to mean, a de-cointegration stop (Hurst rises above threshold + buffer), a |z| blow-out stop, or a time stop. Dynamic OLS hedge ratio gives beta-neutral leg sizing; pure OHLCV; leverage 1.0 with gross exposure hard-capped below 100%.
Verification Results
Verification failed (Layer 2 — synthetic scenarios):
Parameters used: ['exit_z', 'z_stop', 'entry_z', 'leg_frac', 'lookback', 'max_gross', 'min_notional', 'time_stop_bars', 'de_coint_buffer', 'bch_size_precision', 'ltc_size_precision', 'stationarity_threshold']
Check that __init__ sets all attributes from self.parameters.get().
- steady_uptrend: TypeError: LtcBchForkCointegrationPairStatArbLS._hurst() takes 1 positional argument but 2 were given (bar timestamp: 1735696800000)
- steady_downtrend: TypeError: LtcBchForkCointegrationPairStatArbLS._hurst() takes 1 positional argument but 2 were given (bar timestamp: 1735696800000)
- flat_ranging: TypeError: LtcBchForkCointegrationPairStatArbLS._hurst() takes 1 positional argument but 2 were given (bar timestamp: 1735698120000)
- volatility_spike: TypeError: LtcBchForkCointegrationPairStatArbLS._hurst() takes 1 positional argument but 2 were given (bar timestamp: 1735696800000)
- zero_volume: TypeError: LtcBchForkCointegrationPairStatArbLS._hurst() takes 1 positional argument but 2 were given (bar timestamp: 1735696800000)
- price_gap: TypeError: LtcBchForkCointegrationPairStatArbLS._hurst() takes 1 positional argument but 2 were given (bar timestamp: 1735696800000)
Backtest Review
Mechanism implements the hypothesis: 230 long / 230 short, genuinely market-neutral (beta -0.036, correlation -0.11), beta-weighted legs
Backtest Review
Adequate trade sample (460 trades over 5+ years), pure OHLCV, engine-safe with balanced legs
Backtest Review
benchmark_meaningful=false correctly flags market-neutral; judged on absolute metrics
Backtest Review
Negative edge: Sharpe -0.369 (CI [-0.96, 0.64]), Sortino -0.278, PSR 0.15, profit_factor 0.893 (<1), avg_trade_return -115.5 (negative expectancy), total_return -59.2%
Backtest Review
Core premise refuted: a -53.16% single-day loss (2023-06-30) drove 2023 to -60.4% (skew -19.2, kurtosis 535) — the Hurst gate + de-cointegration/z-blowout stops FAILED to contain the fade-a-trending-spread tail they were designed to eliminate; max_drawdown 74.5%
Backtest Review
Costs dominate: commission_pct_of_gross 2.92 (292% of gross) plus $8.3K impact, turnover 51.9
Backtest Review
LTC/BCH is not reliably cointegrated in practice — same non-stationary-spread failure as the sibling SOL/AVAX pair
Outcome Summary
Framed as the analyst's explicit carve-out from the dead reversion family, this strategy bet that two Bitcoin forks (LTC and BCH) form the strongest cointegration candidate in crypto and fenced the trade behind a rolling Hurst stationarity gate with de-cointegration and z-blowout stops. Across 460 market-neutral trades over 5+ years it instead posted a -0.369 Sharpe, -59.2% total return, and a 74.5% drawdown, with a catastrophic -53.16% single-day loss in June 2023 proving the stops did not contain the trending-spread tail they targeted. Costs compounded the failure, with commissions running 292% of gross PnL on turnover of 51.9. The analyst abandoned it at the pre-optimization gate after 2 iterations, concluding the pair simply isn't reliably cointegrated and no tunable could make a non-stationary spread revert.
Outcome Summary
A structural cointegration narrative (two Bitcoin forks) does not make a spread stationary in practice — the LTC/BCH log-spread de-cointegrates violently like the sibling SOL/AVAX pair, and a rolling stationarity gate cannot rescue a spread that isn't genuinely mean-reverting while high turnover lets costs dominate.
Outcome Summary
The analyst issued an 'abandon' verdict at the pre-optimization backtest-review gate: the strategy had negative edge and its distinguishing mechanism was empirically refuted, since the Hurst gate and de-cointegration/z-blowout stops failed to contain the exact fade-a-trending-spread tail they were built for. Optimization and all later stages were never reached.
Outcome Summary
A market-neutral LTC/BCH Bitcoin-fork pair stat-arb on Binance USD-M 4H futures that fades the log-spread only when a rolling Hurst stationarity gate confirms the spread is currently mean-reverting, with a dynamic hedge ratio plus de-cointegration and z-blowout stops to contain trending-spread tails.
Outcome Summary
Over 5+ years (2020-01-09 to 2026-06-26) it ran 460 trades (230 long / 230 short), was genuinely market-neutral (beta -0.036), but lost decisively: Sharpe -0.369 (CI -0.96 to 0.64), profit factor 0.893, avg-trade expectancy -115.5, total return -59.2%, CAGR -11.2%, and a 74.5% max drawdown. It took a -53.16% single-day loss on 2023-06-30 (skew -19.2, kurtosis 535), and commissions alone were 292% of gross PnL.
Backtest and paper results are hypothetical. Trading involves risk of loss.