#75 — FX factor suite (carry / value / momentum / composite) at OANDA-retail cost
Hypothesis — what it tests
Whether the classic academic FX risk premia - carry, momentum(12-1), PPP value, and an equal-weight composite - survive OANDA-retail spread and broker-truth carry costs at a monthly cross-sectional rebalance horizon across 8 currencies.
Description
Pre-registered (locked 2026-07-07) academic-style monthly FX risk-premia test on 8 currencies (via 12 pairs): carry (PRIMARY, broker-truth carry_model cross-sectional ranks, SPX500 SMA(200) risk-off gate as the confirmatory cell) plus three exploratory secondaries - momentum(12-1), PPP-value, and an equal-weight composite - each long top-3/short bottom-3 currencies, equal-risk 63-day-vol sized, monthly rebalanced, benchmarked against an R10 null of 200 random-weight portfolios on identical rebalance dates. Over 44 IS monthly rebalances (2020-11-11 to 2024-08-30, small-N disclosed in the pre-reg), gated carry nets -34.1 p/rebalance (ungated -53.4) versus the null's p95 of +15.5 - gate 3 fails, and WF halves (-39.4 / -28.9) both stay negative - gate 4 fails. Value is worse (-60.0 p/rebalance) and the composite -54.2; momentum(12-1) is the lone positive secondary at +27.4 p/rebalance but is flagged exploratory/single-pass and explicitly not promotable without its own pre-registration - a caveat borne out when the dedicated momentum_confirm follow-up study later found the +27.4 was a decade-stale window artifact. Apparatus gates (harness self-test, carry-accrual parity vs carry_model) both passed clean, so the failure is attributed to the factors themselves, not the test rig. Per the pre-registration's own decision rule, the program stopped at IS - OOS was never touched and remains sealed for one future amended shot.
Key result
Indicators
Algorithms
Code
Interactive version (search, filters, figures): the experiment explorer.