Skip to content

View translation

CrossAssetDualMomentumDefensiveRotationQqqGldTlt

Hypotheses

Cross-Asset Dual-Momentum Defensive Rotation — Long-Only USEQ ETF Regime Switch: Hold the Single Strongest of QQQ / GLD / TLT by 6-Month Absolute Momentum, Rotate to Cash When None Is Trending Up, Monthly Decision on Decades of Daily Bars (3-ETF, 3-Parameter, No Leverage)

Hypotheses

A LONG-ONLY, cross-asset dual-momentum rotation on the commission-free USEQ venue. The tradeable universe is a small FIXED set of three liquid, structurally uncorrelated ETFs: QQQ (offense — US equity/growth), GLD (alternative/crisis hedge — gold), and TLT (defense — long US Treasuries). Every ~21 trading days (monthly) the strategy ranks the three by trailing 126-trading-day (6-month) total return (relative momentum) and holds the SINGLE top-ranked ETF — but only if that ETF's own 6-month return is positive (absolute-momentum floor); otherwise it holds cash (flat). This is deliberately NOT the crypto cross-sectional rank-and-rotate basket family (L68 — many-legged, market-neutral, 0.007 survival): it is a 3-asset, long-only, directional, drawdown-avoidance rotation on equities, the archetype the factory explicitly flags as the most robustly backtestable (decades of daily history, ERP + flight-to-quality tailwinds). It is also NOT the recently-dead USEQ zero-edge family (XLF 2-day z-score fade, KO/PEP pairs, QQQ turn-of-month) — those were mean-reversion / seasonality / stat-arb with no directional drift and Sharpe straddling zero; this harvests persistent cross-asset trend drift while side-stepping equity bear regimes by rotating into bonds or gold. Distinct from every USEQ item already in the pipeline (SPY/QQQ single-asset trend confluence, QQQ vol-managed exposure, XLK/XLU sector-beta rotation): none combines an equity leg with a bond leg AND a gold leg under one absolute-momentum floor. 3 parameters only (lookback 126d, rebalance 21d, momentum floor 0) using standard, plateau-stable values to resist the overfit that kills 338 hypotheses.

Hypotheses

Implements the hypothesis exactly: relative momentum (rank of three 126-day returns) + absolute momentum floor (leader must be trending up, else cash), decided monthly on decades of daily bars, long-only with no leverage. Exactly 3 free parameters (lookback_days, rebalance_days, abs_momentum_floor), each clamped with the identical range declared in _param_bounds. The rebalance cadence is derived from the bar's own timestamp (epoch-day bucket), never a process-relative bar counter, so the schedule is identical across restarts, backtests and paper replay; the tunable knob is expressed in calendar days (30 ~ 21 trading sessions). calculate_signal returns the leader's raw trailing return every session (continuous, varies daily) rather than a gated constant; the entry decision lives in the latched target. Venue is USEQ as specified — long-only, leverage 1.0, so no futures venue is warranted; commission-free execution plus ~0.02-0.05% spread/impact is easily cleared by multi-percent monthly rotation moves. Sizing is 95% of current equity converted to whole shares (USEQ size precision 0) with a min-notional guard. One reservation, stated as required and implemented as asked: with only three assets the rotation is effectively a QQQ/TLT regime switch most of the time, so its Sharpe will hinge on how cleanly the 6-month absolute filter exits equity drawdowns rather than on cross-sectional breadth.

Hypotheses

long_only_basket_beta_low_sharpe_high_drawdown: the defensive-rotation premise is empirically refuted — Sharpe is only 0.412 (CI low 0.060, far below the 1.5 floor) while max_drawdown is 43.95% (CI high 69.3%) and the strategy lost -30% in 2008, so the absolute-momentum floor did NOT side-step the bear regime it was designed to avoid. information_ratio is -0.111 vs the equal-weight QQQ/GLD/TLT basket: picking the single momentum leader adds no alpha over naively holding all three, and the 355% headline is QQQ/gold beta-carry (beta 0.63), not rotation edge (L49). Only 68 trades over 21 years make it a lumpy, outlier-driven sample (kurtosis 8.8). Optimizing 3 params cannot fix a structural 44% drawdown or turn a negative information ratio positive — the risk-adjusted edge and the drawdown-avoidance thesis both fail at review, so it is not worth the 2-hour optimization run.

Implementation

Long-only cross-asset dual-momentum rotation on USEQ daily bars across three structurally uncorrelated ETFs: QQQ (offense, primary), GLD (gold) and TLT (long Treasuries). On a calendar-anchored decision grid (floor(days_since_epoch / rebalance_days) bucket change, ~monthly) it ranks the three by trailing 126-session total return and holds the SINGLE strongest — but only if that ETF's own return clears the absolute-momentum floor (0 by default); otherwise it holds cash. Whole shares, no leverage, 0-or-1 positions, ~2-8 round trips a year. All three legs are driven manually via _submit_entry_instrument/_submit_exit_position through a settle-aware state machine (no order acts while any leg has a working/in-flight order; the entry is deferred to a bar after the exit that frees the capital), so the single-position invariant holds across non-netting instruments.

Verification Results

No code change. Analyst/backtest engineer should evaluate over full common history (2004+), not the 250-day sandbox slice.

Verification Results

Sandbox backtest ran on only 250 data_days and produced 2 trades (total_return -12.84%, avg_trade_return_pct -6.63%, metrics_reliable=false). This is NOT a code or fee failure: the strategy needs 127 warmup bars before any leg has momentum, leaving ~4 rebalance buckets in the window — structurally too short to measure a monthly rotation. QQQ/GLD/TLT have common daily history back to ~2004, so the real backtest spans ~2 decades and will generate dozens of round trips (checklist #18b).

Verification Results

Informational; hypothesis and code are aligned.

Verification Results

With three assets under a top-1 filter the rotation is effectively a QQQ/TLT (occasionally GLD/cash) regime switch, as the developer notes. This matches the hypothesis but makes Sharpe hinge entirely on how cleanly the 6-month absolute-momentum floor exits equity drawdowns rather than on cross-sectional breadth.

Backtest Review

Genuinely distinct cross-asset (equity+bond+gold) family, not the dead crypto rank-rotate or USEQ mean-reversion buckets

Backtest Review

Only 3 plateau-stable params, event/calendar-gridded decisions, low turnover (7.3), avg_trade_return_pct 2.95% clears the USEQ floor with room

Backtest Review

profit_factor 2.88 and probabilistic_sharpe 0.98 on the single config

Backtest Review

Sharpe 0.412 (CI low 0.060) — barely above zero, far below the 0.5 OOS and 1.5 promotion floors; 3 params cannot lift a directional book to 1.5

Backtest Review

max_drawdown 43.95% (CI high 69.3%) directly refutes the drawdown-avoidance premise; 2008 lost -30% (annual -30.1%) — the absolute-momentum floor did not protect in the crash

Backtest Review

information_ratio -0.111 and tiny alpha (0.9%/yr) vs the equal-weight basket benchmark — the leader-rotation adds NO value over just holding all three ETFs equally; the 355% return is beta-carry (beta 0.63), not alpha

Backtest Review

68 trades over 21 years = low, outlier-driven sample (kurtosis 8.8, skew -0.50); risk-adjusted signal is barely measured

Outcome Summary

The strategy proposed a genuinely distinct, structurally sound family: a 3-ETF, 3-parameter, long-only defensive rotation meant to harvest cross-asset trend drift while side-stepping equity bear regimes by moving into bonds, gold, or cash. On decades of daily data it returned 355% with a healthy profit factor and per-trade return well above the USEQ cost floor, but its risk-adjusted profile collapsed the thesis: Sharpe was 0.412, drawdown hit 43.95% (with a -30% 2008), and its -0.111 information ratio showed leader-picking added no value over an equal-weight basket — the gains were beta-carry, not rotation edge. With only 68 outlier-driven trades over 21 years and a structural drawdown that three plateau-stable parameters could not fix, the analyst abandoned it at backtest review rather than spend a two-hour optimization run. Later pipeline stages (optimization, full analysis, risk review) were therefore never reached.

Outcome Summary

A drawdown-avoidance thesis must be validated by the drawdown metric itself — an absolute-momentum floor that still suffers a 44% drawdown and adds no alpha over naively holding the basket is refuted regardless of a strong headline return.

Outcome Summary

It was abandoned at the pre-optimization backtest-review gate: Sharpe (0.412) fell far below the 1.5 promotion floor, drawdown (43.95%) far exceeded the 20% threshold, and the negative information ratio showed the 355% return was QQQ/gold beta-carry (beta 0.63) rather than rotation alpha.

Outcome Summary

A long-only, no-leverage cross-asset dual-momentum rotation on the commission-free USEQ venue that monthly holds the single strongest of QQQ/GLD/TLT by trailing 6-month (126-session) return, and rotates to cash when no ETF's absolute momentum is positive.

Outcome Summary

Over 1999–2026 (6,910 daily bars) it produced a 355.07% total return with profit_factor 2.88 and avg_trade_return_pct 2.95% across 68 trades (55.9% win rate), but Sharpe was only 0.412 (CI low 0.060), max_drawdown reached 43.95% (CI high 69.3%, -30% in 2008), and information_ratio was -0.111 versus the equal-weight QQQ/GLD/TLT basket.
Strategy report

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