Normal-Volatility Swaption Pricing and Payer–Receiver Parity
Summary
This discussion addresses European swaption pricing under normal volatility, including how to derive a receiver swaption value from a payer value and whether an at-the-money strike equals the forward swap rate. The answer identifies the Bachelier formula as the standard normal-volatility pricing framework and uses payer–receiver put-call parity to relate the two option values through the discount factor, forward rate, and strike.
The reply states that the implementation shown by the questioner appears consistent with a cited reference, but it does not reproduce or independently verify the implementation. The explanation is concise and does not cover annuity conventions, swaption-specific cash-flow details, or calibration; it presents parity as the key relationship for obtaining the receiver price.
Key ideas
- The Bachelier formula is used to price swaptions under normal volatility.
- Payer and receiver swaption prices are related by put-call parity.
- The parity relationship depends on the discount factor, forward swap rate, and strike.
- An at-the-money swaption conventionally uses a strike equal to the forward swap rate.
Tags
Full text
# European Swaption Pricing Using Normal volatilities # European Swaption Pricing Using Normal volatilities On page 6 of this paper a forumla is given for payer swaptions, I am just wondering what is the formula for receiver? My implementation of the formula for payer and receiver is here, but I am not very sure about it. Also to get ATM swaption, does that mean the forward swap rate is equal to the strike price? ## Answer by jherek (score 4) https://quant.stackexchange.com/a/49829 The formula for pricing a swaption under normal volatility is simply the Bachelier formula. It may be found in many papers (for example, Le Floc'h Fast and accurate basis point volatility), and is also on stackoverflow. You can easily move from a payer ($C$) to a receiver ($P$) by using the put-call parity relationship: $$ C(t) - P(t) = B(t,T) (F(t,T)-K)\,,$$ where $B$ is the discount factor to maturity, $F$ the forward rate, $K$ the strike. The formula in your python code looks correct to me, in accordance with the first reference.
Shown 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.