HestonSLVMCModel: Class '"HestonSLVMCModel"'

Description Arguments Objects from the Class References Examples

Description

Calibration of the Heston Stochastic Local Volatility model

\begin{array}{ll} d x_t = ≤ft( r_t - q_t - \frac{{L^2(t, x_t)}}{2}ν_t\right) dt + {L(t, x_t)}√{ν_t}dW^{x}_t \\ dν_t =κ≤ft(θ-ν_t\right)dt +{η}σ √{ν_t}dW^{ν}_t \\ ρ dt = dW^{ν}_t dW^x_t \end{array}

via Monte-Carlo simulations.

Arguments

referenceDate

a date setting the reference date for the calibration

maxCalibrationDate

a date setting the end date of the calibration

localVolFunction

a function in (time, underlying) defining the local volatility function. The HestonSLVMCModel calculates the leverage function such that the Heston SLV model defined by the Heston process and the leverage function gives the same prices as the local volatility model.

hestonProcess

an object of the class HestonProcess

hestonSLVMCParams

an object of the class HestonSLVMCParams

Objects from the Class

An object of this class calibrates a Heston Stochastic Local Volatility model to a given local volatility model w.r.t. a Heston process. Objects can be created by calls of the form
new("HestonSLVMCModel", referenceDate, maxCalibrationDate,
localVolFunction, hestonProcess, hestonSLVMCParams)

References

A.Stoep, L. Grzelak, C. Oosterlee, The Heston Stochastic-Local Volatility Model: Efficient Monte Carlo Simulation, http://ta.twi.tudelft.nl/mf/users/oosterle/oosterlee/anton1.pdf
Johannes Goettker-Schnetmann, Klaus Spanderen, Calibrating the Heston Stochastic Local Volatility Model using the Fokker-Planck Equation, http://hpc-quantlib.de/src/slv.pdf

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
#flat local volatility surface
localVol <- function(t, s) { 0.3 }

#Heston process with r=0.05, c=0.02, spot=100, v0=0.09, kappa=1, theta=0.06, sigma=0.4 and rho=-0.75
process <- HestonProcess(function(t,s) {0.05}, function(t,s) {0.02},
                         100, 0.09, 1.0, 0.06, 0.4, -0.75)

params <- HestonSLVMCParams(TRUE, 90, 50, 10000)

# calibrate HestonSLV model for the next year
mcModel <- new (HestonSLVMCModel,
                Sys.Date(), Sys.Date()+365,
                localVol, process, params)

s <- seq(50, 150, 1)
plot(s, sapply(s, function(spot) { mcModel$leverageFunction(1.0, spot) }), type='l',
     ylab="Leverage Function", xlab="Spot", main="Leverage Function in One Year")

klausspanderen/RHestonSLV documentation built on Oct. 4, 2021, 11:10 a.m.