Quantitative Finance · Book 2 · Markets

Markets II: Rates, FX and Credit

Markets II: Rates, FX and Credit · Markets

18Emerging-Market FX and NDFs

For three years and four months the euro never cost less than 1.20 Swiss francs. On 6 September 2011 the Swiss National Bank had declared that it would “no longer tolerate” a lower rate and was “prepared to buy foreign currency in unlimited quantities”, and the European Central Bank’s daily reference rate, 1.1111 the day before, never again fell below 1.20. On 15 January 2015 the Swiss National Bank discontinued the floor. By the European Central Bank’s reference time that afternoon the euro was worth 1.0280 francs, 14.4% less than the day before, and a week later 0.9816. An online currency broker in New York found that its customers owed it more than their deposits and borrowed USD 300 million within a day to stay in business. Exchange rates that a government fixes, bands, or controls behave calmly for years and then do not. This chapter is about the currencies of emerging markets, and of a few rich ones, where the state stands between the buyer and the seller: convertibility and capital controls, the onshore and offshore markets they create, the non-deliverable forward that the offshore market trades, and pegs, bands and the day they break.

18.1 Convertibility and capital controls

Definition 18.1 (Convertibility, capital control)

A currency is convertible when anyone may exchange it for foreign currency, for any purpose, at a market rate. A capital control is a legal restriction on such exchanges or on the cross-border movement of money: limits on who may buy foreign currency, for what, how much, or how quickly it may leave or enter the country.

Most rich-country currencies are fully convertible. Many emerging-market currencies are convertible for trade, a company paying for imports can buy dollars, but not freely for investment: a foreign investor may need to register its purchases of local bonds, and a local resident may be limited in how much it can hold abroad. The controls exist to keep the exchange rate and domestic credit under the authorities’ control, and they have a direct consequence for markets: the currency cannot be delivered outside the country, so foreigners who want to hedge or speculate need an instrument that settles in something else.

18.2 Onshore and offshore markets

Definition 18.2 (Onshore market, offshore market)

The onshore market of a currency is the market in its own country, under its regulators and controls; the offshore market is the market outside it, among non-residents, where the currency trades on different terms or only in cash-settled form.

The renminbi shows both at once. Onshore, the renminbi (code CNY) trades in the interbank market around a central parity that the China Foreign Exchange Trade System publishes each morning for the People’s Bank of China; since 17 March 2014 the spot rate against the dollar may move up to 2% above or below it. Hong Kong, the pioneer offshore centre, trades the same currency outside those rules, as CNH, with its own spot and forward prices and its own fixing, published by the Treasury Markets Association. The two rates usually stay close, since the flows between the markets are allowed in controlled channels, and diverge when the controls bind (Figure 18.1). Their forwards imply different renminbi interest rates: an onshore–offshore basis.

One currency, three markets. The onshore renminbi trades within a band around the daily central parity; the offshore renminbi is deliverable outside mainland China at its own prices; NDFs settle in dollars against the onshore fixing. Money moves between the first two only through controlled channels, so their prices can differ. Schematic.
Figure 18.1. One currency, three markets. The onshore renminbi trades within a band around the daily central parity; the offshore renminbi is deliverable outside mainland China at its own prices; NDFs settle in dollars against the onshore fixing. Money moves between the first two only through controlled channels, so their prices can differ. Schematic.

Example 18.3 (Two forward curves for one currency)

Suppose onshore USDCNY trades at 7.1000 spot and 7.0400 three months forward, and offshore USDCNH at 7.1200 and 7.0700, with a dollar rate of 3.68%. The onshore forward implies a renminbi rate of 0.31% for 91 days, the offshore one 0.89%: a basis of 0.58 percentage points, the price of moving renminbi across the line. The onshore band that day would run from 6.9580 to 7.2420.

18.3 Non-deliverable forwards

Definition 18.4 (Non-deliverable forward, fixing source)

A non-deliverable forward (NDF) is a forward on a currency pair that is settled in cash, in dollars, for the difference between the contract rate KK and a published fixing rate SS on a fixing date: on a dollar notional NN, the dollar buyer receives N(S−K)/SN(S - K)/S. The fixing source is the rate the contract names for SS, usually a rate published by the local central bank or an official agent.

The NDF lets a foreign investor hedge, or a fund speculate on, a currency it can neither hold nor deliver: no local currency changes hands, only dollars, outside the country. Its price follows the expected fixing and the dollar rate, and so implies an offshore interest rate that can differ from the onshore one by the basis of Example 18.3. The industry’s standard terms name the fixing source for each currency and fix two business days before settlement, as in the table below.

CurrencyFixing source (EMTA code)Published by, around
Indian rupeeINR FBILFinancial Benchmarks India, 13:30 Mumbai
Brazilian realBRL PTAXBanco Central do Brasil, 13:15 São Paulo
Chinese renminbiCNY SAECCFETS for the People’s Bank, 9:15 Beijing
Korean wonKRW KFTC18Seoul Money Brokerage, 16:00 Seoul
Taiwan dollarTWD TAIFX1Taipei Forex, 11:00 Taipei
Fixing sources of five NDF currencies, each “for settlement in two business days”, in Annex A to the 1998 FX and Currency Option Definitions (as of June 2023).
The life of a non-deliverable forward. The contract rate is agreed at the trade; two business days before settlement the fixing source publishes the rate, and on the settlement date the difference is paid in dollars. Schematic.
Figure 18.2. The life of a non-deliverable forward. The contract rate is agreed at the trade; two business days before settlement the fixing source publishes the rate, and on the settlement date the difference is paid in dollars. Schematic.

Example 18.5 (A won NDF)

A fund buys USD 10 million three months forward against won in an NDF at 1 380.00, settling on Tuesday 13 October 2026. The fixing is taken two business days before, on Friday 9 October, at 1 425.50: the fund receives 10 000 000×45.50/1 425.50=USD 319 18610\,000\,000 \times 45.50/1\,425.50 = \text{USD}~319\,186. Had the won fixed at 1 350.00, the fund would have paid USD 222 222.

18.4 Pegs, bands and interventions

Definition 18.6 (Currency peg, currency band, FX intervention)

A currency peg is a policy of holding the exchange rate at a fixed level against another currency; a currency band lets it move within set limits around a central rate. An FX intervention is the purchase or sale of foreign currency by the authorities to move or hold the rate.

Hong Kong’s dollar has been linked to the US dollar since 17 October 1983; its monetary authority keeps it within a band of 7.75 to 7.85 per dollar through a currency board, which stands ready to exchange the two currencies at the edges of the band. A band like the renminbi’s is managed by the daily central parity and by intervention when the rate approaches its limits. A one-sided floor like the Swiss franc’s commits the central bank to sell its own currency without limit, which it can always do, since it can create it; a ceiling commits it to sell foreign currency, which it can do only as long as its reserves last.

As of September 2026 — Pegs, bands and fixings

Hong Kong dollar: HK$7.75 to 7.85 per US dollar under the Linked Exchange Rate System, in place since 17 October 1983. Renminbi: onshore spot within 2% of the central parity, the width set from 17 March 2014; NDF fixing CNY SAEC at about 9:15 Beijing time, offshore fixing CNY CNHHK at about 11:30 Hong Kong time (standard terms of June 2023). Swiss franc: no minimum rate since 15 January 2015.

For a trader, a credible peg makes the rate nearly riskless and its options nearly worthless, and that is the trap: implied volatility at the peg measures the market’s confidence in the policy, not the size of the move if the policy ends. The move, when it comes, is a jump.

18.5 The franc unpeg

The euro in Swiss francs, ECB daily reference rates, 2010 to 2016. After the franc’s rise of 2010–2011 the Swiss National Bank held the rate at or above 1.20 for over three years; on 15 January 2015 it let it go, and the reference rate fell from 1.2010 to 1.0280 in a day. Data: ECB Data Portal, series EXR.D.CHF.EUR.SP00.A.
Figure 18.3. The euro in Swiss francs, ECB daily reference rates, 2010 to 2016. After the franc’s rise of 2010–2011 the Swiss National Bank held the rate at or above 1.20 for over three years; on 15 January 2015 it let it go, and the reference rate fell from 1.2010 to 1.0280 in a day. Data: ECB Data Portal, series EXR.D.CHF.EUR.SP00.A.

The Swiss floor was one-sided: the Swiss National Bank promised to sell francs at 1.20 without limit, and for three years it bought euros whenever the market pushed the rate down. A trader could treat the floor as a wall: buying euros near 1.20, with a stop order a little below, looked like a trade with little to lose, and could be held with leverage. When the central bank withdrew, on 15 January 2015, and cut its deposit rate to −0.75%-0.75\% at the same time, the rate did not pass through the levels in between; it jumped. A stop order becomes a market order when its level is traded through and is filled at the next price available, which that day could be far below it. Leveraged clients could lose more than their deposits, and their brokers the rest.

Proposition 18.7 (Leverage and a jump)

A position of LL times the margin deposited loses L mL\,m times the margin when the price jumps by mm against it before any stop can be executed; the client’s balance becomes negative when m>1/Lm > 1/L, and the excess is owed to the broker.

Proof. With margin MM and position LMLM, a relative move mm loses LMmLMm, which exceeds MM exactly when Lm>1Lm > 1. ∎

A 14.4% jump turns 20-to-1 leverage into a loss of 2.88 times the margin and 50-to-1 into 7.2 times (Figure 18.4). The broker of the hook, FXCM, reported on 19 January 2015 that its clients’ debit balances had obliged its regulated subsidiaries to raise capital, and that it had borrowed USD 300 million from Leucadia on 16 January for two years at an initial 10% a year, rising to as much as 17%, to cover them.

Loss on a long EURCHF position, as a multiple of the margin deposited, for the move of the ECB reference rate from 1.2010 on 14 January to 1.0280 on 15 January 2015, if no stop was filled before the afternoon price. Above the dashed line the client owes the broker money. Data: ECB reference rates; the chapter’s tutorial.
Figure 18.4. Loss on a long EURCHF position, as a multiple of the margin deposited, for the move of the ECB reference rate from 1.2010 on 14 January to 1.0280 on 15 January 2015, if no stop was filled before the afternoon price. Above the dashed line the client owes the broker money. Data: ECB reference rates; the chapter’s tutorial.

18.6 Tutorial: NDF settlement and the onshore–offshore basis

Goal. Settle an NDF against its fixing, date the fixing, compute the interest rates implied by onshore and offshore forwards and their basis, and the loss of a leveraged position on a jump. End state: Examples 18.3 and 18.5, Figures 18.3 and 18.4 and the numbers of the weekend problem.

  1. The NDF: its settlement and its fixing date.

    def ndf_settlement(notional_usd: float, contract: float, fixing: float, buyer: bool = True) -> float:
        """Dollar amount received by the dollar buyer (paid if negative); the seller's is the opposite."""
        amount = notional_usd * (fixing - contract) / fixing
        return amount if buyer else -amount
    
    
    def fixing_date(settlement: dt.date, holidays: set[dt.date], lag: int = 2) -> dt.date:
        """The fixing (valuation) date: `lag` business days before settlement."""
        d, n = settlement, 0
        while n < lag:
            d -= dt.timedelta(days=1)
            if d.weekday() < 5 and d not in holidays:
                n += 1
        return d
    Listing 18.1. NDF settlement and fixing date. code/firm/ndf/firm_ndf.py
  2. The basis: implied local rates from each market’s forward.

    def implied_local_rate(spot: float, fwd: float, r_usd: float, days: int, dc_usd: int = 360,
                           dc_local: int = 365) -> float:
        """The local-currency rate implied by spot, forward and the dollar rate (covered parity)."""
        return ((fwd / spot) * (1.0 + r_usd * days / dc_usd) - 1.0) * dc_local / days
    
    
    def onshore_offshore_basis(spot_on: float, fwd_on: float, spot_off: float, fwd_off: float, r_usd: float,
                               days: int) -> float:
        """Offshore implied local rate minus onshore implied local rate."""
        return implied_local_rate(spot_off, fwd_off, r_usd, days) - implied_local_rate(spot_on, fwd_on, r_usd, days)
    Listing 18.2. Implied local-currency rate and the onshore–offshore basis. code/firm/ndf/firm_ndf.py
  3. Run ndf_demo.krw_ndf(), ndf_demo.cny_cnh(), ndf_demo.unpeg() and fig_ndf.py.

What to change next. Price the NDF’s value before fixing, from the NDF forward curve and dollar discounting; then compute how the basis of Example 18.3 changes the value of a three-month hedge for a foreign holder of Chinese bonds.

18.7 Build: the NDF calculator

Purpose. The miniature firm trades emerging-market currencies offshore: it needs NDF settlement amounts and fixing dates, the offshore rates implied by NDF curves, and a measure of what leverage costs on a jump.

Interface. ndf_settlement(notional_usd, contract, fixing, buyer); fixing_date(settlement, holidays, lag); implied_local_rate; onshore_offshore_basis; band(central, width); leveraged_loss(move, leverage).

Rules. Rates as local currency per dollar; settlement in dollars; fixing two business days before settlement by default; dollar rates on actual/360 and local rates on actual/365 unless told otherwise.

Acceptance tests. code/firm/ndf/tests/: zero settlement at the contract rate and the signs either side; a fixing date that skips a weekend and a holiday; an implied rate recovered from a forward built with it; the band’s limits; the leverage multiple.

Stretch. Fallbacks when the fixing source is not published (the disruption rules of the standard terms); NDF curves bootstrapped from quotes; the value of an option on a peg’s break, priced with a jump.

Sources and further reading

  • Swiss National Bank, press releases of 6 September 2011 and 15 January 2015; European Central Bank, euro reference rates (Data Portal).
  • FXCM Inc., Form 8-K, 19 January 2015 (Exhibit 99.1).
  • People’s Bank of China, announcement on the renminbi trading band, March 2014; Hong Kong Monetary Authority, Linked Exchange Rate System, and renminbi business booklet.
  • EMTA and ISDA, Annex A to the 1998 FX and Currency Option Definitions, June 2023.

18.8 Exercises

Exercise 18.1 ★

A dollar seller in the won NDF of Example 18.5: what does it receive or pay at a fixing of 1 425.50, and at 1 350.00?

Solution

Solution of Exercise 18.1.

The opposite of the buyer: it pays USD 319 186 at 1 425.50 and receives USD 222 222 at 1 350.00.

Exercise 18.2 ★

Why does a foreign fund hedge Indian rupee bonds with an NDF rather than a deliverable forward?

Solution

Solution of Exercise 18.2.

Rupees cannot be delivered offshore, and onshore hedging is restricted by the controls on who may trade and why. The NDF settles in dollars outside India against the published fixing, so the fund can hedge without moving rupees.

Exercise 18.3 ★

The renminbi’s central parity is 7.1000. Give the onshore trading band, and the Hong Kong dollar’s band.

Solution

Solution of Exercise 18.3.

6.9580 to 7.2420, 2% either side of 7.1000; the Hong Kong dollar, 7.75 to 7.85 per US dollar.

Exercise 18.4 ★★

An NDF settles on Monday 5 October 2026 and Friday 2 October is a holiday for its fixing source. When is the fixing taken?

Solution

Solution of Exercise 18.4.

Two business days before Monday 5 October, skipping the weekend and the Friday holiday: Wednesday 30 September 2026.

Exercise 18.5 ★★

In Example 18.3, what does a positive offshore-minus-onshore basis mean for a foreign investor hedging renminbi bonds offshore?

Solution

Solution of Exercise 18.5.

Offshore forwards imply a higher renminbi rate than onshore ones. An investor that hedges renminbi bonds by selling renminbi forward earns the dollar rate less the implied renminbi rate on the hedge: relative to spot, the renminbi’s forward premium is smaller offshore (7.12 to 7.07) than onshore (7.10 to 7.04), so the offshore hedge returns fewer dollars. It costs about the basis more, and capital controls keep the investor from using the onshore price.

Exercise 18.6 ★★

Why is a floor, as the Swiss franc’s was, easier to defend than a ceiling?

Solution

Solution of Exercise 18.6.

To stop its currency rising the central bank sells its own currency, which it can create without limit; it accumulates foreign reserves, a risk to its balance sheet but not a constraint. To stop its currency falling it must sell foreign currency, which runs out.

Exercise 18.7 ★★★

Coding. With the ECB data, give the lowest EURCHF reference rate between 7 September 2011 and 14 January 2015, the reference rates of 14 and 15 January 2015, and the lowest of January 2015.

Solution

Solution of Exercise 18.7.

The lowest reference rate while the floor held was 1.2008, on 1 June 2012. It was 1.2010 on 14 January 2015 and 1.0280 on 15 January; the lowest in January was 0.9816, on 23 January.

Exercise 18.8 ★★★

Find the flaw. “EURCHF one-month implied volatility is 1% with the floor in place: a long EURCHF position with a stop 2% lower risks at most 2%.” Correct it.

Solution

Solution of Exercise 18.8.

The low volatility measures the market’s belief in the floor, not the size of the move if it goes; the risk is a jump, which a stop does not limit. A stop becomes a market order and fills at the next price, which on 15 January 2015 was more than 14% lower by the afternoon reference. The position’s risk was the floor’s removal times the jump, not 2%.

18.9 Problem: The Floor that Broke

Problem 18.1

Weekend problem — a leveraged client on 15 January 2015

A retail client is long EUR 1 million against francs at 1.2010, the reference rate of 14 January 2015, with 20-to-1 leverage and a stop at 1.19. On 15 January the floor is removed; the reference rate that afternoon is 1.0280.

Part I — The position.

  1. Give the margin deposited, in francs.
  2. What loss would the stop at 1.19 have produced?
  3. Give the move to 1.0280 in percent.
  4. Give the loss at 1.0280, in francs and as a multiple of the margin.
  5. Give the client’s balance.

Part II — Why the stop failed.

  1. What is a stop order, and what does it guarantee?
  2. Why were there no buyers of euros near 1.19?
  3. Why did the floor’s calm make the leverage look safe?
  4. What did one-month implied volatility say before, and what did it miss?
  5. How would a put option on EURCHF have behaved?

Part III — The broker.

  1. Who bears the client’s negative balance at first?
  2. How did FXCM cover its clients’ negative balances?
  3. What did the loan cost?
  4. How should a broker set leverage on a pegged pair?
  5. What protects retail clients from negative balances in some jurisdictions?

Part IV — Judgement.

  1. Why do central banks abandon pegs suddenly rather than gradually?
  2. What other pegs or bands could break the same way?
  3. How would you size a position in a pegged currency?
  4. State the named result: the loss on the 20-to-1 long at the ECB reference rate of 15 January 2015.
  5. In one sentence: what is the risk of a pegged currency?
Solution

Solution of Problem 18.1.

1. 1 000 000×1.2010/20=1\,000\,000 \times 1.2010/20 = CHF 60 050. 2. 1 000 000×(1.2010−1.19)=1\,000\,000 \times (1.2010 - 1.19) = CHF 11 000, had it filled at its level. 3. 1−1.0280/1.2010=14.4%1 - 1.0280/1.2010 = 14.4\%. 4. CHF 173 000, 2.88 times the margin. 5. −-CHF 112 950: the client owes the broker that amount. 6. An order to sell once the price trades at or below its level; it then becomes a market order and guarantees execution, not the price. 7. Everyone who had relied on the floor wanted to sell euros at once, and buyers stepped away until they could judge where the rate would settle. 8. Years of trading just above 1.20 made the downside look capped; the leverage was sized for the observed volatility, not for the policy’s end. 9. Low, reflecting the floor’s credibility; it missed the size of the jump if the floor went, because that risk is not continuous. 10. A put struck near 1.20 was cheap before and paid about 17 centimes per euro that afternoon: it would have covered the loss where the stop failed. 11. The broker, which owes its own counterparties for the client’s losing positions whether or not the client pays. 12. With a USD 300 million two-year loan from Leucadia, agreed on 16 January 2015, whose proceeds replaced the capital of its regulated entities. 13. An initial 10% a year, rising by 1.5 points a quarter to at most 17%, with covenants and mandatory prepayments. 14. By the jump the policy’s end could cause, not by recent volatility, and with margin that covers it. 15. Negative-balance protection, where a regulator requires it of retail brokers for leveraged products: client losses are capped at the deposit. 16. A gradual exit would be anticipated and attacked; a surprise avoids buying unlimited foreign currency in the days before, at the cost of a jump. 17. Any one-sided commitment: other currency floors and ceilings, pegs defended with limited reserves, and bands managed close to their limits. 18. By the loss if the peg breaks, sized from the jump and the capital one can lose, not from the pegged rate’s volatility. 19. Named result: the floor that broke cost the 20-to-1 long 2.88 times its margin, CHF 173 000 on EUR 1 million at the ECB reference rate of 15 January 2015, leaving the client CHF 112 950 in debt. 20. It is calm until the policy ends, and then it jumps.

18.10 Interview questions

Interview question 18.1 ★ trader, developer

What is an NDF, and how is it settled?

Solution

Solution of Interview question 18.1.

A forward on a currency pair settled only in dollars, for the difference between the contract rate and a fixing published two business days before settlement: the dollar buyer receives N(S−K)/SN(S-K)/S. It exists for currencies that cannot be delivered offshore.

What the interviewer is looking for: cash settlement against a named fixing, and why it exists.

Interview question 18.2 ★ trader, researcher

Why can the onshore and offshore renminbi trade at different prices?

Solution

Solution of Interview question 18.2.

Capital controls separate the markets: money cannot move freely between mainland China and Hong Kong, so onshore and offshore supply and demand can differ, and arbitrage through the permitted channels is limited in size. The difference widens when flows are one-sided and the channels bind.

What the interviewer is looking for: the controls and the limits to arbitrage.

Interview question 18.3 ★★ researcher

How would you price an option on a currency whose peg may break?

Solution

Solution of Interview question 18.3.

As a mixture: a diffusion around the peg with low volatility, plus a jump of uncertain size at a random time whose intensity reflects the policy’s credibility (a jump-diffusion). Calibrate the jump intensity and size to risk reversals and far out-of-the-money options, which price the break; the at-the-money volatility says little.

What the interviewer is looking for: a jump component, and where its parameters come from.

Interview question 18.4 ★★ bank, trader

What went wrong for leveraged traders and brokers on 15 January 2015?

Solution

Solution of Interview question 18.4.

Positions sized for a calm, capped market met a 14% jump; stops filled far below their levels; leveraged clients lost more than their deposits, and brokers who could not collect the debit balances had to raise capital or failed. Risk models had used recent volatility rather than the event.

What the interviewer is looking for: jump risk, failed stops, leverage and counterparty loss.

Interview question 18.5 ★★ trader

A client asks to hedge USD 100 million of Brazilian bonds. How do you structure it, and what can go wrong at the fixing?

Solution

Solution of Interview question 18.5.

Sell reais forward against dollars with NDFs against the PTAX fixing, rolled or matched to the bonds’ horizon; check onshore versus offshore pricing and the basis. At the fixing: publication delays or disruptions (the standard fallbacks apply), a fixing that differs from the rate at which the bonds are sold, and the basis moving against the hedge.

What the interviewer is looking for: NDF against the named fixing, basis, and fixing risk.

Interview question 18.6 ★★★ developer, bank

Design the risk system of a retail FX broker so that a move like that of 15 January 2015 does not threaten its solvency.

Solution

Solution of Interview question 18.6.

Margin by stress scenarios as well as by volatility: jumps on pegs and after known events, applied pair by pair; leverage caps per client and pair; concentration limits on crowded positions; hedge the aggregate client book with liquidity providers and model the provider’s own gaps; capital sized to the worst scenario’s uncollectable debit balances; negative-balance protection priced in; real-time monitoring with automatic de-risking before scheduled events.

What the interviewer is looking for: scenario margin, leverage caps and capital for gap risk.

Terms defined in this chapter

See all 2333 terms in the glossary