QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
|
Margrabe option on two assets. More...
#include <margrabeoption.hpp>
Classes | |
class | arguments |
Extra arguments for Margrabe option. More... | |
class | engine |
Margrabe option engine base class More... | |
class | results |
Extra results for Margrabe option. More... | |
Public Member Functions | |
MargrabeOption (Integer Q1, Integer Q2, const ext::shared_ptr< Exercise > &) | |
void | setupArguments (PricingEngine::arguments *) const override |
Real | delta1 () const |
Real | delta2 () const |
Real | gamma1 () const |
Real | gamma2 () const |
void | fetchResults (const PricingEngine::results *) const override |
Public Member Functions inherited from MultiAssetOption | |
MultiAssetOption (const ext::shared_ptr< Payoff > &, const ext::shared_ptr< Exercise > &) | |
bool | isExpired () const override |
returns whether the instrument might have value greater than zero. More... | |
Real | delta () const |
Real | gamma () const |
Real | theta () const |
Real | vega () const |
Real | rho () const |
Real | dividendRho () const |
void | setupArguments (PricingEngine::arguments *) const override |
void | fetchResults (const PricingEngine::results *) const override |
Public Member Functions inherited from Option | |
Option (ext::shared_ptr< Payoff > payoff, ext::shared_ptr< Exercise > exercise) | |
void | setupArguments (PricingEngine::arguments *) const override |
ext::shared_ptr< Payoff > | payoff () const |
ext::shared_ptr< Exercise > | exercise () 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 () | |
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 () |
Protected Attributes | |
Integer | Q1_ |
Integer | Q2_ |
Real | delta1_ |
Real | delta2_ |
Real | gamma1_ |
Real | gamma2_ |
Protected Attributes inherited from MultiAssetOption | |
Real | delta_ |
Real | gamma_ |
Real | theta_ |
Real | vega_ |
Real | rho_ |
Real | dividendRho_ |
Protected Attributes inherited from Option | |
ext::shared_ptr< Payoff > | payoff_ |
ext::shared_ptr< Exercise > | exercise_ |
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_ |
Additional Inherited Members | |
Public Types inherited from Option | |
enum | Type { Put = -1 , Call = 1 } |
Public Types inherited from Observer | |
typedef set_type::iterator | iterator |
Protected Member Functions inherited from MultiAssetOption | |
void | setupExpired () const override |
Protected Member Functions inherited from Instrument | |
void | calculate () const override |
void | performCalculations () const override |
Protected Member Functions inherited from LazyObject | |
Related Functions inherited from Option | |
std::ostream & | operator<< (std::ostream &, Option::Type) |
Margrabe option on two assets.
This option gives the holder the right to exchange Q2 stocks of the second asset for Q1 stocks of the first at expiration.
Definition at line 37 of file margrabeoption.hpp.
MargrabeOption | ( | Integer | Q1, |
Integer | Q2, | ||
const ext::shared_ptr< Exercise > & | exercise | ||
) |
Definition at line 25 of file margrabeoption.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 56 of file margrabeoption.cpp.
Real delta1 | ( | ) | const |
Real delta2 | ( | ) | const |
Real gamma1 | ( | ) | const |
Real gamma2 | ( | ) | const |
|
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.
Definition at line 75 of file margrabeoption.cpp.
|
protected |
Definition at line 53 of file margrabeoption.hpp.
|
protected |
Definition at line 54 of file margrabeoption.hpp.
|
mutableprotected |
Definition at line 55 of file margrabeoption.hpp.
|
protected |
Definition at line 55 of file margrabeoption.hpp.
|
protected |
Definition at line 55 of file margrabeoption.hpp.
|
protected |
Definition at line 55 of file margrabeoption.hpp.