ARIMA-Black-Scholes: Semi-Parametric Market price of risk for Risk-Neutral Pricing (code + preprint)

Wait 5 sec.

[This article was first published on T. Moudiki's Webpage - R, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.In quantitative finance, pricing derivatives often requires working under a risk-neutral measure (Q) rather than the real-world physical measure (P). While the Girsanov theorem provides a theoretical framework for this change of measure, practical implementation can be challenging—especially for complex models like stochastic volatility with jumps.This blog post demonstrates a semi-parametric approach that bridges classical time series modeling with risk-neutral pricing. We’ll show how to: Simulate stock price paths under three different models (GBM, SVJD, Heston) using the physical measure Extract the risk premium using ARIMA modeling Transform physical paths to risk-neutral paths through residual resampling Price European options under the risk-neutral measureModels Compared Geometric Brownian Motion (GBM): The classic Black-Scholes model with constant volatility Stochastic Volatility Jump Diffusion (SVJD): Incorporates both stochastic volatility and price jumps Heston Model: Stochastic volatility without jumps (a special case of SVJD)Methodological ApproachOur semi-parametric method involves: Physical Simulation: Generate paths under the real-world measure with expected return μ Risk Premium Extraction: Fit ARIMA models to discounted price increments to capture serial dependence Residual Resampling: Use Gaussian density estimation to resample centered ARIMA residuals Risk-Neutral Path Generation: Combine fitted ARIMA models with resampled residuals to create martingale paths Option Pricing: Compute option prices as discounted expected payoffs under QR Packages Used esgtoolkit: For financial simulations and risk-neutral transformations ahead: For time series forecasting and residual resampling forecast (auto.arima): For automatic ARIMA model selectionThe complete reproducible code is presented below, organized in logical sections from simulation to option pricing.## ----setup, include=FALSE------------------------------------------------------knitr::opts_chunk$set(echo = TRUE)## ----1-simulate-SVJD, cache=TRUE-----------------------------------------------# ARIMA-Black-Scholes: Semi-Parametric Risk-Neutral Pricing# T. Moudiki# 2025-12-04library(esgtoolkit)library(forecast)library(ahead)# =============================================================================# 1 - SVJD SIMULATION (Physical Measure)# =============================================================================set.seed(123)n