Building a Swaption Volatility Cube with QuantLibXL
Summary
The document outlines a workflow for representing swaption volatility data in QuantLibXL and using it to price a swaption. First, construct an at-the-money volatility matrix with the QuantLibXL matrix function. Then extend the matrix into a volatility cube by incorporating skew information. The resulting cube can be supplied to a swaption pricer, providing a market volatility structure across option expiries, swap tenors, and strike levels.
The answer addresses a practical implementation question about pricing a swaption with a particular expiry and underlying swap tenor, but it does not provide the input data, function arguments, or a worked valuation. Its main caveat is a library limitation: QuantLibXL swaption valuation is restricted to shifted-lognormal volatility, so a normal-volatility setup is unavailable through the described route. The document offers a sequence of modeling components rather than guidance on calibrating market inputs, validating interpolation, or comparing volatility conventions. Users must supply appropriate market quotes and check that the cube and pricer use compatible conventions.
Key ideas
- Build the at-the-money swaption volatility matrix before constructing a volatility cube.
- Add strike skew information to the matrix using a cube representation.
- Pass the completed volatility cube to a swaption pricer.
- The described QuantLibXL valuation supports shifted-lognormal volatility, not normal volatility.
- The answer does not include market inputs or a worked pricing example.
Tags
Full text
# Swaptions vols,object using quantlib xl # Swaptions vols,object using quantlib xl How can I build a good vol surface using QuantlibXl? My goal is to price a swaption 5 year with option maturity 1Y1M. The data are: ## Answer by user35980 (score 1) https://quant.stackexchange.com/a/54853 The procedure is to build an ATM swaption vol matrix using qlSwaptionVTSMatrix. Then extend that to a swaption vol cube to add the skew data using qlSwaptionVolCube2. Then you can feed this volcube to a swaption pricer. You can find arguments for these functions here: https://www.quantlib.org/quantlibxl/allfunctions.html. Note that QuantlibXL limits swaption valuation to ShiftedLognormal vols, so you cannot use a normal vols for instance.
Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.