Quantitative Finance Stack Exchange is a question and answer site for finance professionals and academics. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a yield curve constructed using linear interpolation with data points every 3-months for US treasuries.

I would like to use that calibrate a Ho-Lee model, but I can't wrap my head around how to calibrate theta.

Is there any implementation that I could use (preferably matlab, r or c++) or a detailed description of the algorithm that I could use for reference? I have found some notes on the optimal form of theta*, but it's described in continuous rather than discrete terms, so it's of limited use in my case.

share|improve this question

Given the Ho-Lee interest rate model of the form \begin{align*} dr_t = \theta_t dt + \sigma dW_t, \end{align*} the price at time $t>0$ of a zero-coupon bond, with maturity $T$ and unit face, has the form \begin{align*} B(t, T) &=E\Big(e^{-\int_t^T r_s ds} \mid r_t \Big)\\ &=e^{-(T-t)r_t - \int_t^T (T-u)\theta_u du + \frac{\sigma^2}{6}(T-t)^3}. \end{align*} See this question for the details. In particular, \begin{align*} B(0, t) = e^{t\, r_0 - \int_0^t(t-u)\theta_u du + \frac{\sigma^2}{6}t^3}. \end{align*} Moreover, \begin{align*} \theta_t = \sigma^2 t - \frac{\partial^2 \ln B(0, t)}{\partial t^2}, \end{align*} which can be computed piecewise-analytically based on the interpolation scheme of the yield curve.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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