Skip to content

View translation

BtcEthFiftyFiftyThresholdRebalancingLongSpot

Hypotheses

BTC-ETH 50/50 Threshold Rebalancing Long-Only on Binance Spot (Diversification Return / Volatility Harvesting, OHLCV-Only, 3-Parameter)

Hypotheses

Multi-instrument long-only PORTFOLIO REBALANCING strategy on BTCUSDT.BINANCE_SPOT + ETHUSDT.BINANCE_SPOT using daily bars. Refined from user-submitted seed: 'write a rebalance strategy for btc and eth.' This is a structural-portfolio mechanism, NOT a spread mean-reversion bet (which has been falsified 3+ times this session). The strategy maintains a 50/50 dollar-weight portfolio of BTC and ETH spot positions; whenever one asset's portfolio weight drifts beyond a ±5% band (i.e., either rises above 55% or falls below 45%), execute a rebalancing trade that returns both assets to 50/50. A minimum 14-day cooldown between rebalances prevents over-trading during high-volatility periods. The edge mechanism is the well-documented 'diversification return' / 'volatility harvesting' premium (Booth & Fama 1992, Bouchey-Nemtchinov-Paulsen-Stein 2012, Shannon's-Demon information-theoretic basis): when two assets have similar long-term drift but distinct short-term volatility paths, periodic rebalancing systematically takes from the recent winner and adds to the recent loser, harvesting a positive return geometrically that's invisible at the per-trade level. BTC and ETH are the ideal pair for this mechanism because: (a) they share similar structural long-term drift (both are major-cap crypto with positive secular growth), (b) they have meaningfully different short-term volatility (ETH typically ~1.3-1.5× BTC vol on daily returns), (c) their pairwise correlation is ~0.75-0.85 (high but not 1.0 — exactly the range where diversification return is meaningful), (d) both have 8+ years of continuous Binance Spot data for robust walk-forward, (e) both have massive spot liquidity (~$2B BTC, ~$500M ETH daily Binance spot volume) — zero liquidity-floor concerns. CRITICAL DISTINCTION FROM PRIOR FAILURES: this is NOT BTC-ETH spread mean-reversion (which has been falsified 3+ times). The strategy NEVER shorts either asset, NEVER computes a z-score, NEVER bets on convergence within a time window. It simply maintains constant exposure to a 2-asset portfolio. The 'buy low, sell high' emerges mechanically as a side effect of the band-based rebalancing — not as an active directional bet. The Booth & Fama (1992) result formally proves that this mechanism extracts a positive return even when the two assets have IDENTICAL expected returns (which is precisely why prior spread MR attempts failed — there's no convergence force, but there IS a rebalancing premium). Pure OHLCV — NO supplementary data dependency. 3 parameters total: target_btc_weight=0.50, rebalance_threshold=0.05, cooldown_days=14. Long-only by SPOT constraint.

Hypotheses

Iteration 5 fix: the Layer-3 backtest ran on a single-instrument default (BTCUSD.HYPERLIQUID-1-MINUTE) with no ETH leg, so self._eth_id was effectively absent and _rebalance() returned immediately every bar -> zero trades (bars_seen 5140 but no orders). The rebalancing logic is correct; the failure was purely the config pointing at the wrong venue/timeframe and missing the ETH leg. This config now correctly declares the primary BTCUSDT.BINANCE_SPOT-1-DAY leg plus the ETHUSDT.BINANCE_SPOT-1-DAY extra leg, matching the base template's same-timeframe alignment barrier so calculate_signal fires on aligned daily bar-groups. On the first aligned bar the INIT branch deploys ~98% of the $100K USDT balance 50/50 into BTC and ETH (two immediate buys), and subsequent band breaches produce trim+redeploy rebalances over the multi-year daily history. Long-only by spot CASH constraint, leverage 1.0, 3 core params (target_btc_weight, rebalance_threshold, cooldown_days). Code is unchanged from previous_code (Layers 1-2 already passed); only the config leg and venue were corrected.

Hypotheses

Closet-index / no-differentiated-edge — not worth 2 hours of optimization. A 50/50 BTC-ETH threshold rebalance is by construction long-beta exposure to the equal-weight basket (beta 0.91, benchmark_correlation 0.92); the diversification-return overlay contributes only information_ratio 0.0802 and alpha 0.0504 vs the correct benchmark while inheriting the basket's full 85.97% max drawdown. The 3 rebalancing parameters (target_btc_weight, rebalance_threshold, cooldown_days) can only reshape the overlay — they cannot reduce the 86% drawdown, cannot lower the 0.92 correlation to the benchmark, and cannot manufacture a promotable, differentiated edge from what is structurally a crypto index. The academic premium is real but far too small for a highly-correlated (~0.8) two-asset majors pair to clear differentiation/drawdown promotion criteria. (Secondary: CASH-account daily-return tracking is degenerate — Sharpe/Sortino/deflated unreliable — so the optimizer's Sharpe-based walk-forward objective would also be broken; but the binding reason is structural, verified directly from the reconstructed equity curve which tracks the basket with an 86% peak-to-trough.)

Implementation

Long-only 50/50 BTC+ETH threshold-rebalancing portfolio on Binance Spot, daily bars. Holds a constant dollar-weight 50/50 book of BTCUSDT and ETHUSDT spot; when either leg's weight of the invested book drifts beyond a +-5% band (55%/45%), it trims the overweight leg back to target and redeploys the freed cash into the underweight leg, subject to a 14-day cooldown. Harvests the diversification-return / volatility premium (Booth & Fama 1992); never shorts, never computes a z-score, never bets on convergence. Pure OHLCV, no supplementary data.

Verification Results

Verification failed (Layer 3 — sandbox backtest): No trades produced Bar type used: BTCUSD.HYPERLIQUID-1-MINUTE-LAST-EXTERNAL, Bars processed: 5159 Diagnostics: should_enter() returned a side 0 times over 5140 evaluated bars -> your ENTRY CONDITION never triggered. Loosen the entry logic / thresholds. Ensure your strategy produces trades with the given data and parameters.

Backtest Review

Strategy functions as designed: establishes 50/50 book, rebalances on band breach with cooldown, ~204 fills over 9 years, no shorting, pure OHLCV — cleanly implements the stated diversification-return mechanism (not spread MR).

Backtest Review

Correct benchmark selected (equal_weight_basket, benchmark_meaningful=true), so the edge is being judged against the right baseline.

Backtest Review

Massive-liquidity majors, capacity ~$110B, zero data/liquidity concerns.

Backtest Review

Closet index: beta 0.91 and benchmark_correlation 0.92 to the equal-weight basket — the result is ~92% just holding 50/50 BTC+ETH, not an independent edge.

Backtest Review

Rebalancing overlay adds negligible risk-adjusted value: information_ratio 0.0802 (want >0.5) and alpha 0.0504 vs the basket — the active return is noise-dominated.

Backtest Review

max_drawdown 85.97% — full crypto beta drawdown inherited; fails any reasonable promotion drawdown criterion regardless of tuning.

Backtest Review

Only 3 rebalancing parameters, none of which can escape the closet-index structure or reduce the 86% drawdown — no viable optimization path to a differentiated, promotable edge.

Backtest Review

Risk metrics (Sharpe/Sortino/deflated) are unreliable here (data_days=1, single daily return from CASH-account equity collapse), so a Sharpe-driven walk-forward/holdout would optimize on a broken objective.

Analysis

The backtest is uninterpretable — do NOT proceed to optimization until the equity curve records. Over 3235 bars (2017-2026) the engine produced only ONE daily return (data_days=1, metrics_reliable=false), booking the whole 9-year P&L as a single +1237% 'day'. Root cause is the one your own docstring names: on a Binance Spot CASH account, get_account_equity() reports only the USDT balance, which drops to ~0 once you deploy into BTC+ETH, so the engine's account-equity series (which drives daily_returns and every metric) reads ~0 for the entire run instead of the mark-to-market portfolio value. Evidence: avg_position_pct=576% (impossible for long-only leverage-1 — the position/equity ratio blows up because equity is ~0), and total_trades=2 with a 3233-day holding period despite trades_count=204 (rebalances net-adjust two ever-open positions rather than registering round-trips). Fixes to try: (1) The single-asset ETH spot 4H strategy this session tracked a clean daily equity curve on BINANCE_SPOT, so the engine CAN mark spot equity — investigate why holding TWO spot assets with near-zero residual cash collapses the equity series; ensure the two BTC/ETH positions are marked-to-market into reported account equity every bar. (2) The simplest robust fix per the venue-routing guidance may be to run this on BINANCE futures (MARGIN account, leverage 1.0) where equity is marked-to-market and stays stable while still being long-only 50/50 — this removes the CASH-balance-goes-to-zero problem entirely. (3) Confirm rebalancing sells/buys are recorded as actual fills that produce a proper trade ledger and a >200-point daily return series. Re-run and verify data_days spans the full ~3000+ trading days, avg_position_pct is ~100% (not 576%), and Sharpe/drawdown are computed on the rebalanced portfolio before resubmitting for optimization.

Outcome Summary

Refined from the user seed 'write a rebalance strategy for btc and eth,' this strategy maintained a 50/50 spot BTC+ETH book and rebalanced on a ±5% band with a 14-day cooldown to capture the academically-documented diversification-return premium — deliberately avoiding the spread mean-reversion that had failed repeatedly. Across nine years it worked exactly as designed (~204 fills, no shorting, pure OHLCV) but proved to be a closet index: beta 0.91 and 0.92 correlation to the equal-weight basket, with the rebalancing overlay adding only 0.08 information ratio and 0.05 alpha while inheriting the basket's full 85.97% drawdown. Reaching iteration 5, the analyst abandoned it at the backtest-review gate, judging that its three parameters could reshape the overlay but never escape the crypto-index structure or the 86% drawdown, and noting the CASH-account equity tracking made the Sharpe-based objective unreliable anyway. The binding conclusion was structural — a small, real premium on two ~0.8-correlated majors simply cannot clear differentiation and drawdown promotion criteria.

Outcome Summary

A rebalancing overlay on two highly-correlated (~0.8) majors is structurally long-beta to the equal-weight basket; the real diversification-return premium is too small to overcome ~0.92 correlation and an ~86% inherited drawdown, and three overlay parameters cannot manufacture a differentiated, promotable edge.

Outcome Summary

It was abandoned at the pre-optimization backtest-review gate (verdict: abandon) as a closet index with no differentiated edge — failing drawdown, beta, information-ratio, and benchmark-correlation criteria — so optimization, analyst, and risk-review stages were never reached.

Outcome Summary

A long-only, spot BTC+ETH portfolio that maintains a 50/50 dollar weight and rebalances back to target whenever either asset drifts beyond a ±5% band (subject to a 14-day cooldown), aiming to harvest the diversification-return / volatility-harvesting premium rather than bet on spread mean-reversion.

Outcome Summary

Over ~9 years (2017-08 to 2026-06) it implemented the mechanism cleanly with ~204 fills, but behaved like a closet index: beta 0.91 and benchmark_correlation 0.92 to the equal-weight basket, with only information_ratio 0.0802 and alpha 0.0504 of active value, while inheriting an 85.97% max drawdown; headline risk metrics (Sharpe/Sortino) were flagged unreliable (data_days=1) due to CASH-account equity tracking.

Iteration History

BtcEthThresholdRebalanceLongSpot1D

Iteration History

BtcEthThresholdRebalanceLongFutures1D

Iteration History

CrossSectionalRelativeMomentumFourHourLongShort5MajorPerps
Strategy report

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