Options
All
  • Public
  • Public/Protected
  • All
Menu

libor-forward-model process

stochastic process of a libor forward model using the rolling forward measure incl. predictor-corrector step

References:

Glasserman, Paul, 2004, Monte Carlo Methods in Financial Engineering, Springer, Section 3.7

Antoon Pelsser, 2000, Efficient Methods for Valuing Interest Rate Derivatives, Springer, 8

Hull, John, White, Alan, 1999, Forward Rate Volatilities, Swap Rate Volatilities and the Implementation of the Libor Market Model (http://www.rotman.utoronto.ca/~amackay/fin/libormktmodel2.pdf)

test the correctness is tested by Monte-Carlo reproduction of caplet & ratchet NPVs and comparison with Black pricing.

warning this class does not work correctly with Visual C++ 6.

Hierarchy

Implements

Index

Constructors

constructor

Properties

Private _accrualEndTimes

_accrualEndTimes: Time[]

Private _accrualPeriod

_accrualPeriod: Time[]

Private _accrualStartTimes

_accrualStartTimes: Time[]

_discretization

_discretization: discretization

Private _fixingDates

_fixingDates: Date[]

Private _fixingTimes

_fixingTimes: Time[]

Private _index

_index: IborIndex

Private _initialValues

_initialValues: Real[]

_isDisposed

_isDisposed: boolean = false

Private _lfmParam

_observables

_observables: Set<Observable> = new Set()

_observers

_observers: Set<Observer> = new Set()

Private _size

_size: Size

dispose

dispose: () => void

Type declaration

    • (): void
    • Returns void

isDisposed

isDisposed: boolean

Private m1

m1: Real[]

Private m2

m2: Real[]

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

accrualEndTimes

  • accrualEndTimes(): Time[]
  • Returns Time[]

accrualStartTimes

  • accrualStartTimes(): Time[]
  • Returns Time[]

apply

  • Parameters

    Returns Real[]

apply1

  • applies a change to the asset value. By default, it returns $ \mathrm{x} + \Delta \mathrm{x} $.

    Parameters

    Returns Real[]

cashFlows

  • Parameters

    • Default value amount: Real = 1

    Returns Leg

covarParam

covariance

deepUpdate

  • deepUpdate(): void

diffusion

  • Parameters

    Returns Matrix

diffusion1

discountBond

  • Parameters

    Returns DiscountFactor[]

drift

  • Parameters

    Returns Real[]

drift1

  • returns the drift part of the equation, i.e., $ \mu(t, \mathrm{x}_t) $

    Parameters

    Returns Real[]

evolve

  • Parameters

    Returns Real[]

evolve1

  • returns the asset value after a time interval $\Delta$ according to the given discretization. By default, it returns $$ E(\mathrm{x}_0,t_0,\Delta t) + S(\mathrm{x}_0,t_0,\Delta t) \cdot \Delta \mathrm{w} $$ where $E$ is the expectation and $S$ the standard deviation.

    Parameters

    Returns Real[]

expectation1

  • returns the expectation $$ E(\mathrm{x}{t_0 + \Delta t} | \mathrm{x}{t_0} = \mathrm{x}_0) $$ of the process after a time interval $ \Delta t $ according to the given discretization. This method can be overridden in derived classes which want to hard-code a particular discretization.

    Parameters

    Returns Real[]

factors

fixingDates

  • fixingDates(): Date[]
  • Returns Date[]

fixingTimes

  • fixingTimes(): Time[]
  • Returns Time[]

index

  • Returns IborIndex

init

initialValues

  • initialValues(): Real[]

nextIndexReset

  • Parameters

    Returns Size

setCovarParam

size

stdDeviation1

  • returns the standard deviation $$ S(\mathrm{x}{t_0 + \Delta t} | \mathrm{x}{t_0} = \mathrm{x}_0) $$ of the process after a time interval $ \Delta t $ according to the given discretization. This method can be overridden in derived classes which want to hard-code a particular discretization.

    Parameters

    Returns Matrix

time

  • time(d: Date): Time
  • returns the time value corresponding to the given date in the reference system of the stochastic process.

    note As a number of processes might not need this functionality, a default implementation is given which raises an exception.

    Parameters

    • d: Date

    Returns Time

update

  • update(): void