I implemented the one factor Hull White model for educational purposes and I calibrated the model from a given (made up!) yield curve:

Yield curve

The Zero Coupon Bond Prices from this yield curve are:

Zero curve

Taking the log of the bond prices and use cubic splines for interpolation gives:

enter image description here

Calculating the instantaneous forward rates from the curve above using

$$ f^M(t) = -\frac{\partial \operatorname{log}P(t)}{\partial t} $$

where i use the first derivative of the cubic spline at time $t$ to calculate $\frac{\partial \operatorname{log}P(t)}{\partial t}$ results in

enter image description here

(blue are the forward rates, orange is the original yield curve)

When I calculate the Bond prices from the model I get the following result:

Model yield curve

The orange line are the bond prices from the model, the blue dots are the original bond prices.

My questions:

  • The forward curve has quite a swing. Is there a problem / fault in my approach?
  • Is it plausible that the model prices (last image) differ that much from the data I used for calibration?

The whole jupyter notebook is available here: https://nbviewer.jupyter.org/gist/wpla/435437ddc5bcb1f6bdcae274117725e7


1 Answer 1


The derivative of the bond prices is very sensitive to the interpolation mode. actually, if you use a linear interpolation mode, you will have some cases for which the right derivative is different from the left derivative at a given point.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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