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

Pricing engine for barrier options using analytical formulae. More...

#include <analyticbarrierengine.hpp>

+ Inheritance diagram for AnalyticBarrierEngine:
+ Collaboration diagram for AnalyticBarrierEngine:

Public Member Functions

 AnalyticBarrierEngine (ext::shared_ptr< GeneralizedBlackScholesProcess > process)
 
void calculate () const override
 
- Public Member Functions inherited from GenericEngine< BarrierOption::arguments, BarrierOption::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 Member Functions

Real underlying () const
 
Real strike () const
 
Volatility volatility () const
 
Real barrier () const
 
Real rebate () const
 
Real stdDeviation () const
 
Rate riskFreeRate () const
 
DiscountFactor riskFreeDiscount () const
 
Rate dividendYield () const
 
DiscountFactor dividendDiscount () const
 
Rate mu () const
 
Real muSigma () const
 
Real A (Real phi) const
 
Real B (Real phi) const
 
Real C (Real eta, Real phi) const
 
Real D (Real eta, Real phi) const
 
Real E (Real eta) const
 
Real F (Real eta) const
 

Private Attributes

ext::shared_ptr< GeneralizedBlackScholesProcessprocess_
 
CumulativeNormalDistribution f_
 

Additional Inherited Members

- Public Types inherited from Observer
typedef set_type::iterator iterator
 
- Protected Member Functions inherited from BarrierOption::engine
bool triggered (Real underlying) const
 
- Protected Attributes inherited from GenericEngine< BarrierOption::arguments, BarrierOption::results >
BarrierOption::arguments arguments_
 
BarrierOption::results results_
 

Detailed Description

Pricing engine for barrier options using analytical formulae.

The formulas are taken from "Option pricing formulas", E.G. Haug, McGraw-Hill, p.69 and following.

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

Definition at line 46 of file analyticbarrierengine.hpp.

Constructor & Destructor Documentation

◆ AnalyticBarrierEngine()

AnalyticBarrierEngine ( ext::shared_ptr< GeneralizedBlackScholesProcess process)

Definition at line 30 of file analyticbarrierengine.cpp.

+ Here is the call graph for this function:

Member Function Documentation

◆ calculate()

void calculate ( ) const
overridevirtual

Implements PricingEngine.

Definition at line 36 of file analyticbarrierengine.cpp.

+ Here is the call graph for this function:

◆ underlying()

Real underlying ( ) const
private

Definition at line 117 of file analyticbarrierengine.cpp.

+ Here is the caller graph for this function:

◆ strike()

Real strike ( ) const
private

Definition at line 121 of file analyticbarrierengine.cpp.

+ Here is the caller graph for this function:

◆ volatility()

Volatility volatility ( ) const
private

Definition at line 128 of file analyticbarrierengine.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ barrier()

Real barrier ( ) const
private

Definition at line 140 of file analyticbarrierengine.cpp.

+ Here is the caller graph for this function:

◆ rebate()

Real rebate ( ) const
private

Definition at line 144 of file analyticbarrierengine.cpp.

+ Here is the caller graph for this function:

◆ stdDeviation()

Real stdDeviation ( ) const
private

Definition at line 134 of file analyticbarrierengine.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ riskFreeRate()

Rate riskFreeRate ( ) const
private

Definition at line 148 of file analyticbarrierengine.cpp.

+ Here is the caller graph for this function:

◆ riskFreeDiscount()

DiscountFactor riskFreeDiscount ( ) const
private

Definition at line 155 of file analyticbarrierengine.cpp.

+ Here is the caller graph for this function:

◆ dividendYield()

Rate dividendYield ( ) const
private

Definition at line 160 of file analyticbarrierengine.cpp.

+ Here is the caller graph for this function:

◆ dividendDiscount()

DiscountFactor dividendDiscount ( ) const
private

Definition at line 167 of file analyticbarrierengine.cpp.

+ Here is the caller graph for this function:

◆ mu()

Rate mu ( ) const
private

Definition at line 172 of file analyticbarrierengine.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ muSigma()

Real muSigma ( ) const
private

Definition at line 177 of file analyticbarrierengine.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ A()

Real A ( Real  phi) const
private

Definition at line 181 of file analyticbarrierengine.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ B()

Real B ( Real  phi) const
private

Definition at line 191 of file analyticbarrierengine.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ C()

Real C ( Real  eta,
Real  phi 
) const
private

Definition at line 200 of file analyticbarrierengine.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ D()

Real D ( Real  eta,
Real  phi 
) const
private

Definition at line 213 of file analyticbarrierengine.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ E()

Real E ( Real  eta) const
private

Definition at line 226 of file analyticbarrierengine.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ F()

Real F ( Real  eta) const
private

Definition at line 243 of file analyticbarrierengine.cpp.

+ Here is the call graph for this function:

Member Data Documentation

◆ process_

ext::shared_ptr<GeneralizedBlackScholesProcess> process_
private

Definition at line 52 of file analyticbarrierengine.hpp.

◆ f_

Definition at line 53 of file analyticbarrierengine.hpp.