FX Carry Trade (JPY Crosses)
slug: fx-carry-jpy-crosses
performance summary
Sharpe (median)
+0.64
Max DD
-32.9%
Win rate
—
Alpha (ann.)
—
p-value
0.12
backtest period: 2020-08-18 → 2026-05-22
Sharpe across 1200 grid runs:median 0.63best 1.36 (not representative)worst -0.45p25–p75 0.35–1.14
Hypothesis
FX carry trade: borrow low-yield JPY, invest in higher-yield currencies. Tests carry, Bollinger, MA crossover, and combined strategies on JPY pairs. Includes BOJ intervention risk filter (USD/JPY threshold → force FLAT).
Why it didn't work
Across 1200 grid combinations, median Sharpe=0.63, best=1.36. Primary failure mode: no_edge.
Facts (6)
Average monthly return correlation with other strategies in DOWN regime: -0.01
Pairwise Pearson correlation of monthly returns across 42 strategies, filtered to DOWN regime months (N=3, N225 < SMA20 < SMA60)
Average monthly return correlation with other strategies (full period): 0.01
Pairwise Pearson correlation of monthly returns across 42 strategies, full backtest period
Best grid Sharpe ratio is 1.36 (p=0.00095).
period 2020-08-18–2026-05-22; cost=1bps
cite ↗ /cite/fx-carry-jpy-crosses-fact-best-sharpevia r-fx-carry-jpy-crosses-0528
Median Sharpe across 1200 grid runs is 0.63.
Full grid of 1200 parameter combinations.
Median Sharpe in DOWN regime is -0.74 across 1200 runs.
Regime=DOWN, N225 SMA20/SMA60 classification.
Median Sharpe in UP regime is 2.31 across 1200 runs.
Regime=UP, N225 SMA20/SMA60 classification.
Runs (30)
| run | params | sharpe | UP | FLAT | DOWN |
|---|---|---|---|---|---|
leverage=1, strategy=carry, pairs=USD, cost_bps=1 r-fx-carry-jpy-crosses-0000 | pairs: "USD" cost_bps: 1 leverage: 1 | +1.11 | +3.36 | — | -2.06 |
leverage=1, strategy=carry, pairs=USD, cost_bps=3 r-fx-carry-jpy-crosses-0001 | pairs: "USD" cost_bps: 3 leverage: 1 | +1.11 | +3.36 | — | -2.06 |
leverage=1, strategy=carry, pairs=USD, cost_bps=5 r-fx-carry-jpy-crosses-0002 | pairs: "USD" cost_bps: 5 leverage: 1 | +1.11 | +3.36 | — | -2.06 |
leverage=1, strategy=carry, pairs=USD, intervention_threshold=150, cost_bps=1 r-fx-carry-jpy-crosses-0003 | pairs: "USD" cost_bps: 1 leverage: 1 | +1.26 | +3.44 | — | -1.51 |
leverage=1, strategy=carry, pairs=USD, intervention_threshold=160, cost_bps=1 r-fx-carry-jpy-crosses-0012 | pairs: "USD" cost_bps: 1 leverage: 1 | +1.18 | +3.44 | — | -1.98 |
leverage=1, strategy=carry, pairs=USD+GBP, cost_bps=1 r-fx-carry-jpy-crosses-0045 | pairs: "USD+GBP" cost_bps: 1 leverage: 1 | +1.24 | +3.29 | — | -1.72 |
leverage=1, strategy=bollinger, pairs=USD, cost_bps=1 r-fx-carry-jpy-crosses-0060 | pairs: "USD" cost_bps: 1 leverage: 1 | -0.19 | -0.19 | — | -0.18 |
leverage=1, strategy=bollinger, pairs=USD, intervention_threshold=150, cost_bps=5 r-fx-carry-jpy-crosses-0065 | pairs: "USD" cost_bps: 5 leverage: 1 | -0.45 | -0.67 | — | -0.16 |
leverage=1, strategy=ma_cross, pairs=USD, cost_bps=1 r-fx-carry-jpy-crosses-0120 | pairs: "USD" cost_bps: 1 leverage: 1 | +0.71 | +1.55 | — | -0.53 |
leverage=1, strategy=ma_cross, pairs=USD, intervention_threshold=150, cost_bps=5 r-fx-carry-jpy-crosses-0125 | pairs: "USD" cost_bps: 5 leverage: 1 | +0.64 | +1.41 | — | -0.39 |
leverage=1, strategy=combined, pairs=USD, intervention_threshold=150, cost_bps=3 r-fx-carry-jpy-crosses-0184 | pairs: "USD" cost_bps: 3 leverage: 1 | +0.56 | +2.95 | — | -0.89 |
leverage=2, strategy=carry, pairs=USD, intervention_threshold=150, cost_bps=1 r-fx-carry-jpy-crosses-0243 | pairs: "USD" cost_bps: 1 leverage: 2 | +1.26 | +3.44 | — | -1.51 |
leverage=2, strategy=bollinger, pairs=USD, cost_bps=5 r-fx-carry-jpy-crosses-0302 | pairs: "USD" cost_bps: 5 leverage: 2 | -0.23 | -0.24 | — | -0.22 |
leverage=2, strategy=ma_cross, pairs=USD, cost_bps=3 r-fx-carry-jpy-crosses-0361 | pairs: "USD" cost_bps: 3 leverage: 2 | +0.68 | +1.53 | — | -0.56 |
leverage=2, strategy=combined, pairs=USD, cost_bps=1 r-fx-carry-jpy-crosses-0420 | pairs: "USD" cost_bps: 1 leverage: 2 | +0.62 | +3.34 | — | -1.21 |
leverage=2, strategy=combined, pairs=USD+GBP, intervention_threshold=160, cost_bps=5 r-fx-carry-jpy-crosses-0479 | pairs: "USD+GBP" cost_bps: 5 leverage: 2 | +1.10 | +3.77 | — | -0.87 |
leverage=3, strategy=carry, pairs=USD+GBP, intervention_threshold=150, cost_bps=1 r-fx-carry-jpy-crosses-0528 | pairs: "USD+GBP" cost_bps: 1 leverage: 3 | +1.36 | +3.36 | — | -1.43 |
leverage=3, strategy=carry, pairs=USD+GBP, intervention_threshold=160, cost_bps=5 r-fx-carry-jpy-crosses-0539 | pairs: "USD+GBP" cost_bps: 5 leverage: 3 | +1.29 | +3.34 | — | -1.68 |
leverage=3, strategy=bollinger, pairs=USD, intervention_threshold=150, cost_bps=5 r-fx-carry-jpy-crosses-0545 | pairs: "USD" cost_bps: 5 leverage: 3 | -0.45 | -0.67 | — | -0.16 |
leverage=3, strategy=bollinger, pairs=USD+GBP, intervention_threshold=160, cost_bps=5 r-fx-carry-jpy-crosses-0599 | pairs: "USD+GBP" cost_bps: 5 leverage: 3 | +0.32 | +0.39 | — | +0.23 |
leverage=3, strategy=ma_cross, pairs=USD+GBP, intervention_threshold=160, cost_bps=3 r-fx-carry-jpy-crosses-0658 | pairs: "USD+GBP" cost_bps: 3 leverage: 3 | +0.40 | +1.07 | — | -0.71 |
leverage=3, strategy=combined, pairs=USD+GBP, intervention_threshold=160, cost_bps=1 r-fx-carry-jpy-crosses-0717 | pairs: "USD+GBP" cost_bps: 1 leverage: 3 | +1.14 | +3.81 | — | -0.85 |
leverage=5, strategy=carry, pairs=USD+GBP, intervention_threshold=158, cost_bps=5 r-fx-carry-jpy-crosses-0776 | pairs: "USD+GBP" cost_bps: 5 leverage: 5 | +1.34 | +3.37 | — | -1.60 |
leverage=5, strategy=bollinger, pairs=USD+GBP, intervention_threshold=158, cost_bps=3 r-fx-carry-jpy-crosses-0835 | pairs: "USD+GBP" cost_bps: 3 leverage: 5 | +0.27 | +0.35 | — | +0.15 |
leverage=5, strategy=ma_cross, pairs=USD+GBP, intervention_threshold=158, cost_bps=1 r-fx-carry-jpy-crosses-0894 | pairs: "USD+GBP" cost_bps: 1 leverage: 5 | +0.50 | +1.15 | — | -0.56 |
leverage=5, strategy=combined, pairs=USD+GBP, intervention_threshold=155, cost_bps=5 r-fx-carry-jpy-crosses-0953 | pairs: "USD+GBP" cost_bps: 5 leverage: 5 | +1.10 | +3.67 | — | -0.77 |
leverage=10, strategy=carry, pairs=USD, cost_bps=1 r-fx-carry-jpy-crosses-0960 | pairs: "USD" cost_bps: 1 leverage: 10 | +1.11 | +3.36 | — | -2.06 |
leverage=10, strategy=carry, pairs=USD+GBP, intervention_threshold=155, cost_bps=5 r-fx-carry-jpy-crosses-1013 | pairs: "USD+GBP" cost_bps: 5 leverage: 10 | +1.34 | +3.38 | — | -1.52 |
leverage=10, strategy=bollinger, pairs=USD+GBP, intervention_threshold=155, cost_bps=3 r-fx-carry-jpy-crosses-1072 | pairs: "USD+GBP" cost_bps: 3 leverage: 10 | +0.33 | +0.38 | — | +0.26 |
leverage=10, strategy=ma_cross, pairs=USD+GBP, intervention_threshold=155, cost_bps=1 r-fx-carry-jpy-crosses-1131 | pairs: "USD+GBP" cost_bps: 1 leverage: 10 | +0.49 | +1.14 | — | -0.55 |
Target universe
FX pairs: USD/JPY, EUR/JPY, GBP/JPY, AUD/JPY
source: qbuntu-analysis · kabu STATION REST API + J-Quants daily bars
computed asof: 2026-08-03T01:02:38