#include <qle/termstructures/swaptionvolcube2.hpp>
Public Member Functions | |
SwaptionVolCube2 (const Handle< SwaptionVolatilityStructure > &atmVolStructure, const std::vector< Period > &optionTenors, const std::vector< Period > &swapTenors, const std::vector< Spread > &strikeSpreads, const std::vector< std::vector< Handle< Quote > > > &volSpreads, const QuantLib::ext::shared_ptr< SwapIndex > &swapIndexBase, const QuantLib::ext::shared_ptr< SwapIndex > &shortSwapIndexBase, bool vegaWeightedSmileFit, bool flatExtrapolation, bool volsAreSpreads=true) | |
LazyObject interface | |
void | performCalculations () const override |
SwaptionVolatilityCube inspectors | |
const bool | flatExtrapolation_ |
const bool | volsAreSpreads_ |
std::vector< Interpolation2D > | volSpreadsInterpolator_ |
std::vector< Matrix > | volSpreadsMatrix_ |
const Matrix & | volSpreads (Size i) const |
QuantLib::ext::shared_ptr< SmileSection > | smileSectionImpl (const Date &optionDate, const Period &swapTenor) const override |
QuantLib::ext::shared_ptr< SmileSection > | smileSectionImpl (Time optionTime, Time swapLength) const override |
Definition at line 50 of file swaptionvolcube2.hpp.
SwaptionVolCube2 | ( | const Handle< SwaptionVolatilityStructure > & | atmVolStructure, |
const std::vector< Period > & | optionTenors, | ||
const std::vector< Period > & | swapTenors, | ||
const std::vector< Spread > & | strikeSpreads, | ||
const std::vector< std::vector< Handle< Quote > > > & | volSpreads, | ||
const QuantLib::ext::shared_ptr< SwapIndex > & | swapIndexBase, | ||
const QuantLib::ext::shared_ptr< SwapIndex > & | shortSwapIndexBase, | ||
bool | vegaWeightedSmileFit, | ||
bool | flatExtrapolation, | ||
bool | volsAreSpreads = true |
||
) |
The swaption vol cube is made up of ordered swaption vol surface layers, each layer referring to a swap index of a given length (in years), all indexes belonging to the same family. In order to identify the family (and its market conventions) an index of whatever length from that family must be passed in as swapIndexBase.
Often for short swap length the swap index family is different, e.g. the EUR case: swap vs 6M Euribor is used for length>1Y, while swap vs 3M Euribor is used for the 1Y length. The shortSwapIndexBase is used to identify this second family.
If flatExtrapolation is true the implied volatility is extrapolated flat in strike direction.
in case volsAreSpreads is false the given volSpreads are interpreted as absolute vols, in this case the volSpreads inspectors also return absolute vols
Definition at line 50 of file swaptionvolcube2.cpp.
|
override |
Definition at line 65 of file swaptionvolcube2.cpp.
const Matrix & volSpreads | ( | Size | i | ) | const |
Definition at line 82 of file swaptionvolcube2.hpp.
|
override |
Definition at line 101 of file swaptionvolcube2.cpp.
|
override |
Definition at line 88 of file swaptionvolcube2.cpp.
|
private |
Definition at line 87 of file swaptionvolcube2.hpp.
|
private |
Definition at line 87 of file swaptionvolcube2.hpp.
|
mutableprivate |
Definition at line 88 of file swaptionvolcube2.hpp.
|
mutableprivate |
Definition at line 89 of file swaptionvolcube2.hpp.