Skip to content

View original

GlobalTacticalDualMomentumRotationCashEscape

Hypotheses

Global Tactical Asset Allocation — Broad Cross-Asset-Class Dual-Momentum Rotation with Absolute-Momentum T-Bill Escape (USEQ: SPY / EFA / EEM / TLT / GLD, monthly, hold single top-ranked risk sleeve or BIL cash, 2-parameter)

Hypotheses

A long-only, monthly-rebalanced multi-ASSET-CLASS momentum rotation on liquid US-listed ETFs, run entirely on USEQ daily bars (decades of split-adjusted history, commission-free). Each month-end it ranks a diversified menu of ASSET CLASSES — US equity (SPY), developed intl equity (EFA), emerging equity (EEM), long Treasuries (TLT), gold (GLD) — by a composite RELATIVE momentum score (blend of trailing 3/6/12-month returns) and holds the SINGLE top sleeve. An ABSOLUTE-momentum filter holds that sleeve only if its 12-month return beats BIL (T-bills); else it rotates fully to BIL cash. Faber/Antonacci GEM/GTAA generalized beyond a US-centric 3-asset menu, DELIBERATELY distinct from the pending SPY/TLT/GLD 3-asset rotations by adding ex-US/EM equity dispersion and a real credit/duration escape. Placed on USEQ (most under-represented survivable venue, 1.1%) inside the one freshly-passing family; NOT a L74 classical anomaly — it is an always-in-the-best-asset-class trend harvester robust across 30+ years of regimes; NOT a crypto perp basket (multi 0/127 is crypto-specific); 2 real params answers the overfit-380x problem.

Hypotheses

Direct implementation of the hypothesis: Faber/Antonacci dual momentum generalised beyond a US-centric 3-asset menu by adding ex-US and EM equity dispersion (EFA, EEM) alongside a real duration escape (TLT) and gold (GLD), with a genuine absolute-momentum T-bill gate on top. Relative momentum = the 3/6/12-month blended composite (the hypothesis's 'blend of trailing 3/6/12-month returns'), parameterised as one scale knob so the whole blend moves together rather than adding three separately-fittable lookbacks -- this is the '2 real params answers the overfit-380x problem' constraint. Absolute momentum uses the longest (12-month) window vs the hurdle, matching 'holds that sleeve only if its 12-month return beats BIL'. ONE DELIBERATE DEVIATION, flagged per instructions: the hypothesis names BIL as the cash sleeve, but BIL is not in the USEQ universe/catalog, and -- decisively -- USEQ PnL excludes dividends, so a T-bill ETF's modelled return is its (flat) price return, i.e. economically identical to cash while still paying spread/impact on every rotation. Holding literal cash is therefore the faithful and strictly cheaper representation of the BIL sleeve; the T-bill yield it would have earned is carried explicitly as the abs_hurdle parameter (default 2%/yr), which is exactly where it belongs in a dual-momentum rule. All five declared risk sleeves are traded as declared. Venue: USEQ is correct and unchanged -- long-only, leverage 1.0 (so no leverage is claimed or needed), commission-free, decades of daily history for a powered walk-forward. Sizing is whole shares (USEQ size precision 0) at 95% of get_account_equity(), never a hardcoded quantity. All five legs are driven manually via _submit_entry_instrument/_submit_exit_position (the base class only auto-manages the primary), so should_enter returns None and should_exit False to prevent a competing SPY order; every order action is gated on no working/in-flight orders on any leg and the new entry is deferred to a later bar than the exit that frees the capital. calculate_signal returns the leader's composite momentum EVERY bar (continuous, unbounded natural units), not a gated constant. Per-bar work is O(#sleeves x 3) arithmetic on capped deque-equivalent buffers, so the Layer-3 wall clock is not at risk. Entry frequency: with 5 sleeves and a single ~2%/yr hurdle the escape is the exception, not the rule, so the book is invested most months and rotates several times a year -- tens of trades in any multi-year window, nowhere near a zero-trade gate.

Hypotheses

Overfit with negative out-of-sample generalization. Three HARD validity gates fail (is_overfitted=true IS 1.113 -> OOS -0.146; OOS Sharpe -0.146 <= 0; PBO 0.7207 > 0.5), confirmed by DSR=0.0 vs expected-max 1.666 over 225 trials and failure of programme-level FDR. There is nothing to iterate toward — the sensitivity grid is uniformly flat (0.37-0.42, no high-edge region anywhere), the trial distribution is degenerate, and the optimizer pinned both free parameters to opposite bounds. Not a fee problem (2.70% per trade, ~54x the USEQ floor) and not a code problem: economically the strategy shows IR -0.088 / alpha 0.018 on beta 0.406 (de-risked long basket, no alpha) and loses -11.15% through the 2022 rate shock the cross-asset escape exists to survive. It also breaches its own pre-registered 20% drawdown cap (28.77%) and is structurally un-validatable at 81 trades / 33 years with an UNDERPOWERED OOS vault. Per the overfit->abandon rule this is not a revise_hypothesis case: it is the sixth death of the USEQ macro/cross-asset ETF rotation family (similarities 0.70-0.80 to five prior abandons — QQQ/GLD/TLT, SPY/TLT/GLD relative, SPY/TLT/GLD macro, SPY/QQQ/GLD, QQQ/TLT+GLD absolute-trend). Broadening the menu from 3 to 5 asset classes with EFA/EEM added no robustness the deflation could not strip; recommend the Research Lead stop re-instantiating monthly cross-asset ETF rotation on USEQ regardless of menu composition.

Implementation

Long-only, monthly-rebalanced GLOBAL TACTICAL ASSET ALLOCATION rotation across five liquid US-listed ETF sleeves representing distinct ASSET CLASSES -- SPY (US equity), EFA (developed ex-US equity), EEM (emerging equity), TLT (long Treasuries) and GLD (gold) -- on USEQ 1-DAY split-adjusted bars. On the first evaluated session of each calendar month it ranks all five by a COMPOSITE relative-momentum score (equal-weight blend of trailing returns over 1x / 2x / 4x mom_scale_days = 3 / 6 / 12 months) and holds the SINGLE top-ranked sleeve at ~95% of equity in whole shares. An ABSOLUTE momentum filter overrides the winner: the leader's 12-month return must clear the T-bill hurdle (abs_hurdle, annualised and rescaled to the actual window), otherwise the book rotates fully to CASH -- the T-bill escape that takes the portfolio out of risk in 2008/2022-style broad drawdowns. Exactly two free model parameters (mom_scale_days, abs_hurdle) plus one sizing parameter, all with declared bounds. Between month-ends the strategy is buy-and-hold: turnover is at most one exit plus one entry per month, so the ~0.02-0.05% USEQ round-trip spread/impact cost is negligible against multi-month sleeve moves. Rebalance timing is keyed on the bar's own (year, month), never a process-relative bar counter, so the schedule is identical across restarts, backtests and paper replay.

Verification Results

No change required; the deviation is well-justified and preserves the hypothesis's core mechanic. Optionally document that abs_hurdle carries the T-bill yield the BIL sleeve would have earned.

Verification Results

The hypothesis names BIL (T-bill ETF) as the cash sleeve; the code implements the defensive state as literal cash (target=None) rather than trading BIL. The developer flags this deliberately: BIL is not in the USEQ catalog, USEQ PnL excludes dividends (so a T-bill ETF's modelled return is ~flat price return, economically identical to cash but still paying spread/impact), and the foregone T-bill yield is carried explicitly as the abs_hurdle parameter. This is a faithful and strictly cheaper representation of the absolute-momentum escape, not an edge-altering substitution — the dual-momentum mechanic (rank 5 sleeves by 3/6/12mo composite, hold leader only if 12mo return beats the hurdle else escape) is fully intact. Advisory only.

Verification Results

None needed; the override is intentional and returns a sane warmup length.

Verification Results

min_bars_required(self) overrides the base framework method (static-analysis base_shadow warning). Here the override is deliberate and correct — it returns long_window+2 (254) so the strategy has enough history for the 252-session composite before trading. Not a defect.

Verification Results

Sandbox Sharpe 0.59 (CI [-0.15, 1.37]) on only 15 trades over a truncated bar-budgeted window is modest and not yet significant, but this is a slow monthly rotation whose full 20+ year daily history will yield a far larger, better-powered sample for the walk-forward. avg_trade_return_pct 4.76% clears USEQ costs comfortably. No correctness reason to block; flagging the thin sandbox sample as context for the analyst.

Backtest Review

Genuinely differentiated multi-ASSET-CLASS GTAA/GEM rotation (SPY/EFA/EEM/TLT/GLD + T-bill escape) — an established academic all-weather mechanism, NOT a single-name OHLCV momentum clone (L82/L93) nor a crypto/dollar-neutral perp basket (L45), so the class death-priors do not apply.

Backtest Review

avg_trade_return_pct 3.01% (pct_notional) clears the near-frictionless USEQ cost floor (~0.05%) by ~60x, and commissions are $0 with impact only 1.3% of gross — this is not a fee-fragile edge.

Backtest Review

Profit_factor 2.27, positive alpha (0.0123) and beta 0.52 vs the equal-weight basket benchmark (benchmark_meaningful=true), max_drawdown 29.4% (<50%), recovery_factor 18.3 — coherent, active, risk-controlled.

Backtest Review

33-year split-adjusted daily history with 67 closed trades — a slow monthly single-sleeve rotation, so the sample is well-powered for a walk-forward (QA's thin-sandbox concern resolves in the strategy's favour on full history).

Backtest Review

Only 2 real searchable params (mom_scale_days, abs_hurdle) — low overfit surface; the trades implement the stated dual-momentum mechanism (rank composite 3/6/12m return, hold leader only if it clears the T-bill hurdle, else cash).

Backtest Review

Headline MTM Sharpe is modest (0.366, CI [0.028, 0.696]) — the point is positive and CI stays above zero, but this is the metric optimization must lift.

Backtest Review

A few sparse monthly return prints look large (e.g. 2006-05, 2026-05 ~60-70%); reconcile against the equity curve during full optimization — CAGR is a sane 7.67%, so not a headline driver, but worth a plausibility check.

Backtest Review

Negative calendar years exist (2016 -12%, 2019 -16%, 2023 -11%); normal/stressed vol terciles are the weaker regimes.

Analysis

Genuinely differentiated mechanism vs the crypto corpus: a 5-asset-class GTAA/GEM rotation (SPY/EFA/EEM/TLT/GLD + T-bill escape) with only 2 real model parameters, on 33 years of split-adjusted USEQ history.

Analysis

No cliff parameters: sensitivity is smooth (cliff_count 0) and the 5x5 heatmap is flat at 0.37-0.42 across the whole mom_scale_days x abs_hurdle grid.

Analysis

Economics are fine and not the failure mode: avg_trade_return_pct 2.70% is ~54x the USEQ 0.05% floor, PF 2.99, zero commissions, impact only 1.31% of gross, capacity ~$587M.

Analysis

Holdout window (2013-04 to 2018-04, 17 trades) is positive at Sharpe 0.31, i.e. it clears the hard holdout gate.

Analysis

THREE HARD validity gates fail and cannot be waived: walk-forward is_overfitted=true (IS 1.113 -> OOS -0.146), average OOS Sharpe -0.146 <= 0, and PBO 0.7207 >> 0.5. Promotion is structurally impossible.

Analysis

The OOS collapse is reversal, not decay: per-window OOS 0.0 / +0.510 / -0.948 against IS 0.0 / 2.403 / 0.937; PBO above 0.5 in both computable windows (0.743 / 0.698).

Analysis

Decisive deflation failure: DSR 0.0 vs expected-max 1.666 over 225 trials (18 effective) while the selected Sharpe is only 0.415 — the chosen config underperforms what best-of-N luck alone would produce. is_significant=false; does not survive programme FDR (candidate_p 1.0, keeps 4 of 282).

Analysis

Degenerate search: 75 of 225 trials score exactly 0.0, the rest cluster on two discrete values; both free parameters pinned to opposite bounds (abs_hurdle 0.0752 at ceiling, mom_scale_days 43 at floor) — no interior optimum exists.

Analysis

Breaches its own pre-registered contract: 28.77% DD vs declared 20% cap, Calmar 0.348, 3865 days max underwater; 2 of 5 pre-registered criteria missed including min_oos_sharpe 0.8 declared vs -0.146 actual.

Analysis

No active edge: IR -0.088, alpha 0.018 on beta 0.406 — a de-risked long basket. Sharpe 0.153 across the entire 'normal' vol tercile, and -11.15% (Sharpe -1.088) through rate_shock_2022, the exact dislocation the cross-asset escape is sold to handle.

Analysis

Structurally un-validatable: 81 trades over 33 years, OOS vault flagged UNDERPOWERED (~18 expected trades vs 100 needed).

Analysis

Benjamini-Hochberg at q=0.10 over 282 programme candidates keeps 4. A candidate that does not survive here is not distinguishable from the programme's own noise, however good its individual statistics look.

Outcome Summary

GlobalTacticalDualMomentumRotationCa-7217c6e141

Outcome Summary

The strategy generalized Faber/Antonacci dual momentum across five asset classes on USEQ, rotating monthly into the strongest of SPY/EFA/EEM/TLT/GLD or into cash when none cleared a T-bill hurdle. The pre-optimization review was favourable — differentiated mechanism, only two real parameters, per-trade economics ~54x the near-zero USEQ cost floor — and sent it to full optimization, which lifted Sharpe only from 0.366 to 0.415. There the validity gates broke it: walk-forward in-sample 1.113 collapsed to out-of-sample -0.146, PBO hit 0.7207 and the deflated Sharpe came in at 0.0 versus an expected-max of 1.666 over 225 trials, while the optimizer pinned both free parameters to opposite bounds on a uniformly flat 0.37-0.42 sensitivity grid. It was abandoned after one iteration, never reaching risk review, with the recommendation that the Research Lead stop re-instantiating monthly cross-asset ETF rotation on USEQ regardless of menu composition.

Outcome Summary

Broadening a monthly cross-asset ETF rotation's menu from three sleeves to five (adding EFA/EEM) added no robustness that deflation could not strip — this was the sixth death of the USEQ macro/cross-asset ETF rotation family, and a flat sensitivity grid with parameters pinned to opposite bounds signals there is no interior edge to iterate toward.

Outcome Summary

The analyst abandoned it after optimization: three hard validity gates failed simultaneously — is_overfitted=true, average OOS Sharpe -0.146 (<= 0), and PBO 0.7207 (> 0.5) — with deflated Sharpe 0.0 against an expected-max of 1.666 over 225 trials and no survival of programme-level FDR. It also breached its pre-registered 20% drawdown cap (28.77%) and showed no active edge (IR -0.088, alpha 0.018 on beta 0.406).

Outcome Summary

A long-only monthly GTAA/GEM dual-momentum rotation on USEQ daily bars that ranked five asset classes (SPY, EFA, EEM, TLT, GLD) by a blended 3/6/12-month return, held only the single strongest sleeve, and escaped fully to T-bill cash when that leader failed an absolute-momentum hurdle.

Outcome Summary

On 33 years of split-adjusted history the baseline backtest returned 360.69% (CAGR 7.67%) with Sharpe 0.366, max drawdown 29.4% and 67 trades; after optimization it reached Sharpe 0.415, 392.56% total return, 28.77% drawdown and 81 trades, with avg_trade_return_pct 2.70% and zero commissions. The holdout window (2013-04 to 2018-04, 17 trades) passed at Sharpe 0.308, but walk-forward out-of-sample Sharpe averaged -0.146 against in-sample 1.113.
Strategy report

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