How FX Forward Points Relate to Overnight and Tomorrow-Next Swaps
Summary
The document clarifies that overnight (ON) and tomorrow-next (TN) FX quotes refer to swaps with two settlement dates, rather than ordinary forward tenors. ON exchanges the base currency between today and tomorrow; TN exchanges it between tomorrow and the following business day. A swap therefore has near and far legs in opposite directions. The discussion also explains that spot convention matters: for a currency pair settling spot in two business days, the TN far leg reaches the spot date.
Longer dated tenors are described as outright forwards, which commit both sides to exchange currencies at the agreed rate on the expiry date. The answer gives bid and ask construction rules for deriving ON and TN outrights from spot and swap points, including the use of opposite quote sides for the swap legs, and illustrates them with sample figures. These conventions depend on settlement calendars, market direction, and quote side; the example should not be treated as a universal calendar or pricing rule.
Key ideas
- ON and TN quotes represent swaps with two settlement dates, not single dated forward contracts.
- An FX swap exchanges the base currency on near and far dates in opposite directions.
- Longer dated forward outrights create an obligation to exchange currencies at expiry at the agreed rate.
- Bid and ask outrights for ON and TN combine spot and swap points using opposite sides for the two legs.
- Settlement calendars and quote conventions affect how short dated FX trades are interpreted.
Tags
Full text
# Understanding FX forward points and market usage
# Understanding FX forward points and market usage
I've been trying to make sense of how the FX forward market works. Let's say today is June 13, 2022. And we have the next market info as seen in Bloomberg for the FX cross between USDMXN, assuming mid values for simplicity.
| T | Dates | Fwd |
| ON | june 14 | 20.4579 |
| TN | june 15 | 20.4609 |
| SP | june 15 | 20.4640 |
| 1W | june 22 | 20.4883 |
| 2W | june 29 | 20.5163 |
I'd like to be clear in what these info means in terms of a contract and payoff.
For example if I have $100,000 usd.
ON : Does it mean I could buy today 100,000USD at 20.4579 MXN, but tomorrow I would have to sell those 100,000USD at tomorrow's spot? So the 20.4579 is a cash FX rate?
TN : Does it mean I could buy tomorrow 100,000USD at 20.4609 MXN, but the day after tomorrow I would have to sell those 100,000USD at t+2 spot? 20.4609 is a next business day from today rate?
Are these two, more of a swap exchange with legs in different days more than just a simple forward like the ones below?
SP: I get that these is just the spot value.
1W and the longer tenors: Are these just the value of the forward price? For example in the 1W I could buy/sell those 100,000 usd at 20.4883? But no obligation to sell/buy them later like in the first cases?
Thanks to everyone who might help with their experience and knowledge.
## Answer by AKdemy (score 6)
https://quant.stackexchange.com/a/71306
There are two relevant sections on the help page, the direct links (e.g. if you have it in an IB) look like this:
- {LPHP FRD:0:1 2898067 }:
ON ("Overnight"), TN ("Tomorrow-Next"), and SN ("Spot-Next") are not tenors; they are swaps. Each are associated with two separate settlement dates, one for each leg: • ON is the swap between TOD and TOM. • TN is the swap between TOM and the following business day (which is spot in a T+2 currency).
- {LPHP FRD:0:1 612124 }:
Certain rules apply when calculating two-day settlements for Overnight (ON) and Tomorrow Night (TN) outrights. Two-Day Settlement Outright Calculations • ON bid outright: spot bid - TN ask points - ON ask points • ON ask outright: spot ask - TN bid points - ON bid points • TN bid outright: spot bid - TN ask points • TN ask outright: spot ask - TN bid points
The special rule for US holidays mentioned on the help page refers to days where there is a US holiday only (e.g. independence day or last Friday). On these days, there is no TN quote (see for example 07/03/19) and FRD displays no values (blank).
Longer tenors are classic forward outrights. They are an obligation to buy/sell at the agreed rate (the forward rate) at the date of expiry. That is why you simply add the forward bid to spot bid in these cases, whereas in the ON and TN case, you cross bid and ask because you have two opposite transactions.
Within Bloomberg, you can use OVML to see the difference between a foward (OVML FWD) and a swap (OVML SW). The standard forward has one leg (left hand side is FRD, right hand side OVML FWD). The asterisk (*) next to the side (ask for the 3m forward example) refers to the side of the market that the user is on (by default the client, not the bank / market maker). The generic rule is BBBB (bank buys base at bid), which means the bank is buying the base currency (CCY1 in a CCY1CCY2 quote, so EUR in EURUSD) at the bid. Insofar, if a client buys, the banks sells at ask.
We can also quickly manually compute the values using the formulas above (I am using Julia).
```
import DataFrames, PrettyTables, Statistics # import relevant packages
# define market data from screenshot (only forward points and Spot)
SP_bid = 1.0441
SP_ask = 1.0447
ON_bid = 0.304
ON_ask = 0.556
TN_bid = 0.666
TN_ask = 0.722
# define fwd_scale
fwd_scale = 10^-4
# compute results according to formulas
ON_Ask_Outright = SP_ask - (TN_bid + ON_bid)*fwd_scale
TN_Bid_Outright = SP_bid - TN_ask*fwd_scale
TN_Ask_Outright = SP_ask - TN_bid*fwd_scale
ON_Bid_Outright = SP_bid - (TN_ask + ON_ask)*fwd_scale
# create DataFrame
tenors = ["ON","TN","SP"]
df = DataFrame(Tenors = tenors)
df[!,"Pts Bid"]=[ON_bid, TN_bid, SP_bid]
df[!,"Pts Ask"]=[ON_ask, TN_ask, SP_ask]
df[!,"Fwds Bid"] = [ON_Bid_Outright, TN_Bid_Outright, SP_bid]
df[!,"Fwds Ask"] = [ON_Ask_Outright, TN_Ask_Outright, SP_ask]
# display results
PrettyTables.pretty_table(df, border_crayon = Crayons.crayon"blue", header_crayon = Crayons.crayon"bold green", formatters = ft_printf("%.7f", [2,3,4,5]))
```
The swap on the other hand has two legs (near and far) in opposite directions.
ATMF for ON and TN is identical due to OVML rounding values to 4 decimals and displaying MID as can be seen below.
```
ON_Mid_Outright_OVML = round(Statistics.mean([ON_Bid_Outright, ON_Ask_Outright]), digits = 4) # OVML displays ATMF rounded
TN_Mid_Outright_OVML = round(Statistics.mean([TN_Bid_Outright, TN_Ask_Outright]), digits = 4)
SP_Mid_Outright = round(Statistics.mean([SP_bid, SP_ask]), digits = 4)
df[!,"Mid rounded"] = [ON_Mid_Outright_OVML, TN_Mid_Outright_OVML , SP_Mid_Outright]
PrettyTables.pretty_table(df, border_crayon = Crayons.crayon"blue", header_crayon = Crayons.crayon"bold green", formatters = ft_printf("%.7f", [2,3,4,5]),highlighters = (hl_value(1.0443)))
```
## Answer by nbbo2 (score 2)
https://quant.stackexchange.com/a/76432
Your wrote
```
ON : Does it mean I could buy today 100,000 USD at 20.4579 MXN,
but tomorrow I would have to sell those 100,000 USD ... ?
```
No, it is the opposite. By convention a swap moves the base currency from an earlier date to a later date. If you "do" or "buy" the ON spread you will be selling the USD today and buying it tomorrow.
So what do you do if you need USD today? First you will buy spot USD, giving you access to USD two days from now, then you will reverse or sell the TN spread and also sell the ON spread to send the USD backwards in time, in two steps. This explains the "special rules" for ON and TN outrights mentioned above, which hit the bid side of these two spreads (and the ask side of Spot).
HTHShown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.