I am using Quantlib python to calibrate HW 1f model parameters from normal swaption vols quoted in the market (following the code in the cookbook - I fit both the mean-reversion & vol to market quotes)

I see the HW 1f vol is an average of the market implied vol term structure (for given expiry and different maturities for example) and fits very poorly to all the quotes.

What's a recommended approach/model to match the vol term structure observed from ATM swaption vols? Does Quantlib support any other advanced models?

Thanks, Sumit


1 Answer 1


You will need a time-dependent volatility function rather than a constant volatility, typically a piece-wise constant volatility function is used and can reproduce the swaption vols exactly (presuming you are calibrating on a vertical or diagonal).

I'm not sure there is an implementation of the piecewise constant vol HW in QuantLib, hopefully someone can correct if I'm wrong. You may need to extend the sigma function to be time-dependent.

  • $\begingroup$ Thanks. Is the piece-wise constant vol function constant across maturities (t_maturity) or is it constant for: t_maturity - t_expiry). Is there a paper with some implementation (any language) that you can refer? Thanks $\endgroup$
    – sumit_uk1
    Oct 29, 2021 at 13:17
  • $\begingroup$ Piecewise constant across maturities. Please see people.kth.se/~aaurell/Teaching/SF2975_HT17/… $\endgroup$ Oct 29, 2021 at 18:38
  • 1
    $\begingroup$ To complete @BrownianBread's answer, in QuantLib, you can use the GSR (Gaussian Short Rate) model which is the same thing as the one-factor Hull-White model, described here: papers.ssrn.com/sol3/papers.cfm?abstract_id=2246013. The piecewise-constant volatilities should be constant between consecutive expiries. $\endgroup$
    – byouness
    Nov 2, 2021 at 10:43

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.