Options
All
  • Public
  • Public/Protected
  • All
Menu

Analytic Heston-Hull-White engine based on the H1-HW approximation

This class is pricing a european option under the following process

$$ \begin{array}{rcl} dS(t, S) &=& (r-d) S dt +\sqrt{v} S dW_1 \ dv(t, S) &=& \kappa (\theta - v) dt + \sigma \sqrt{v} dW_2 \ dr(t) &=& (\theta(t) - a r) dt + \eta dW_3 \ dW_1 dW_2 &=& \rho_{S,v} dt, \rho_{S,r} >= 0 \ dW_1 dW_3 &=& \rho_{S.r} dt \ dW_2 dW_3 &=& 0 dt \ \end{array} $$

References:

Lech A. Grzelak, Cornelis W. Oosterlee, On The Heston Model with Stochastic, http://papers.ssrn.com/sol3/papers.cfm?abstract_id=1382902

Lech A. Grzelak, Equity and Foreign Exchange Hybrid Models for Pricing Long-Maturity Financial Derivatives, http://repository.tudelft.nl/assets/ uuid:a8e1a007-bd89-481a-aee3-0e22f15ade6b/PhDThesis_main.pdf

test

the correctness of the returned value is tested by reproducing results available in web/literature, testing against QuantLib's analytic Heston, the Black-Scholes-Merton Hull-White engine and the finite difference Heston-Hull-White engine

Hierarchy

Implements

Index

Constructors

constructor

Properties

_arguments

_arguments: Arguments

Protected _hullWhiteModel

_hullWhiteModel: HullWhite

_isDisposed

_isDisposed: boolean = false

_model

_observables

_observables: Set<Observable> = new Set()

_observers

_observers: Set<Observer> = new Set()

_results

_results: Results

Private _rhoSr

_rhoSr: Real

deepUpdate

deepUpdate: () => void

Type declaration

    • (): void
    • Returns void

dispose

dispose: () => void

Type declaration

    • (): void
    • Returns void

isDisposed

isDisposed: boolean

notifyObservers

notifyObservers: () => void

Type declaration

    • (): void
    • Returns void

registerObserver

registerObserver: (o: Observer) => void

Type declaration

registerWith

registerWith: (h: Observable) => void

Type declaration

registerWithObservables

registerWithObservables: (o: Observer) => void

Type declaration

unregisterObserver

unregisterObserver: (o: Observer) => void

Type declaration

unregisterWith

unregisterWith: (h: Observable) => Size

Type declaration

unregisterWithAll

unregisterWithAll: () => void

Type declaration

    • (): void
    • Returns void

Methods

addOnTerm

ah1hweInit1

ah1hweInit2

aheInit1

aheInit2

aheInit3

ahhweInit1

ahhweInit2

calculate

  • calculate(): void

chF

getArguments

getResults

init1

init2

lnChF

numberOfEvaluations

  • numberOfEvaluations(): Size

reset

  • reset(): void

update

  • update(): void

Static doCalculation