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

#21 — CSI StrengthSpread campaign (stages 1–2)

2026-04-17 (stages 1–2; stage 3 killed partial)
Verdict: mixed · 🟡 7/30 all-folds-positive; Stage 3 incomplete
A 513-config grid over currency-strength factors found 7 SignedCSI variants surviving a strict all-folds-positive walk-forward gate (best Sharpe 0.752), but the Monte Carlo stage was killed after validating only 1 of 7 configs.

Hypothesis — what it tests

Whether the H4 contrarian currency-strength (StrengthSpread/SignedCSI) alpha survives a full staged validation — grid, walk-forward, Monte Carlo, drop-one — as a cross-pair portfolio strategy.

Description

This extended the H4 contrarian StrengthSpread finding (OOS Sharpe 0.59 from the separate csi_factor_study project) into a systematic multi-stage validation campaign: rank G10 FX pairs by a currency-strength factor at each bar close, short the top-N and long the bottom-N, hold H bars, rebalance. Stage 1 evaluated a full 513-config grid (factor × timeframe × hold × N × slippage): 265 had positive net Sharpe and 67 exceeded 0.5. Stage 2 ran 5-fold walk-forward on the top 30, and only 7 passed the all-folds-positive gate — all of them SignedCSI variants; the prior 'Spread' factor candidate did not survive. The headline survivor, SignedCSI H8 with 1-bar hold and N=4 pairs per side (Sharpe 0.752, worst fold 0.192), got through Stage 3's 1,000-permutation Monte Carlo with p=0.0000 before the run was killed at the user's request (it ran ~6× slower than estimated); the remaining 6 configs and Stage 4 (drop-one robustness) never ran, leaving the campaign a promising but unfinished candidate. The campaign code lives in the separate ~/projects/csi_factor_study repo; an in-repo reproduction of the headline config was later built for the book-review verification.

Key result

Stage 1: 265/513 positive net-Sharpe, 67 > 0.5; Stage 2: 7/30 all-folds-positive, all SignedCSI; headline SignedCSI H8 H=1 N=4 slip=1.0: Sharpe 0.752, worst fold 0.192, median 0.836, MC p=0.0000 (only config tested); stages 3–4 incomplete

Indicators

SignedCSI (cross-sectional currency strength index)StrengthSpread (z(strength_A) − z(strength_B))rolling log-return sums, cross-sectional z-scores

Algorithms

grid search (513 configs)5-fold walk-forward validationMonte Carlo permutation test (1,000 perms)cross-sectional rank portfolio construction

Code

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

← #20 StrengthSpread lookahead RCA#22 Weekend gap-fill backtest →
This page is one experiment from the audited record behind the book The Edge That Wasn'tget the book · about the project.