Skip to main content
Back to Tutorial
IntermediateFXFundamental8 min readUpdated 2025-12-14

USD/CNY Carry · when a factor ages

A classic FX carry trade, now gated by PBOC fixing behaviour. A case study in what happens when central banks decide a factor is inconvenient.

This template is a teaching case, not a recommendation. It shows what happens when a working factor meets an intervention-willing central bank.

Fork the template to follow along:
TemplateFXFundamental
USD/CNY Carry · NDF

Roll-down carry on 3M NDF, fixing-gated

Sharpe
0.82
Return
+7.9%
Max DD
−11.2%
Forks
18

Why this works

FX carry harvests the forward premium when interest rate differentials persist — classic uncovered interest parity violation. What makes this a teaching case is that it stopped working as cleanly post-2018 due to PBOC counter-cyclical adjustment: the signal is intact, but the regime gating is what determines whether you make money. Great material for learning when a factor ages.

Common pitfalls

  1. Ignoring fixing intervention. PBOC smooths CNY fixing against the USD — your carry can be wiped out by a single adjustment.
  2. Using spot-implied yields instead of NDF-implied yields. They diverge by 30–80 bp in stressed regimes.
  3. Treating the 2014–2017 regime as representative. Post-2018 the strategy needs heavier gating.

Try it yourself

Fork the template into your workspace. The entire configuration — code, parameters, backtest window, cost model — lands in a new private session. Tweak it, break it, and see how robust the edge actually is.

Backtest result

Sharpe
0.82
Return
+7.9%
Max drawdown
−11.2%
Win rate
+54.1%
Trades
48
Days
900

Equity curve

Strategy
Benchmark

Enter long NDF carry when rate differential > 220bp and fixing deviation < 1.5%. Roll monthly.

Ready to learn?

Fork it into your workspace.

The whole template — code, parameters, backtest config — lands in a new private session. Tweak it, run it, break it, learn.