BtcEthSolCrossSectionalMomentumRotationLongShort
Hypotheses
BTC/ETH/SOL Cross-Sectional Momentum Rotation Long/Short (Long Top-Momentum, Short Bottom-Momentum, Daily, BINANCE USD-M, OHLCV-Only)
Hypotheses
A long/short, MULTI-INSTRUMENT (3-asset), single-venue, daily-cadence cross-sectional momentum rotation strategy on BTCUSDT.BINANCE + ETHUSDT.BINANCE + SOLUSDT.BINANCE. Implements the canonical CROSS-SECTIONAL MOMENTUM mechanism: every Monday, rank the 3 instruments by trailing 60-day return; go LONG the highest-momentum asset and SHORT the lowest-momentum asset, equal $ notional. Hold 1 week, rebalance. This DIRECTLY IMPLEMENTS the analyst's EXPLICIT RECOMMENDATION from the BtcCumulativeReturnThreshold failure post-mortem (verbatim): 'future TSMOM attempts should test... (c) cross-sectional ranking across multiple alts (the original TSMOM is a portfolio approach, not single-instrument).' UNTOUCHED MECHANISM CLASS in the 700-experiment portfolio: no prior strategy uses cross-sectional ranking. FOLLOWS THE VERIFICATION-SURVIVAL RECIPE confirmed by my prior BtcVolatilityRegimeConditional + EthBtcRatioMeanReversion both landing in pipeline: (1) OHLCV-ONLY (no supp_data → no developer pivot to sub-daily timeframes); (2) EXPLICIT daily bar types for ALL instruments; (3) SINGLE VENUE (BINANCE USD-M, the most-tested data source). ADDRESSES THREE UNDER-REPRESENTED QUOTA BUCKETS: (1) long_short direction (11.6% → ≥45% target; gap of ~33% — largest active gap); (2) multi-instrument scope (multi=9.4%, pairs=17.7%; total non-single=27.1% under target); (3) it's an alpha-MECHANISM that complements my EthBtcRatioMeanReversion (which is delta-neutral pair MR; this is cross-sectional momentum — different mechanism class, low correlation). EXPECTED VERIFICATION ROBUSTNESS: HIGH — both my prior OHLCV-only daily strategies landed; this adds a 3rd similar in structure. FIVE PARAMETERS — radically simpler than failed strategies. The rotation rule is parameter-free in form (always long-highest, short-lowest) — only thresholds and lookbacks have parameters.
Hypotheses
Iteration 3 fixes the root cause of the persistent runaway-gross failure (205% exposure, impossible -226%/day returns) that iteration-2's delta-sizing did not solve. Diagnosis: `delta = desired_qty - current_signed_qty` only nets to target on a NETTING venue if the cache read of the live position is flawless; any miss recomputes the delta against a zero/stale position and re-adds the full target notional every rebalance, so legs STACK — and using mark-to-market `get_account_equity()` for `leg_notional` inflated the target as winners' unrealized PnL grew, compounding the stack (the +705%/month signature). The fix abandons cache-delta sizing for the proven keep/open/close SET pattern: `self._held_side` bookkeeping (updated only by orders WE submit) decides, per leg, whether to CLOSE (held side != target, including the middle leg always driven to 0 and any side flip) or OPEN ONCE from flat at a FIXED base-equity notional; a leg already on the correct side is never touched. This makes gross structurally impossible to accumulate — at most one long + one short, each ~45% of a stable base equity, so gross ~90% and the book stays dollar-neutral bar-to-bar. Per-leg dollar notional and gross/equity are logged every rebalance as the feedback requested. Only __init__ helpers and _rebalance changed; the passing signal/ranking logic, config, venue, and Layer-1/2-clean imports are untouched. Futures venue is correct (the strategy shorts), leverage stays 1.0 and is unreferenced in sizing (no leverage_set_but_unused).
Hypotheses
failed deflated Sharpe: DSR=0.1873, expected-max=0.7664 over 225 trials — the selected optimized Sharpe (0.54) sits BELOW the best-of-N luck bar and is statistically indistinguishable from noise (is_significant=false, sharpe_ci_low=-0.1189 straddling 0, PBO=0.7116>0.5; probabilistic_sharpe 0.9828 vs DSR 0.1873 is the textbook PSR-vs-DSR selection-inflation trap). The walk-forward is is_overfitted=TRUE: avg IS 0.711 collapses to avg OOS -0.0298 with windows [-0.89, 0.87, -0.066], two of three negative. The holdout 'pass' is SPURIOUS — ratio=0 measured against a negative WF-OOS baseline (-0.0298), with holdout_sharpe 0.251 negligible on its own. benchmark_meaningful=false (market-neutral), so judged on absolute risk-adjusted metrics it still fails: base Sharpe 0.383 / optimized 0.54 with return_kurtosis 856, skew 26, and the edge concentrated in a few outlier days (2021-06-25 +152%, 2024-02-23 +70%); max_drawdown 42.6% base / 69.2% optimized. Not iterate (final attempt, 2 of 2): the binding failures are structural — an optimized Sharpe below the luck bar, DSR 0.187, PBO 0.71, and an overfit walk-forward with negative average OOS — and the sensitivity grid, though clean (0 cliffs), sits uniformly ~0.35-0.46, all below the 0.766 luck bar, so there is no robust region above significance to tune toward and a third best-of-225 sweep re-selects noise. Not revise_hypothesis: this is a novel, untouched cross-sectional-momentum mechanism with no promoted sibling stranded on a dead target — a no-significance/overfit-to-search failure on valid, data-rich majors, and a 3-asset cross-section (long 1 / short 1) is structurally too thin to reframe onto a different target. FAILURE PATTERN: canonical cross-sectional momentum on only 3 crypto majors (long top / short bottom, weekly rotation) does NOT produce a promotable edge — with just 3 names the long-1/short-1 book is a near-binary bet dominated by tail days (kurtosis 856), so the optimized Sharpe cannot clear its own 0.766 best-of-225 luck bar (DSR 0.187, PBO 0.71, is_overfitted with negative avg OOS, spurious holdout ratio against a negative baseline). A clean 0-cliff sensitivity surface, a high PSR (0.98), and a 220-477% outlier-carried total return measure consistency and survivability, not significance or forward-generalization.
Implementation
Market-neutral 3-asset cross-sectional momentum rotation on BINANCE USD-M daily bars (BTCUSDT primary + ETHUSDT/SOLUSDT extras). Every ~week, rank the three by trailing 60-day return, go LONG the winner and SHORT the loser at equal dollar notional, hold the middle flat. Leg management is fully manual via the multi-instrument interface using a keep/open/close SET pattern with own-bookkeeping held-side tracking and a stable base-equity sizing anchor, so the book is structurally bounded to one long + one short (~45% notional each, ~90% gross) and cannot accumulate. OHLCV-only, no leverage, no supplementary data.
Backtest Review
Iteration-3 exposure control verified working: max 2 concurrent positions, zero same-symbol overlaps, genuinely market-neutral (beta 0.079, correlation 0.196).
Backtest Review
Trades match the hypothesis: long top-momentum / short bottom-momentum, ~weekly rotation, leverage ~0.4-0.5 per leg as designed.
Backtest Review
Novel mechanism class (cross-sectional momentum, untouched in the 700-experiment book); adequate sample (137 trades); positive absolute return (CAGR 20.9%, PF 1.31, Sortino 1.23).
Backtest Review
Severely outlier-carried: return_kurtosis 856, skew 26 - 2021 (+173%) and 2024 (+53%) carry the whole track; 2022/2023/2025 are negative.
Backtest Review
Low base Sharpe 0.38 with sharpe_ci_low -0.48 (CI straddles 0); max_drawdown 42.6% with a 731-day drawdown duration.
Backtest Review
Only 3 assets makes the cross-sectional ranking coarse - high risk of overfitting to the 2021/2024 windows in optimization.
Analysis
Genuinely differentiated: untouched cross-sectional-momentum mechanism class, market-neutral long/short (fills the long_short and multi-instrument quota gaps), with a clean 0-cliff sensitivity surface and stable exposure control (gross ~2x as designed).
Analysis
Low beta (0.065-0.078) and low benchmark correlation — real market-neutrality; capacity is large.
Analysis
Failed deflated Sharpe: DSR=0.1873 (<0.95), is_significant=false, PBO=0.7116 (>0.5), sharpe_ci_low=-0.1189 straddles 0; optimized Sharpe 0.54 sits BELOW the 225-trial expected-max luck bar of 0.7664.
Analysis
Walk-forward is_overfitted=TRUE: avg IS 0.711 collapses to avg OOS -0.0298 with windows [-0.89, 0.87, -0.066] — two of three negative.
Analysis
Holdout 'pass' is spurious: ratio=0 against a negative WF-OOS baseline (-0.0298); holdout_sharpe 0.251 is negligible.
Analysis
probabilistic_sharpe 0.9828 vs DSR 0.1873 is the textbook PSR-vs-DSR selection-inflation trap.
Analysis
Outlier-carried and thin: return_kurtosis 856 / skew 26, edge concentrated in a few tail days (2021-06-25 +152%, 2024-02-23 +70%); max_drawdown 42.6% base / 69.2% optimized; only 3 assets makes long-1/short-1 a near-binary bet with no persistent cross-sectional edge.
Analysis
Sensitivity is clean but uniformly sub-significant (~0.35-0.46 across the grid, all below the 0.766 luck bar) — no robust region above significance to tune toward.
Analysis
The exposure-control bug you claim to have fixed in iteration 2 is NOT fixed — this run still shows exposure_pct=205.62% (target ~90%) and avg_position_pct=129.6% (target 45%/leg), with physically impossible daily returns for a dollar-neutral book (2024-02-16 = -226.9% in a single day, 2024-02 = +705.98% monthly). Do NOT resubmit until the book provably holds ~90% gross and each leg ~45% notional every bar. Specific fixes to investigate: (1) NETTING/fill timing — _current_signed_qty reads positions_open at rebalance time, but the delta market orders you submit this bar are not yet filled/reflected, so next rebalance recomputes deltas off a stale position and legs accumulate instead of netting to target. Confirm fills settle before recomputing, or track intended target notional in strategy state rather than reading cache mid-bar. (2) Sizing equity is inflated by unrealized PnL — leg_notional = get_account_equity() * notional_pct grows unbounded as a winning leg's unrealized gain balloons equity; use a stable base-equity/realized figure so per-leg notional stays fixed. (3) Between-rebalance drift — winners ride for a full week and the middle leg may not be flattened; verify the middle leg is driven to 0 and add an explicit gross-exposure cap. Instrument the strategy to log per-leg dollar notional and total gross each bar, and re-run; only when exposure_pct is ~90% with no single-day return beyond plausible neutral bounds is this worth optimizing.
Outcome Summary
This strategy directly implemented an analyst post-mortem recommendation to try cross-sectional ranking, introducing the first such mechanism in a 700-experiment book: a weekly market-neutral rotation that longs the top-momentum and shorts the bottom-momentum of BTC/ETH/SOL. After three iterations fixing runaway gross exposure with an own-bookkeeping keep/open/close pattern, it passed backtest review with verified neutrality and a positive but deeply outlier-carried track (Sharpe 0.38, kurtosis 856). Optimization then exposed it as statistically insignificant and overfit: deflated Sharpe 0.187, PBO 0.71, an optimized Sharpe of 0.54 below the 0.766 luck bar, and a walk-forward whose in-sample edge collapsed to negative out-of-sample — while the holdout 'pass' was spurious against a negative baseline. On the second and final optimization attempt the analyst abandoned it as a structural no-significance/overfit failure on a cross-section too thin to reframe; it never reached risk review, paper, or live.
Outcome Summary
A cross-section of only 3 assets makes long-1/short-1 a near-binary bet dominated by a few tail days, so even a novel, clean-sensitivity, market-neutral mechanism cannot clear its own best-of-N luck bar — a high PSR (0.98) and outlier-carried total return measure survivability, not statistical significance or forward-generalization.
Outcome Summary
It cleared backtest review ('optimize') on verified exposure control, but the post-optimization analyst voted 'abandon' on the final attempt: deflated Sharpe 0.1873 with the optimized Sharpe 0.54 sitting below the 225-trial expected-max luck bar of 0.7664, PBO 0.7116, is_significant=false, an is_overfitted walk-forward (avg IS 0.711 collapsing to avg OOS -0.0298 with two of three windows negative), and a spurious holdout 'pass' measured against a negative WF-OOS baseline.
Outcome Summary
A market-neutral, 3-asset cross-sectional momentum rotation on BTC/ETH/SOL Binance USD-M daily bars that every ~week ranks the three by trailing 60-day return, goes long the highest-momentum asset and short the lowest at equal notional, and holds the middle flat — the portfolio's first cross-sectional-ranking mechanism.
Outcome Summary
The base backtest ran 137 trades over ~6 years with genuine market-neutrality (beta 0.079, correlation 0.196), CAGR 20.9%, profit factor 1.31 and Sortino 1.23, but Sharpe was only 0.38 (sharpe_ci_low -0.48) with 42.6% max drawdown, and returns were extremely outlier-carried (kurtosis 856, skew 26 — 2021 and 2024 carried the whole track while 2022/2023/2025 were negative).
Backtest and paper results are hypothetical. Trading involves risk of loss.