QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
|
Base class for yoy inflation cap-like instruments. More...
#include <inflationcapfloor.hpp>
Classes | |
class | arguments |
Arguments for YoY Inflation cap/floor calculation More... | |
class | engine |
base class for cap/floor engines More... | |
Public Types | |
enum | Type { Cap , Floor , Collar } |
Public Types inherited from Observer | |
typedef set_type::iterator | iterator |
Public Member Functions | |
YoYInflationCapFloor (Type type, Leg yoyLeg, std::vector< Rate > capRates, std::vector< Rate > floorRates) | |
YoYInflationCapFloor (Type type, Leg yoyLeg, const std::vector< Rate > &strikes) | |
Instrument interface | |
bool | isExpired () const override |
returns whether the instrument might have value greater than zero. More... | |
void | setupArguments (PricingEngine::arguments *) const override |
Public Member Functions inherited from Instrument | |
Instrument () | |
Real | NPV () const |
returns the net present value of the instrument. More... | |
Real | errorEstimate () const |
returns the error estimate on the NPV when available. More... | |
const Date & | valuationDate () const |
returns the date the net present value refers to. More... | |
template<typename T > | |
T | result (const std::string &tag) const |
returns any additional result returned by the pricing engine. More... | |
const std::map< std::string, ext::any > & | additionalResults () const |
returns all additional result returned by the pricing engine. More... | |
void | setPricingEngine (const ext::shared_ptr< PricingEngine > &) |
set the pricing engine to be used. More... | |
virtual void | fetchResults (const PricingEngine::results *) const |
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 () |
Inspectors | |
Type | type_ |
Leg | yoyLeg_ |
std::vector< Rate > | capRates_ |
std::vector< Rate > | floorRates_ |
Type | type () const |
const std::vector< Rate > & | capRates () const |
const std::vector< Rate > & | floorRates () const |
const Leg & | yoyLeg () const |
Date | startDate () const |
Date | maturityDate () const |
ext::shared_ptr< YoYInflationCoupon > | lastYoYInflationCoupon () const |
ext::shared_ptr< YoYInflationCapFloor > | optionlet (Size n) const |
Returns the n-th optionlet as a cap/floor with only one cash flow. More... | |
virtual Rate | atmRate (const YieldTermStructure &discountCurve) const |
virtual Volatility | impliedVolatility (Real price, const Handle< YoYInflationTermStructure > &yoyCurve, Volatility guess, Real accuracy=1.0e-4, Natural maxEvaluations=100, Volatility minVol=1.0e-7, Volatility maxVol=4.0) const |
implied term volatility More... | |
Additional Inherited Members | |
Protected Member Functions inherited from Instrument | |
void | calculate () const override |
virtual void | setupExpired () const |
void | performCalculations () const override |
Protected Member Functions inherited from LazyObject | |
Protected Attributes inherited from Instrument | |
Real | NPV_ |
Real | errorEstimate_ |
Date | valuationDate_ |
std::map< std::string, ext::any > | additionalResults_ |
ext::shared_ptr< PricingEngine > | engine_ |
Protected Attributes inherited from LazyObject | |
bool | calculated_ = false |
bool | frozen_ = false |
bool | alwaysForward_ |
Base class for yoy inflation cap-like instruments.
Note that the standard YoY inflation cap/floor defined here is different from nominal, because in nominal world standard cap/floors do not have the first optionlet. This is because they set in advance so there is no point. However, yoy inflation generally sets (effectively) in arrears, (actually in arrears vs lag of a few months) thus the first optionlet is relevant. Hence we can do a parity test without a special definition of the YoY cap/floor instrument.
Definition at line 55 of file inflationcapfloor.hpp.
enum Type |
Enumerator | |
---|---|
Cap | |
Floor | |
Collar |
Definition at line 57 of file inflationcapfloor.hpp.
YoYInflationCapFloor | ( | YoYInflationCapFloor::Type | type, |
Leg | yoyLeg, | ||
std::vector< Rate > | capRates, | ||
std::vector< Rate > | floorRates | ||
) |
YoYInflationCapFloor | ( | YoYInflationCapFloor::Type | type, |
Leg | yoyLeg, | ||
const std::vector< Rate > & | strikes | ||
) |
|
overridevirtual |
returns whether the instrument might have value greater than zero.
Implements Instrument.
Definition at line 94 of file inflationcapfloor.cpp.
|
overridevirtual |
When a derived argument structure is defined for an instrument, this method should be overridden to fill it. This is mandatory in case a pricing engine is used.
Reimplemented from Instrument.
Definition at line 133 of file inflationcapfloor.cpp.
Type type | ( | ) | const |
const std::vector< Rate > & capRates | ( | ) | const |
const std::vector< Rate > & floorRates | ( | ) | const |
const Leg & yoyLeg | ( | ) | const |
Date startDate | ( | ) | const |
Date maturityDate | ( | ) | const |
ext::shared_ptr< YoYInflationCoupon > lastYoYInflationCoupon | ( | ) | const |
Definition at line 110 of file inflationcapfloor.cpp.
ext::shared_ptr< YoYInflationCapFloor > optionlet | ( | Size | n | ) | const |
Returns the n-th optionlet as a cap/floor with only one cash flow.
Definition at line 117 of file inflationcapfloor.cpp.
|
virtual |
|
virtual |
implied term volatility
Definition at line 161 of file inflationcapfloor.hpp.
|
private |
Definition at line 94 of file inflationcapfloor.hpp.
|
private |
Definition at line 95 of file inflationcapfloor.hpp.
|
private |
Definition at line 96 of file inflationcapfloor.hpp.
|
private |
Definition at line 97 of file inflationcapfloor.hpp.