qbuntuqbuntu
marginalno_edge· fx· carry· fx· macro

FX Carry Trade (JPY Crosses)

slug: fx-carry-jpy-crosses

FX Carry Trade (JPY Crosses) backtest. Median Sharpe across 1,200 parameter sets is +0.64. p-value is 0.12. Max DD is -32.9%. Period: 2020-08-18 to 2026-05-22. Best Sharpe +1.36 is not the representative figure.

Verdict: marginal. Some parameter set has a p-value under 0.10, but the median itself misses promising (Sharpe > 0.5 and p-value < 0.05). Primary reason: no_edge. It is not regime, frequency, or cost, and the median does not clear the bar.

What was tested

FX carry buys the higher-yielding currency and funds it with the lower-yielding one. This record is limited to yen crosses. Median Sharpe above 0.5 is still not promising unless the median p-value is under 0.05. Read Max DD with it. The interest gap can vanish at once.

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 (4)

Best grid Sharpe ratio is 1.36 (p=0.00095).
period 2020-08-18–2026-05-22; cost=1bps
sharpe_ratio1.36
Median Sharpe across 1200 grid runs is 0.63.
Full grid of 1200 parameter combinations.
sharpe_ratio0.63
Median Sharpe in DOWN regime is -0.74 across 1200 runs.
Regime=DOWN, N225 SMA20/SMA60 classification.
sharpe_ratio-0.74
Median Sharpe in UP regime is 2.31 across 1200 runs.
Regime=UP, N225 SMA20/SMA60 classification.
sharpe_ratio2.31

Runs (30)

runparamssharpeUPFLATDOWN
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-09-24T21:54:28

Related strategies