|
QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.38
|
Interest rate swap. More...
#include <swap.hpp>
Inheritance diagram for Swap:
Collaboration diagram for Swap:Classes | |
| class | arguments |
| class | engine |
| class | results |
Public Types | |
| enum | Type { Receiver = -1 , Payer = 1 } |
Public Types inherited from Observer | |
| typedef set_type::iterator | iterator |
Public Member Functions | |
Observable interface | |
| void | deepUpdate () override |
Additional interface | |
| Size | numberOfLegs () const |
| const std::vector< Leg > & | legs () const |
| virtual Date | startDate () const |
| virtual Date | maturityDate () const |
| Real | legBPS (Size j) const |
| Real | legNPV (Size j) const |
| DiscountFactor | startDiscounts (Size j) const |
| DiscountFactor | endDiscounts (Size j) const |
| DiscountFactor | npvDateDiscount () const |
| const Leg & | leg (Size j) const |
| bool | payer (Size j) const |
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... | |
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 () |
Instrument interface | |
| std::vector< Leg > | legs_ |
| std::vector< Real > | payer_ |
| std::vector< Real > | legNPV_ |
| std::vector< Real > | legBPS_ |
| std::vector< DiscountFactor > | startDiscounts_ |
| std::vector< DiscountFactor > | endDiscounts_ |
| DiscountFactor | npvDateDiscount_ |
| bool | isExpired () const override |
| returns whether the instrument might have value greater than zero. More... | |
| void | setupArguments (PricingEngine::arguments *) const override |
| void | fetchResults (const PricingEngine::results *) const override |
| void | setupExpired () const override |
Constructors | |
| Swap (const Leg &firstLeg, const Leg &secondLeg) | |
| Swap (const std::vector< Leg > &legs, const std::vector< bool > &payer) | |
| Swap (Size legs) | |
Additional Inherited Members | |
Protected Member Functions inherited from Instrument | |
| void | calculate () const override |
| 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_ |
Interest rate swap.
The cash flows belonging to the first leg are paid; the ones belonging to the second leg are received.
| enum Type |
|
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 162 of file swap.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 68 of file swap.cpp.
Here is the call 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.
Reimplemented in YearOnYearInflationSwap.
Definition at line 87 of file swap.cpp.
Here is the caller graph for this function:
|
overridevirtual |
When a derived result structure is defined for an instrument, this method should be overridden to read from it. This is mandatory in case a pricing engine is used.
Reimplemented from Instrument.
Reimplemented in YearOnYearInflationSwap.
Definition at line 95 of file swap.cpp.
Here is the call graph for this function:
Here is the caller graph for this function:
|
virtual |
Reimplemented in ZeroCouponInflationSwap, and ZeroCouponSwap.
Definition at line 146 of file swap.cpp.
Here is the call graph for this function:
|
virtual |
Reimplemented in ZeroCouponInflationSwap, and ZeroCouponSwap.
Definition at line 154 of file swap.cpp.
Here is the call graph for this function:| DiscountFactor startDiscounts | ( | Size | j | ) | const |
| DiscountFactor endDiscounts | ( | Size | j | ) | const |
| DiscountFactor npvDateDiscount | ( | ) | const |
|
overrideprotectedvirtual |
This method must leave the instrument in a consistent state when the expiration condition is met.
Reimplemented from Instrument.
Reimplemented in YearOnYearInflationSwap.
Definition at line 78 of file swap.cpp.
Here is the call graph for this function:
Here is the caller graph for this function:
|
mutableprotected |
|
protected |
|
mutableprotected |