Bootstrapping Hull–White Volatility from Caplet Prices
Summary
The document explains how to calibrate a time-varying volatility term structure in the Hull–White interest-rate model to caplet prices. It proposes piecewise-constant volatility, with a time interval ending at each caplet expiry. Since each caplet’s model-implied volatility depends on volatility over the entire period from the present to expiry, calibration proceeds sequentially: solve the first interval’s volatility, then use that known value while solving each later interval.
Mean reversion requires a separate choice. It can be fixed using external judgment or estimated alongside a constant volatility by minimizing pricing errors across the calibration instruments, before bootstrapping the term structure. The method relies on the stated caplet pricing relationship and a chosen set of calibration instruments; the response does not prescribe a universally correct mean-reversion value or discuss alternative optimization methods.
Key ideas
- Represent Hull–White volatility as piecewise constant over intervals ending at caplet expiries.
- A caplet’s implied volatility depends on the model volatility path up to its expiry.
- Bootstrap the volatility pillars in expiry order, keeping earlier calibrated values fixed.
- Choose mean reversion separately or estimate it with constant volatility before bootstrapping.
- The calibration matches selected caplet prices but does not determine a universally correct mean-reversion input.
Tags
Full text
# Hull-White calibration volatility as a function of time
# Hull-White calibration volatility as a function of time
I need some help for the parametrization of the volatility parameter in the Hull-White model.
I have the necessary Caplet vols and I calibrated the HW model to match the Caplet and hence the Cap prices exactly.
But I calibrated the volatility as one factor for every Caplet. I didn't parametrize the volatility as a function of time for each T.
That could be the reason why my volatility is always higher than the volatility of the previous Caplet. I do not get a proper volatility term structure that is consistent with the market volatility structure, though my prices fit exactly.
I posted already something here: Cap price as bond options
The topic was a different (more fundamental) one, but the answer I am refering now to is that:
> Hull-White calibration on cap volatilities The first step is to strip caps vol to get caplet vols. See for example: http://www.smileofthales.com/financial/cap-floor-pricing-stripping-the-basics/ Let's suppose you want to calibration on caplets with expiries T1 You start with the option with the nearest expiry T1, then determine the volatility σ(T1) that enables you to match the T1 caplets price. Then, you move on to T2, the caplet price is a function of σ(T1) that is already known and σ(T2), so you determine the value of σ(T2) enabling you to match the T2 and so on, until you get to Tn, and you are done.
In the Hull-White paper from 2000 they provide this information about calibrating the vol parameter:
Now I am kind of confused.
1) How do I set up the parametrized volatility function and what do I calibrate for? For the time parameter or the other two parameters?
2) This would yield in always same parameters and just the Time is changing? Do i then calibrate the T?
3) What are the corner points in time? I want to calibrate to each Caplet. Are my T the points in time for the Caplets? Starting with 0.5 for the first Caplet (6month tenor) and then going on to 1 - 1.5 - 2.0 - 2.5 and so on until every Caplet is calibrated?
I am really confused and would appreciate If some could serve me a fundamental great answer about the parametrization.
I hope you can help me.
Thanks in advance
## Answer by byouness (score 1)
https://quant.stackexchange.com/a/50129
In the question you are referring to, we have established that the caplet has a closed-form formula under Hull-White model, with the Black implied volatility $\Sigma$ a function of the Hull-White volatility $\sigma$ term structure from 0 and until the caplet's expiry $T$: $$ \Sigma^2(0,T)=B(T,T+\delta)^2\int_0^T e^{−2a(T−u)}\sigma^2(u)du $$
To calibrate on a basket of caplets, with expiries $0 < T_1 < T_2 < \dots < T_n$, you can choose a piecewise-constant term structure for the Hull-White volatility, with pillars corresponding to these expiries $(T_i)_i$. That is: $$ \sigma(t) = \sigma_i, \quad T_{i-1} < t \leq T_i $$
In this case, you can use a bootstrap procedure to calibrate each value $\sigma_i$ on a calibration instrument. In the first step, only $\sigma_1$ is unknown, and you solve for it: $$ \begin{aligned} \Sigma^2_\text{market}(0, T_1) &= \Sigma^2(0, T_1) \\ &= B(T_1, T_1 + \delta)^2 \sigma_1^2 \int_0^{T_1} e^{-2a(T_1 - u)}du \end{aligned} $$ Then, you move on to $T_2$, and solve for $\sigma_2$: $$ \begin{aligned} \Sigma^2(0,T_2)_\text{market} &= \Sigma^2(0,T_2)\\ &=B(T_2,T_2+\delta)^2\left[\int_0^{T_1}e^{−2a(T_2−u)}\sigma^2(u)du+\int_{T_1}^{T_2}e^{−2a(T_2−u)}\sigma^2(u)du \right] \\ &=B(T_2,T_2+\delta)^2 \left[\sigma^2_1 \int_0^{T_1}e^{−2a(T_2−u)}du+\sigma^2_2 \int_{T_1}^{T_2}e^{−2a(T_2−u)}du \right] \end{aligned} $$ and so on...
But what about the mean-reversion?
It depends on what you want to use your Hull-While calibrated model for, but two possibilities come to mind:
- Input a mean reversion value (determined for example statistically from the observation of rates time-series, or using macro-economic reasoning, etc.);
- or, Before doing the routine above, consider the volatility constant and calibrate the mean-reversion and constant vol that minimize the sum of squared errors accross all your calibration basket. Then use this mean-reversion in the bootstrap routine described above.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.