# Evaluating swaptions with negative interest rates

Does anyone know if it is possible to evaluate swaptions with negative interest rates with Quantlib?

    blackEngine = ql.BlackSwaptionEngine(discountingTermStructure, ql.QuoteHandle(ql.SimpleQuote(vol)))
swaption.setPricingEngine(blackEngine)
swaptionnpv = swaption.NPV()


My vol value is an interpolated value from a volatility matrix which is equal to 0.34.

RuntimeError: forward + displacement (-0.00128788 + 0) must be positive


• Hi and welcome. Would you please add more details to your question, esp. the software (I guess it's QuantLib?) and the calling code? A pure guess: You use lognormal vols with negative rates? Nov 12, 2021 at 9:17
• Edited, thank you. Nov 12, 2021 at 9:44
• It's customary to use the bachelier normal model because the lognormal assumption of Black doesn't allow for negative values. Nov 12, 2021 at 12:02
• Thank you very much! Nov 12, 2021 at 12:17

Here is an example on pricing the the Bachelier model (Normal vols):

import QuantLib as ql

yts = ql.YieldTermStructureHandle(ql.FlatForward(2, ql.TARGET(), 0.05, ql.Actual360()))

calendar = ql.TARGET()
today = ql.Date().todaysDate()