What is the best way to simulate the short rate $r(t)$ in a simple one factor Hull White process? Suppose I have

$$ dr(t) = (\theta(t)-\alpha r(t))dt+\sigma dW_t $$

where $\theta(t)$ is calibrated to swap curve, constants $\alpha$ and $\sigma$ are calibrated to caps using closed form solution for zero-coupon bond options. The best way I can think to do it is an Euler discretisation, that is:

$$ r(t+\Delta t) = r(t) + \theta(t)\Delta t - \alpha r(t) \Delta t + \sigma \sqrt {\Delta t} Z $$ where $Z \sim N(0,1)$. In this case, I need $t$ to go from 0 to 10 years, ideally in 0.25 increments. But with Euler, I'd need to use small $\Delta t$, so perhaps 0.025 or less? Once I have string of $r(t)$, I can easily calculate $P(t,T)$ zero coupon bonds.

Appreciate any other ideas or if someone could point me in the right direction. I'm quite new to rates modelling!

  • $\begingroup$ Sorry but your question is milseading. It is not clear whether it is about the diffusion scheme or the calibration. Could you maybe clarify? $\endgroup$ – byouness May 15 '18 at 12:30
  • In fact you can calibrate $\theta(t)$ piecewise constant and $\alpha$ and $\sigma$ to bond prices only. You don't need the swaption prices in mM. If you let $\sigma(t)$ depend on $t$ (this is called the generalized Hull-White model) then you need information about the options market.
  • For the model as you write it you don't necessarily need MC to calculate zero-coupon bond prices and thus discount factors. It is not that easy but following procedures as described here could help.
  • if you stick to MC: For $\Delta t$ I would use it small like $1/250 \approx 0.004$. This is one time-step per banking-day. You should be able to simulate many paths with all the $10*250=2500$ random variables. Without digging into the theoretical aspects of choosing the step-size. If this takes too long then double the step size $\approx 0.008$. Maybe much bigger steps work too. But this looks natural to me.

A remark: if there were no mean-reversion then I would use much bigger step-sizes. You could take steps up to the coupon dates. But in order to feel mean reversion I would keep the step size small. Another thing is negative rates. In HW you can have them and they exist in reality these days. Again: mean reversion to a non-negative $\theta(t)$ will keep rates positive most of the time if $\Delta t$ is small.

  • $\begingroup$ Thanks, this is somewhat helpful. I ended up purchasing Brigo & Mercurio's book. It gives closed form solution for the conditional distribution of $r(t)$ given its filtration. $\endgroup$ – crunch Feb 12 '14 at 15:36
  • $\begingroup$ But this is not what you need. You need $E[\exp(-\int_t^T r_u du)|F_t]$ - this is the discount factor. You should find something like this there. $\endgroup$ – Ric Feb 13 '14 at 8:03
  • $\begingroup$ What about approximating $\int_t^T r_u du$ with $r_t \Delta_t$ as long as $\Delta_t$ remains reasonable? $\endgroup$ – crunch Feb 13 '14 at 12:55
  • $\begingroup$ Yes ... this should work. I have never implemented this, but it's worth trying. $\endgroup$ – Ric Feb 13 '14 at 14:12

Once the single-factor Hull-White model is calibrated, you can compute zero-coupon bond prices in closed form (i.e., without running simulations). See http://en.wikipedia.org/wiki/Hull%E2%80%93White_model#Analysis_of_the_one-factor_model .


Note that you can also use trees instead of running monte carlo (if a closed form solution is not avaliable)

As far as I know it is even an industry standard to work with the Hull-White tree instead of monte-carlo.

For mote informiation you can have a look at the paper: USING HULL-WHITE INTEREST-RATE TREES


Coming across the post somewhat late: I attempted the same, and had Bloomberg caplet data for calibration (6mth EURIBOR) at hand. I calibrate directly via MC simulation (Euler, as suggested by crunch): Starting off with current 6mth EURIBOR, choosing $\theta(t)$ to match curve implied forward 6mth EURIBOR, forward-stepping until the first caplet expiry and computing payoffs. I then vary sigma for this interval to match the caplet premium accurately. To match the next caplet premium, I start off the MC with the realizations of 6mth EURIBOR at the first caplet expiry. Again, varying sigma for the second interval until the second caplet premium is matched etc.

Perhaps not overly elegant (investing a bit of time, one may find an analytic way to work out the piecewise-constant $\sigma$ from Ornstein-Uhlenbeck formulae), but it is stable and matches caplet prices very well. For calibrating a ten-year cap on my laptop, and running the MC in Matlab, about 10s computation time will do.

  • $\begingroup$ 1) There's analytic formula for caplet prices in the Hull-White model, so you can avoid MC when doing calibration. 2) there are exact solutions for $r(t)$ and $\int_0^t r(s)ds$, which allows you to simulate over any horizon exactly. The caveat is that you need to simulate the short rate and integrated short rate as individual, but correlated processes. It's described very well in this paper $\endgroup$ – Olaf Jun 11 '17 at 15:15
  • $\begingroup$ Thanks for this ! I have not had much time to look at the paper, but a quick glance suggests that the author has only considered a global value for $\sigma$. I am instead faced with the problem of having to calibrate a process with $\sigma(t)$, this is why i chose my rather more complicated approach. I think, one could adapt the analytic results to my situation but that would require substantially more research, I think $\endgroup$ – ZRH Jun 17 '17 at 7:13
  • $\begingroup$ Old answer, even older question, but recently I came across piecewise constant $\sigma$ and my findings match your comment about matching caplet prices. $\endgroup$ – crunch May 24 '18 at 14:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.