Calibrating a Binomial Interest Rate Tree for Bond Pricing
Summary
The document explores how to price bonds from a yield curve and observed market prices using a binomial interest rate tree. It proposes using a Nelson–Siegel curve as the starting term structure, then calibrating short rates across tree steps. The formulas discount coupon and principal cash flows along possible paths and impose equal probabilities, while adjacent node rates are linked by a volatility parameter, sigma.
The question focuses on whether the equations for the second and third steps are correctly specified, how to extend the rate relationships programmatically to later nodes, and how to estimate sigma. The text supplies proposed equations but no solution, calibration results, or validation against market prices. It also leaves key modeling choices and conventions unresolved, so it serves as a problem statement rather than a complete pricing procedure.
Key ideas
- A binomial short-rate tree can be calibrated to a market yield curve and bond prices.
- The proposed framework discounts bond cash flows across rate paths using equal path probabilities.
- A volatility parameter governs spacing between neighboring rates in the tree.
- The document raises questions about extending the tree and estimating volatility but does not resolve them.
Tags
Full text
# Bonds with embedded options pricing via binomial model
# Bonds with embedded options pricing via binomial model
Notation:
t - time; G(t) - zero-coupon yield curve; $r$, $r_d$, $r_u$ - interest rates.
The task is to find market price of a bond for today, while knowing the price of a number of other bonds.
Nelson-sigel model provides interest rate curve G(t). The next thing to do is to calibrate interest rate binomial tree using G(t). Also are known bond cash flow, par value and today market price.
The problem is how to do it properly. The start yield is given by G($t_1$), where $t_1$=0.25 (step for binomial model).
$100=\frac{1}{2}(\frac{100*G(t_2 )}{1+G(t_1)} +\frac{100*G(t_2 )+100}{(1+G(t_1))*(1+r_u )} + \frac{100*G(t_2 )}{1+G(t_1)} +\frac{100*G(t_2 )+100}{(1+G(t_1))*(1+r_d )})$
$r_u= r_d*exp(2*σ)$
$t_2 = 2*t_1$
These conditions provide $r_d$, $r_u$ for the second step of i.r. tree.
Is the next set of conditions for $r_{dd},r_{du},r_{uu}$ correct?
$1= \frac{1}{4} (\frac{G(t_3)}{1+G(t_1)}+\frac{G(t_3)}{(1+G(t_1))(1+r_d)}+\frac{(G(t_3)+1)}{(1+G(t_1))(1+r_d)(1+r_{dd})}) + \frac{1}{4}(\frac{G(t_3)}{1+G(t_1)}+\frac{G(t_3)}{(1+G(t_1))(1+r_d)}+\frac{(G(t_3)+1)}{(1+G(t_1))(1+r_d)(1+r_{ud})}) + \frac{1}{4}(\frac{G(t_3)}{1+G(t_1)}+\frac{G(t_3)}{(1+G(t_1))(1+r_u)}+\frac{(G(t_3)+1)}{(1+G(t_1))(1+r_u)(1+r_{ud})}) + \frac{1}{4}(\frac{G(t_3)}{1+G(t_1)}+\frac{G(t_3)}{(1+G(t_1))(1+r_u)}+\frac{(G(t_3)+1)}{(1+G(t_1))(1+r_u)(1+r_{uu})})$
$r_{du}= exp(2*σ) r_{dd}$
$r_{uu}= exp(2*σ) r_{ud}=exp(4*σ) r_{dd}$
$t_3=3*t_1$
Is there an easy way to define $r_{uuu}$, $r_{uuuu}$ and other interest rates (yields), so it would be possible to do it programmatically?
What are the ways to correctly determine σ?
I'm heavily relying on ideas used in this presentation:
http://faculty.cbpa.drake.edu/root/Auvergne/DESS%20Analyst%20Binomial.pptShown 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.