|
QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.38
|
Base class for cap-like instruments. More...
#include <capfloor.hpp>
Inheritance diagram for CapFloor:
Collaboration diagram for CapFloor:Classes | |
| class | arguments |
| Arguments for 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 | |
| CapFloor (Type type, Leg floatingLeg, std::vector< Rate > capRates, std::vector< Rate > floorRates) | |
| CapFloor (Type type, Leg floatingLeg, const std::vector< Rate > &strikes) | |
Observable interface | |
| void | deepUpdate () override |
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 ()=default | |
| 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 | floatingLeg_ |
| 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 & | floatingLeg () const |
| Date | startDate () const |
| Date | maturityDate () const |
| ext::shared_ptr< FloatingRateCoupon > | lastFloatingRateCoupon () const |
| ext::shared_ptr< CapFloor > | optionlet (Size n) const |
| Returns the n-th optionlet as a new CapFloor with only one cash flow. More... | |
| Rate | atmRate (const YieldTermStructure &discountCurve) const |
| Volatility | impliedVolatility (Real price, const Handle< YieldTermStructure > &disc, Volatility guess, Real accuracy=1.0e-4, Natural maxEvaluations=100, Volatility minVol=1.0e-7, Volatility maxVol=4.0, VolatilityType type=ShiftedLognormal, Real displacement=0.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 cap-like instruments.
Definition at line 55 of file capfloor.hpp.
| enum Type |
| Enumerator | |
|---|---|
| Cap | |
| Floor | |
| Collar | |
Definition at line 57 of file capfloor.hpp.
| CapFloor | ( | CapFloor::Type | type, |
| Leg | floatingLeg, | ||
| std::vector< Rate > | capRates, | ||
| std::vector< Rate > | floorRates | ||
| ) |
| CapFloor | ( | CapFloor::Type | type, |
| Leg | floatingLeg, | ||
| const std::vector< Rate > & | strikes | ||
| ) |
|
overridevirtual |
This method allows to explicitly update the instance itself and nested observers. If notifications are disabled a call to this method ensures an update of such nested observers. It should be implemented in derived classes whenever applicable
Reimplemented from Observer.
Definition at line 271 of file capfloor.cpp.
Here is the call graph for this function:
|
overridevirtual |
returns whether the instrument might have value greater than zero.
Implements Instrument.
Definition at line 172 of file capfloor.cpp.
Here is the caller graph for this function:
|
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 210 of file capfloor.cpp.
Here is the call graph for this function:| Type type | ( | ) | const |
| const std::vector< Rate > & capRates | ( | ) | const |
| const std::vector< Rate > & floorRates | ( | ) | const |
| const Leg & floatingLeg | ( | ) | const |
| Date startDate | ( | ) | const |
Definition at line 179 of file capfloor.cpp.
Here is the call graph for this function:
Here is the caller graph for this function:| Date maturityDate | ( | ) | const |
Definition at line 183 of file capfloor.cpp.
Here is the call graph for this function:
Here is the caller graph for this function:| ext::shared_ptr< FloatingRateCoupon > lastFloatingRateCoupon | ( | ) | const |
Returns the n-th optionlet as a new CapFloor with only one cash flow.
Definition at line 195 of file capfloor.cpp.
Here is the call graph for this function:| Rate atmRate | ( | const YieldTermStructure & | discountCurve | ) | const |
| Volatility impliedVolatility | ( | Real | price, |
| const Handle< YieldTermStructure > & | disc, | ||
| Volatility | guess, | ||
| Real | accuracy = 1.0e-4, |
||
| Natural | maxEvaluations = 100, |
||
| Volatility | minVol = 1.0e-7, |
||
| Volatility | maxVol = 4.0, |
||
| VolatilityType | type = ShiftedLognormal, |
||
| Real | displacement = 0.0 |
||
| ) | const |
implied term volatility
Definition at line 323 of file capfloor.cpp.
Here is the call graph for this function:
|
private |
Definition at line 100 of file capfloor.hpp.
|
private |
Definition at line 101 of file capfloor.hpp.
|
private |
Definition at line 102 of file capfloor.hpp.
|
private |
Definition at line 103 of file capfloor.hpp.