Interest Rates#
A series on how interest rate curves and rate options are built, priced and controlled, from a discount curve to European and Bermudan swaptions and a range accrual, with Python examples that run on the same curve throughout. It is written from a valuation control perspective, so each page ends with what to check.
Questions this series answers:
How is a discount curve bootstrapped from swap rates, and what does interpolation change?
How do a global solver, the Jacobian and multiple curves extend the basic bootstrap?
How does the Black-76 model price a swaption, and what is a normal volatility?
What is the volatility smile, and how does SABR describe it?
How does Hagan’s approximation turn SABR parameters into a Black volatility, and where does it fail?
Why does a Bermudan swaption need a model of the whole curve, and what does mean reversion do to its price?
How is a range accrual priced from digitals, what is pin risk, and how does a wedge smooth it?
Which model suits which product, and what does each one leave out?
The examples are in order. Each script imports the previous one, so they must stay in the same folder. The figures are drawn by make_plots.py in the same folder, which needs matplotlib in addition to numpy and scipy. Run it from that folder to refresh the images.
- Interest Rate Curve Build
- Curve Build, Part 2: Jacobians, Global Solvers and Multi-Curve
- Swaptions and the Black-76 Model
- SABR: Modelling the Volatility Smile
- Hagan’s Approximation: From SABR to a Black Volatility
- Bermudan Swaptions and Mean Reversion
- Range Accruals, Digitals and the Wedge
- European, Bermudan and Range Accrual: Which Model for Which Product