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

#77 — CFTC COT positioning-extremes signal

2026-07-07
Verdict: negative · ⛔ OOS refuted — −3.2 p/wk over 275 weeks, below the null p95; seal spent
Contrarian COT speculator-positioning signal clears all 4 pre-registered IS gates, but its bootstrap CI spans zero and a 1.5x spread stress flips the sign, so the recommendation is to hold the seal for a planned Axis1+Axis3 composite rather than judge it as a standalone edge. The seal was later spent: the one-shot OOS run (2026-07-17, 275 weeks 2021-02→2026-05) scored −3.2 p/wk, below the random-sign null's p95 — refuted.

Hypothesis — what it tests

Whether CFTC COT weekly speculator net-positioning extremes (crowded-long/crowded-short z-scores) predict contrarian FX returns once broker-realistic spread and carry costs are applied.

Description

Tested CFTC Commitments of Traders (Legacy, futures-only) weekly non-commercial net positioning, z-scored per currency over a trailing 156-week window, as a contrarian FX signal: short the top-2 most crowded-long currencies, long the bottom-2 most crowded-short, equal-risk-weighted (63-day realized vol) and rebalanced weekly, with causal release-lag handling (positions as-of Tuesday, published Friday ~15:30 ET, signal acts no earlier than the following Monday open) and broker-truth carry accounting. All 4 pre-registered IS gates technically pass (data integrity, null self-test, contrarian beats null p95 and the momentum-with-crowd ordering check, walk-forward 2/3 thirds positive), but the weekly-block bootstrap 95% CI [-3.70p, +5.48p] does not exclude zero (P(net<=0)=0.354), and stressing spread to 1.5x the measured median flips the IS mean from +1.01p/week to -1.05p/week. Unlike the other 6 programs in this wave (multiday, scratch-tail, fix-fade, fx-factors, momentum-confirm, regime-entry), which all closed cleanly negative with seals intact, COT is the one program left genuinely open: it sits at a user gate rather than a closed verdict, with the on-record recommendation to hold the seal (do not spend the sealed OOS, do not declare pass/fail) and instead fold this signal into a planned Axis1+Axis3 composite (the book's Composite-1 step 2) rather than judge it standalone. As of this wave's completion the team is awaiting a user ruling on how to proceed.

Key result

IS: 641 weeks, 2008-10-25→2021-01-31 (70% of 916-week joint window). 4/4 gates PASS. Contrarian net +1.01p/wk vs null p95 +0.41p/wk vs momentum -9.32p/wk (null overall mean -4.14p/wk, std 2.99p). WF thirds: +3.83 / -2.92 / +2.09 p/wk (2/3 positive). Weekly-block bootstrap (2000 resamples): mean +0.92p/wk, 95% CI [-3.70p, +5.48p] (spans zero), P(net<=0)=0.354. Spread sensitivity 1.0x→1.5x: contrarian +1.01p→-1.05p/wk (SIGN FLIPS), momentum -9.32p→-11.38p/wk. Per-pair IS median spreads (pips, round-trip): AUD_USD 3.80, EUR_USD 2.70, GBP_USD 5.00, NZD_USD 5.20, USD_CAD 5.00, USD_CHF 4.00, USD_JPY 3.20. COT continuity: 100.1% (6 currencies), NZD 97.0%. 200 null replicates, seed 20260707. | OOS 2026-07-17: −3.217 p/wk over 275 weeks, CI includes 0, below null p95 — refuted, seal spent.

Indicators

COT net non-commercial position (% of open interest)156-week rolling z-score63-day realized volatility (equal-risk weighting)per-pair D1 median spreadcarry (broker-truth 2020+, FRED-differential pre-2020)

Algorithms

contrarian top-2/bottom-2 crowded positioning portfoliomomentum-with-crowd ordering-check armR10 null: 200 random-sign replicate portfolios (seeded)weekly-block bootstrap (2000 resamples) for CI/P(net<=0)3-fold walk-forward on IS thirds

Code

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

← #76 Momentum confirmation Stage 1 (deep-history FX momentum(12-1))#78 Spread clock — hour-of-week toll profiles + guard cost-benefit →
This page is one experiment from the audited record behind the book The Edge That Wasn'tget the book · about the project.