Description Arguments Objects from the Class References Examples
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 Finite Difference methods solving the Fokker-Planck forward equation.
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 |
hestonSLVFDMParams |
an object of the class HestonSLVFDMParams |
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("HestonSLVFDMModel", referenceDate, maxCalibrationDate,
localVolFunction, hestonProcess, hestonSLVFMParams)
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
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 <- new ("HestonSLVFDMParams")
# calibrate HestonSLV model for the next year
fdmModel <- new (HestonSLVFDMModel,
Sys.Date(), Sys.Date()+365,
localVol, process, params)
s <- seq(50, 200, 1)
plot(s, sapply(s, function(spot) { fdmModel$leverageFunction(1.0, spot) }), type='l',
ylab="Leverage Function", xlab="Spot", main="Leverage Function in One Year")
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.