QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
AnalyticAmericanMargrabeEngine Class Reference

Analytic engine for American Margrabe option. More...

#include <analyticamericanmargrabeengine.hpp>

+ Inheritance diagram for AnalyticAmericanMargrabeEngine:
+ Collaboration diagram for AnalyticAmericanMargrabeEngine:

Public Member Functions

 AnalyticAmericanMargrabeEngine (ext::shared_ptr< GeneralizedBlackScholesProcess > process1, ext::shared_ptr< GeneralizedBlackScholesProcess > process2, Real correlation)
 
void calculate () const override
 
- Public Member Functions inherited from GenericEngine< MargrabeOption::arguments, MargrabeOption::results >
PricingEngine::argumentsgetArguments () const override
 
const PricingEngine::resultsgetResults () const override
 
void reset () override
 
void update () override
 
- Public Member Functions inherited from PricingEngine
 ~PricingEngine () override=default
 
virtual argumentsgetArguments () const =0
 
virtual const resultsgetResults () const =0
 
virtual void reset ()=0
 
virtual void calculate () const =0
 
- Public Member Functions inherited from Observable
 Observable ()
 
 Observable (const Observable &)
 
Observableoperator= (const Observable &)
 
 Observable (Observable &&)=delete
 
Observableoperator= (Observable &&)=delete
 
virtual ~Observable ()=default
 
void notifyObservers ()
 
- Public Member Functions inherited from Observer
 Observer ()=default
 
 Observer (const Observer &)
 
Observeroperator= (const Observer &)
 
virtual ~Observer ()
 
std::pair< iterator, boolregisterWith (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 ()
 

Private Attributes

ext::shared_ptr< GeneralizedBlackScholesProcessprocess1_
 
ext::shared_ptr< GeneralizedBlackScholesProcessprocess2_
 
Real rho_
 

Additional Inherited Members

- Public Types inherited from Observer
typedef set_type::iterator iterator
 
- Protected Attributes inherited from GenericEngine< MargrabeOption::arguments, MargrabeOption::results >
MargrabeOption::arguments arguments_
 
MargrabeOption::results results_
 

Detailed Description

Analytic engine for American Margrabe option.

This class implements formulae from "The Value of an American Option to Exchange One Asset for Another", W. Margrabe, Journal of Finance, 33, 177-86.

Tests:
the correctness of the returned value is tested by reproducing results available in literature.

Definition at line 41 of file analyticamericanmargrabeengine.hpp.

Constructor & Destructor Documentation

◆ AnalyticAmericanMargrabeEngine()

AnalyticAmericanMargrabeEngine ( ext::shared_ptr< GeneralizedBlackScholesProcess process1,
ext::shared_ptr< GeneralizedBlackScholesProcess process2,
Real  correlation 
)

Definition at line 31 of file analyticamericanmargrabeengine.cpp.

+ Here is the call graph for this function:

Member Function Documentation

◆ calculate()

void calculate ( ) const
overridevirtual

Implements PricingEngine.

Definition at line 40 of file analyticamericanmargrabeengine.cpp.

+ Here is the call graph for this function:

Member Data Documentation

◆ process1_

ext::shared_ptr<GeneralizedBlackScholesProcess> process1_
private

Definition at line 49 of file analyticamericanmargrabeengine.hpp.

◆ process2_

ext::shared_ptr<GeneralizedBlackScholesProcess> process2_
private

Definition at line 50 of file analyticamericanmargrabeengine.hpp.

◆ rho_

Real rho_
private

Definition at line 51 of file analyticamericanmargrabeengine.hpp.