The Edge That Wasn't
All 81 experiments › #80

#80 — Meta-allocation — equity-MA strategy switching vs equal-weight

2026-07-07
Verdict: mixed · 🟡 real defensive risk-reducer (roughly halves total loss), not an alpha layer — feeds the equity-switch monitor
Monthly causal equity-MA switch across 38 strategy-groups nets -1,949p vs -3,792p for equal-weight on the full 8,382-trade ledger, beating 100/100 random-allocation-null draws on net P&L and 86/100 on max drawdown.

Hypothesis — what it tests

Whether switching a strategy portfolio's allocation weight based on each strategy's own trailing-equity-vs-its-own-MA signal (causal, monthly rebalance) beats equal-weight always-on allocation across the project's full historical multi-strategy trade ledger.

Description

Generalizes the WF-validated single-strategy equity-MA overlay (bb_equity_switch.py) from one strategy trading live/paper to portfolio-level ALLOCATION across the project's entire multi-strategy trade history: 38 strategy-groups (live pooled by strategy name any size, paper pooled and kept only if >50 trades) built from the full 8,426-trade trades.duckdb central ledger (8,382 kept after the grouping filter), spanning 104 calendar days / 5 partial-to-full calendar months (only 4 causal monthly rebalance events). The switch rule turns a strategy on/off each month using only its OWN trailing realized-equity curve vs its own trailing moving average (window W swept at 10/20/40 calendar days), strictly causal — defaults ON when a strategy has fewer than W days of its own history yet. Result: switch W=20 nets -1,949p versus equal-weight always-on -3,792p (roughly halves the loss), and cuts max drawdown from -5,174p to -4,560p; beats 100/100 seeds of a matched-slot-count random-allocation null on net P&L and 86/100 on max drawdown, confirming the effect is a real, non-random allocation signal rather than luck. Interpretation is explicitly DEFENSIVE, not alpha-generating: it is structurally blind to blowups that complete within the first ~10-day rebalance window (the four pre-RCA lookahead strategies each lost -11,800 to -12,300p within their first ~9-10 days of April, before the switch ever got a vote), and the whole portfolio remains net negative under every allocation scheme because those four disasters dominate all others combined. Feeds/validates the already-deployed per-strategy services/equity_switch_monitor/monitor.py cron on accounts 010/001; filed as a risk-management tool, not a new standalone edge layer.

Key result

equal-weight always-on: net -3,792p, maxDD -5,174p, sharpe-ish -2.26 (104 days); switch W=10: net -1,869p, maxDD -4,560p; switch W=20: net -1,949p, maxDD -4,560p, sharpe-ish -1.18; switch W=40: net -3,630p, maxDD -5,174p (collapses to equal-weight); random null mean (100 seeds, k matched to W=20): net -3,799p (sigma=502), maxDD -5,237p (sigma=419); switch W=20 beats 100/100 random draws on net (random 5-95pct range [-4,549, -2,822], switch clear of the band), beats 86/100 on maxDD; 38 strategy-groups, 8,382 trades kept of 8,426 total, 104 days, only 4 causal monthly rebalances; 4 worst strategies (range_neat, asi_mc_008, wf_pnlmae, pnl_mae_a) each net -11,800 to -12,300p within ~9-10 days in April.

Indicators

rolling equity moving average (own realized-equity curve, W in {10,20,40} calendar days)

Algorithms

causal monthly equity-MA on/off switching ruleequal-weight always-on baselinerandom-allocation null test (100 seeds, matched slot counts)max-drawdown / Sharpe-ish summary stats

Code

Interactive version (search, filters, figures): the experiment explorer.

← #79 Core-pricing arithmetic — re-pricing the gross-positive family at OANDA core tier#81 Composite 1 — Axis-1 D1 displacement fade × Axis-3 COT positioning vote →
This page is one experiment from the audited record behind the book The Edge That Wasn'tget the book · about the project.