QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
|
calibration helper for interest-rate swaptions More...
#include <swaptionhelper.hpp>
Public Member Functions | |
SwaptionHelper (const Period &maturity, const Period &length, const Handle< Quote > &volatility, ext::shared_ptr< IborIndex > index, const Period &fixedLegTenor, DayCounter fixedLegDayCounter, DayCounter floatingLegDayCounter, Handle< YieldTermStructure > termStructure, CalibrationErrorType errorType=RelativePriceError, Real strike=Null< Real >(), Real nominal=1.0, VolatilityType type=ShiftedLognormal, Real shift=0.0, Natural settlementDays=Null< Size >(), RateAveraging::Type averagingMethod=RateAveraging::Compound) | |
SwaptionHelper (const Date &exerciseDate, const Period &length, const Handle< Quote > &volatility, ext::shared_ptr< IborIndex > index, const Period &fixedLegTenor, DayCounter fixedLegDayCounter, DayCounter floatingLegDayCounter, Handle< YieldTermStructure > termStructure, CalibrationErrorType errorType=RelativePriceError, Real strike=Null< Real >(), Real nominal=1.0, VolatilityType type=ShiftedLognormal, Real shift=0.0, Natural settlementDays=Null< Size >(), RateAveraging::Type averagingMethod=RateAveraging::Compound) | |
SwaptionHelper (const Date &exerciseDate, const Date &endDate, const Handle< Quote > &volatility, ext::shared_ptr< IborIndex > index, const Period &fixedLegTenor, DayCounter fixedLegDayCounter, DayCounter floatingLegDayCounter, Handle< YieldTermStructure > termStructure, CalibrationErrorType errorType=RelativePriceError, Real strike=Null< Real >(), Real nominal=1.0, VolatilityType type=ShiftedLognormal, Real shift=0.0, Natural settlementDays=Null< Size >(), RateAveraging::Type averagingMethod=RateAveraging::Compound) | |
void | addTimesTo (std::list< Time > ×) const override |
Real | modelValue () const override |
returns the price of the instrument according to the model More... | |
Real | blackPrice (Volatility volatility) const override |
Black or Bachelier price given a volatility. More... | |
const ext::shared_ptr< FixedVsFloatingSwap > & | underlying () const |
ext::shared_ptr< VanillaSwap > | underlyingSwap () const |
ext::shared_ptr< Swaption > | swaption () const |
Public Member Functions inherited from BlackCalibrationHelper | |
BlackCalibrationHelper (Handle< Quote > volatility, CalibrationErrorType calibrationErrorType=RelativePriceError, const VolatilityType type=ShiftedLognormal, const Real shift=0.0) | |
void | performCalculations () const override |
Handle< Quote > | volatility () const |
returns the volatility Handle More... | |
VolatilityType | volatilityType () const |
returns the volatility type More... | |
Real | marketValue () const |
returns the actual price of the instrument (from volatility) More... | |
virtual Real | modelValue () const =0 |
returns the price of the instrument according to the model More... | |
Real | calibrationError () override |
returns the error resulting from the model valuation More... | |
virtual void | addTimesTo (std::list< Time > ×) const =0 |
Volatility | impliedVolatility (Real targetValue, Real accuracy, Size maxEvaluations, Volatility minVol, Volatility maxVol) const |
Black volatility implied by the model. More... | |
virtual Real | blackPrice (Volatility volatility) const =0 |
Black or Bachelier price given a volatility. More... | |
void | setPricingEngine (const ext::shared_ptr< PricingEngine > &engine) |
Public Member Functions inherited from LazyObject | |
LazyObject () | |
~LazyObject () override=default | |
void | update () override |
bool | isCalculated () const |
void | forwardFirstNotificationOnly () |
void | alwaysForwardNotifications () |
void | recalculate () |
void | freeze () |
void | unfreeze () |
Public Member Functions inherited from Observable | |
Observable () | |
Observable (const Observable &) | |
Observable & | operator= (const Observable &) |
Observable (Observable &&)=delete | |
Observable & | operator= (Observable &&)=delete |
virtual | ~Observable ()=default |
void | notifyObservers () |
Public Member Functions inherited from Observer | |
Observer ()=default | |
Observer (const Observer &) | |
Observer & | operator= (const Observer &) |
virtual | ~Observer () |
std::pair< iterator, bool > | registerWith (const ext::shared_ptr< Observable > &) |
void | registerWithObservables (const ext::shared_ptr< Observer > &) |
Size | unregisterWith (const ext::shared_ptr< Observable > &) |
void | unregisterWithAll () |
virtual void | update ()=0 |
virtual void | deepUpdate () |
Public Member Functions inherited from CalibrationHelper | |
virtual | ~CalibrationHelper ()=default |
virtual Real | calibrationError ()=0 |
returns the error resulting from the model valuation More... | |
Private Member Functions | |
void | performCalculations () const override |
ext::shared_ptr< FixedVsFloatingSwap > | makeSwap (Schedule fixedSchedule, Schedule floatSchedule, Rate exerciseRate, Swap::Type type) const |
Private Attributes | |
Date | exerciseDate_ |
Date | endDate_ |
const Period | maturity_ |
const Period | length_ |
const Period | fixedLegTenor_ |
const ext::shared_ptr< IborIndex > | index_ |
const Handle< YieldTermStructure > | termStructure_ |
const DayCounter | fixedLegDayCounter_ |
const DayCounter | floatingLegDayCounter_ |
const Real | strike_ |
const Real | nominal_ |
const Natural | settlementDays_ |
const RateAveraging::Type | averagingMethod_ |
Rate | exerciseRate_ |
ext::shared_ptr< FixedVsFloatingSwap > | swap_ |
ext::shared_ptr< Swaption > | swaption_ |
Additional Inherited Members | |
Public Types inherited from BlackCalibrationHelper | |
enum | CalibrationErrorType { RelativePriceError , PriceError , ImpliedVolError } |
Public Types inherited from Observer | |
typedef set_type::iterator | iterator |
Protected Member Functions inherited from LazyObject | |
virtual void | calculate () const |
Protected Attributes inherited from BlackCalibrationHelper | |
Real | marketValue_ |
Handle< Quote > | volatility_ |
ext::shared_ptr< PricingEngine > | engine_ |
const VolatilityType | volatilityType_ |
const Real | shift_ |
Protected Attributes inherited from LazyObject | |
bool | calculated_ = false |
bool | frozen_ = false |
bool | alwaysForward_ |
calibration helper for interest-rate swaptions
Definition at line 42 of file swaptionhelper.hpp.
SwaptionHelper | ( | const Period & | maturity, |
const Period & | length, | ||
const Handle< Quote > & | volatility, | ||
ext::shared_ptr< IborIndex > | index, | ||
const Period & | fixedLegTenor, | ||
DayCounter | fixedLegDayCounter, | ||
DayCounter | floatingLegDayCounter, | ||
Handle< YieldTermStructure > | termStructure, | ||
CalibrationErrorType | errorType = RelativePriceError , |
||
Real | strike = Null<Real>() , |
||
Real | nominal = 1.0 , |
||
VolatilityType | type = ShiftedLognormal , |
||
Real | shift = 0.0 , |
||
Natural | settlementDays = Null<Size>() , |
||
RateAveraging::Type | averagingMethod = RateAveraging::Compound |
||
) |
SwaptionHelper | ( | const Date & | exerciseDate, |
const Period & | length, | ||
const Handle< Quote > & | volatility, | ||
ext::shared_ptr< IborIndex > | index, | ||
const Period & | fixedLegTenor, | ||
DayCounter | fixedLegDayCounter, | ||
DayCounter | floatingLegDayCounter, | ||
Handle< YieldTermStructure > | termStructure, | ||
CalibrationErrorType | errorType = RelativePriceError , |
||
Real | strike = Null<Real>() , |
||
Real | nominal = 1.0 , |
||
VolatilityType | type = ShiftedLognormal , |
||
Real | shift = 0.0 , |
||
Natural | settlementDays = Null<Size>() , |
||
RateAveraging::Type | averagingMethod = RateAveraging::Compound |
||
) |
SwaptionHelper | ( | const Date & | exerciseDate, |
const Date & | endDate, | ||
const Handle< Quote > & | volatility, | ||
ext::shared_ptr< IborIndex > | index, | ||
const Period & | fixedLegTenor, | ||
DayCounter | fixedLegDayCounter, | ||
DayCounter | floatingLegDayCounter, | ||
Handle< YieldTermStructure > | termStructure, | ||
CalibrationErrorType | errorType = RelativePriceError , |
||
Real | strike = Null<Real>() , |
||
Real | nominal = 1.0 , |
||
VolatilityType | type = ShiftedLognormal , |
||
Real | shift = 0.0 , |
||
Natural | settlementDays = Null<Size>() , |
||
RateAveraging::Type | averagingMethod = RateAveraging::Compound |
||
) |
|
overridevirtual |
Implements BlackCalibrationHelper.
Definition at line 111 of file swaptionhelper.cpp.
|
overridevirtual |
returns the price of the instrument according to the model
Implements BlackCalibrationHelper.
Definition at line 123 of file swaptionhelper.cpp.
|
overridevirtual |
Black or Bachelier price given a volatility.
Implements BlackCalibrationHelper.
Definition at line 129 of file swaptionhelper.cpp.
const ext::shared_ptr< FixedVsFloatingSwap > & underlying | ( | ) | const |
ext::shared_ptr< VanillaSwap > underlyingSwap | ( | ) | const |
Definition at line 104 of file swaptionhelper.hpp.
ext::shared_ptr< Swaption > swaption | ( | ) | const |
|
overrideprivatevirtual |
This method must implement any calculations which must be (re)done in order to calculate the desired results.
Reimplemented from BlackCalibrationHelper.
Definition at line 152 of file swaptionhelper.cpp.
|
private |
|
mutableprivate |
Definition at line 118 of file swaptionhelper.hpp.
|
private |
Definition at line 118 of file swaptionhelper.hpp.
|
private |
Definition at line 119 of file swaptionhelper.hpp.
|
private |
Definition at line 119 of file swaptionhelper.hpp.
|
private |
Definition at line 119 of file swaptionhelper.hpp.
|
private |
Definition at line 120 of file swaptionhelper.hpp.
|
private |
Definition at line 121 of file swaptionhelper.hpp.
|
private |
Definition at line 122 of file swaptionhelper.hpp.
|
private |
Definition at line 122 of file swaptionhelper.hpp.
|
private |
Definition at line 123 of file swaptionhelper.hpp.
|
private |
Definition at line 123 of file swaptionhelper.hpp.
|
private |
Definition at line 124 of file swaptionhelper.hpp.
|
private |
Definition at line 125 of file swaptionhelper.hpp.
|
mutableprivate |
Definition at line 126 of file swaptionhelper.hpp.
|
mutableprivate |
Definition at line 127 of file swaptionhelper.hpp.
|
mutableprivate |
Definition at line 128 of file swaptionhelper.hpp.