Skip to content

View translation

BtcEthLeadLagMomentumTransferLS

Hypotheses

BTC→ETH Lead-Lag Momentum Transfer — Long-Short, Trade ETH in the Direction of a LARGE Completed BTC Daily Move (Threshold-Gated for Fees), 1–2 Day Catch-Up Hold (Multi-Instrument, 2-Parameter)

Hypotheses

A LONG-SHORT, TWO-instrument directional strategy that trades ETHUSDT.BINANCE (USD-M perpetual, the follower) in the direction of a LARGE completed daily move in BTCUSDT.BINANCE (the leader). It is a deliberate SCOPE + MECHANISM change away from everything this session has falsified: single-name pure-price TREND (dead across BTC/ETH/SOL/AVAX/ADA/BNB/LTC/XRP/DOGE and macro/session variants), and it is NOT the dead families — NOT a cross-sectional RANK rotation (L52 — there is no ranking; it is a single directional lead→lag transfer between two fixed names), NOT a mean-reversion fade (L53 — it trades WITH BTC's move), NOT a squeeze breakout (L54 — the trigger is a large completed directional move, not a low-vol pop), NOT a market-neutral ratio (near-zero edge), NOT a NON-PRICE-feed gate (BTC price IS the signal, price-only — NOT L46), NOT options/COIN-M (L50/L51). The premise is the well-documented crypto MARKET STRUCTURE where BTC leads the complex: on days BTC makes a decisive directional move, ETH (and the broader alt complex) tends to CONTINUE catching up over the next 1–2 days as capital rotates from BTC into alts (or de-risks out of alts on downside). The edge is monetized on the FOLLOWER because the lagged catch-up is the un-arbitraged part, and only LARGE BTC moves are traded so the follow-through clears fees. It fills three under-represented buckets at once: multi-instrument scope (17.9%), long-short direction (13.6% vs 86% long-only), and adds a genuinely different return source. Low DOF (2 params: BTC move threshold, hold length) → low deflated-Sharpe hurdle, the one structural way to clear the gate that killed the 3-param trend variants. Risk profile: ~1.5% equity risk/trade via ATR stop on the ETH leg; fixed-fractional sizing capped at 25% of equity*leverage; 2x leverage cap (reads self.config.leverage). Requires both BTC and ETH daily bars (BTC as signal source via extra_instruments/extra_bar_types, ETH as the traded instrument).

Hypotheses

Implements the hypothesis exactly: a single directional lead->lag transfer between two fixed names (no ranking, so not L52), trading WITH the leader's completed large move (not a fade, not a compression pop), price-only, long-short, 2 tunables with clamps mirrored verbatim in _param_bounds. The multi-instrument plumbing follows the lesson that burned earlier ports: extra_instruments carries BTCUSDT.BINANCE paired POSITIONALLY with its daily bar type, and because the leader is the SAME timeframe as the traded instrument the base sync barrier applies -- reinforced by my own exact-timestamp check. Leverage 2.0 is consumed in the notional cap. Layers 1-3 verified locally: static clean, all six synthetic scenarios pass, and the real 365-day sandbox runs 34 trades (17 entries) with no drops. THE EFFECT IS REAL BUT ASYMMETRIC AND MODEST, and the Analyst should weigh both halves. Conditional statistics over 2020-2026 daily data: after a BTC day with |z| >= 2, ETH's next-2-day return in the move's direction averages +0.66% versus an unconditional 2-day mean of +0.39% -- but split by side, the LONG leg (BTC up big) averages +1.34% over 2 days (n=80) while the SHORT leg (BTC down big) averages -0.11% as short PnL (n=70). In other words the catch-up is a genuine upside rotation effect; ETH does NOT reliably keep falling after BTC crashes, so the symmetric long-short mandate dilutes an edge that lives almost entirely on the long side. Replaying THIS EXACT CLASS with 0.10% round-trip fees: 129 trades (~20/yr), avg +0.564% per trade net (3.8x the 0.15% viability floor), profit factor 1.30, win rate 48%, kurtosis 7.0 and top-3 trades only 21% of gross profit, positive in 5 of 7 calendar years (2020 -1.13%, 2026 YTD -0.49%). The recent window is the weak spot: trailing 365 days is -0.376%/trade in replay, and the sandbox year returns +0.61% overall (Sharpe 0.21, PF 1.19, max DD 1.3%) with a negative average trade -- i.e. flat-to-slightly-negative recently. Parameter sensitivity: btc_move_z has an interior optimum (1.5 -> +0.18%, 1.75 -> +0.24%, 2.0 -> +0.56%, 2.5 -> +0.54%, 3.0 -> -0.38%), which is reassuring, but hold_days is monotone (1 -> +0.18%, 2 -> +0.56%, 3 -> +1.22% with PF 1.52) and the best value sits at the upper bound -- I kept the hypothesis's stated 1-2 day catch-up (default 2) rather than pushing to the edge, and flag that a 3-day hold nearly doubles per-trade capture and deserves a look if the effect is pursued. If the Research Lead wants the strongest version of this idea, the honest construction is LONG-ONLY on BTC up-days (or long ETH / short BTC to isolate the rotation), not the symmetric long-short.

Hypotheses

The BTC->ETH lead-lag catch-up edge, as measured, is not statistically distinguishable from zero. Sharpe is only 0.426 with a bootstrap CI-low of -0.2165 (the CI straddles zero), so the edge fails significance even at the single-config level before any multiple-testing penalty. The sample cannot support establishing it: just 129 trades over 6.6 years (~20/yr) with return_kurtosis 27.6, meaning the Sharpe is outlier-driven (a handful of days — 2021-01-04 +2.4%, 2025-05-10 +2.0%, 2023-01-14 +1.7% — carry it) and the total economic edge is tiny (+10.8% over 6.6y, ~1.6%/yr, information_ratio -0.73 vs the basket). Optimization cannot rescue this: raising btc_move_z thins the already-sparse 129-trade sample further into greater outlier dependence, and a 2-param sweep over a fat-tailed, zero-straddling sample would best-of-N fit and fail post-optimization deflated Sharpe. The genuinely good parts — a real orthogonal sleeve (beta 0.004, correlation 0.11, unlike the calendar attempts), 2% drawdown, PF 1.51, avg_trade 0.66% above fees, low DOF — make this a more thoughtful idea than the losing calendar sleeves, but a lower deflated-Sharpe bar only helps a positive, distinguishable base edge, and here the CI already includes zero on a thin fat-tailed sample. Consistent with abandoning the BTC macro-daily (Sharpe 0.55, CI-low -0.065, 103 trades); this is weaker. Abandon at BACKTEST_REVIEW rather than spend the optimization budget.

Implementation

Long-short two-instrument lead-lag strategy on DAILY bars: the SIGNAL is BTCUSDT.BINANCE (leader, consumed via on_extra_bar) and the RISK is taken on ETHUSDT.BINANCE (follower, the traded instrument). calculate_signal returns btc_z = BTC's completed daily log return divided by its 30-day daily sigma -- continuous, varying, sign = the direction the complex just moved. ENTRY when |btc_z| >= 2.0: buy ETH after a decisive BTC up-day, short ETH after a decisive down-day, harvesting the 1-2 day catch-up. Ordinary BTC days are not traded. EXIT after hold_days (2) bars or on a 3x-ATR stop against the ETH entry. Because BTC is the same timeframe as ETH, the base class's cross-leg barrier defers the signal until the contemporaneous BTC bar arrives, and calculate_signal additionally refuses to trade unless the stored BTC bar carries the ETH bar's exact timestamp, so a stale leader can never manufacture a signal. Sizing risks ~1.5% of equity at the ATR stop, capped at 25% of equity x 2x leverage. Exactly 2 tunables: btc_move_z and hold_days.

Verification Results

Analyst/Research Lead: consider reconceiving as long-only (BTC up-days only) or a long-ETH/short-BTC rotation isolation; the symmetric long-short is structurally diluted.

Verification Results

Asymmetric edge — the symmetric long-short mandate dilutes an effect that lives almost entirely on the long side (an analyst call, not a code defect). The developer's conditional stats show the LONG leg (BTC decisive up-day -> ETH catch-up) averages +1.34% over 2 days (n=80) while the SHORT leg (BTC decisive down-day) averages -0.11% (n=70) — ETH does not reliably keep falling after BTC crashes. The code correctly implements the symmetric hypothesis, but the honest strongest construction (per the developer) is LONG-ONLY on BTC up-days, or long-ETH/short-BTC to isolate the rotation.

Verification Results

Backtest_review/analyst: weight the recent regime heavily (OOS windows and holdout sit in it and it is flat-to-negative); expect a near-empty 15-day holdout; note the optimizer will likely select hold_days=3 (edge of the bound).

Verification Results

Recent-window weakness plus marginal measurability — the OOS gates live where this is weakest. Sandbox (trailing year): total_return +0.61% but avg_trade_return_pct is NEGATIVE (-0.347%), Sharpe 0.21, PF 1.19; the developer's trailing-365-day replay is -0.376%/trade; the full-sample edge (+0.564%/trade, PF 1.30, positive in 5/7 years) is carried by earlier regimes. Frequency ~20/yr (129 total over 6.6 years, 17 sandbox entries) — just above the ~100 floor, so the 15-day holdout is sparse (~0.8 expected trades) and OOS windows thin. hold_days is monotone to the upper bound (1->+0.18%, 2->+0.56%, 3->+1.22%), so the optimizer will push to 3; the developer kept the stated 2 and disclosed this.

Verification Results

For live deployment, reconstruct _side/_entry_px/_entry_atr from cache.positions_open() rather than the btc_z sign.

Verification Results

should_exit() infers _side from the live btc_z sign on restart (_side==0) and re-seeds _entry_px/_entry_atr. Unreachable in backtest; only a live mid-position crash-restart risk.

Backtest Review

Genuinely novel mechanism (multi-instrument BTC->ETH lead-lag) and CLEANLY decorrelated: beta 0.004, benchmark_correlation 0.11 — a real orthogonal sleeve, unlike the calendar attempts

Backtest Review

Low-DOF (2 params), tiny max_drawdown 1.99%, PF 1.51, avg_trade_return_pct 0.66% above fees, ample capacity ($141M)

Backtest Review

Sharpe 0.426 with CI-low -0.2165 — bootstrap CI STRADDLES ZERO; not significant even at single-config level

Backtest Review

Only 129 trades over 6.6y with return_kurtosis 27.6 — outlier-driven, statistically unmeasured; a few big days carry the result

Backtest Review

Tiny economic edge: total_return +10.8% over 6.6y (~1.6%/yr), information_ratio -0.73 vs basket

Backtest Review

Optimization can't help: raising the threshold thins the 129-trade sample further, and a 2-param sweep over a fat-tailed sample with a zero-straddling CI would best-of-N fit and fail deflated Sharpe

Outcome Summary

BtcEthLeadLagMomentumTransferLS changed scope and mechanism to escape the falsified single-name trend space, trading ETH's 1-2 day catch-up after a large completed BTC daily move — a genuinely novel, low-DOF, orthogonal idea. It delivered the cleanest decorrelation of the session's alternatives (beta 0.004, 2% drawdown, PF 1.51, above-fee per trade), but almost no edge: +10.8% over 6.6 years, Sharpe 0.426 with a CI straddling zero, and just 129 fat-tailed trades (kurtosis 27.6) where a handful of days carry the result. The analyst abandoned it at backtest review as statistically indistinguishable from zero and unrescuable by optimizing 2 parameters over so thin and outlier-driven a sample — more thoughtful than the losing calendar sleeves, but weaker than the already-abandoned BTC macro-daily. It never reached optimization, analysis, or risk review.

Outcome Summary

A genuinely orthogonal, low-drawdown sleeve is still not tradeable when its edge is statistically indistinguishable from zero on a thin, outlier-driven sample — a low deflated-Sharpe bar only helps a positive, distinguishable base edge, and ~20 trades/year with kurtosis 27.6 and a Sharpe CI including zero cannot establish one.

Outcome Summary

The analyst abandoned it at backtest review: the lead-lag catch-up edge as measured is not statistically distinguishable from zero (Sharpe 0.426, CI straddling zero even before multiple-testing), the 129-trade fat-tailed sample can't establish it, and the economic edge is tiny. Optimization couldn't help — raising the threshold thins the sparse sample further into outlier dependence, and a 2-param sweep over a zero-straddling fat-tailed sample would best-of-N fit and fail deflated Sharpe.

Outcome Summary

A long-short, two-instrument lead-lag strategy (2 parameters) that traded ETHUSDT.BINANCE in the direction of a large completed daily BTC move — entering ETH on the side of BTC's move when the BTC daily return exceeded a z-score threshold, holding 1-2 days for the catch-up, exiting on hold-length or an ATR stop — a low-DOF, orthogonal follower-side bet on BTC leading the crypto complex.

Outcome Summary

The backtest (ETHUSDT + BTCUSDT 1D, 2409 data days) returned only +10.8% over 129 trades (~1.6%/yr) with profit factor 1.51, a tiny 1.99% max drawdown, and genuine decorrelation (beta 0.004, correlation 0.11). But Sharpe was only 0.426 with a CI-low of -0.217 (straddling zero), return kurtosis was 27.6 (a few days carry the result), and information ratio was -0.73 versus the basket.
Strategy report

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