OptionPricing - crowlogic/arb4j GitHub Wiki
The expression for a European Call option price , derived from the Heston PDE, is shown below, (in the form presented by Crisostomo in CHRSO2014
$$C_0 = S_0.\Pi_1 - \mathrm{e}^{-rT}K.\Pi_2$$
$$\Pi_1 = \frac{1}{2} + \frac{1}{\pi} \int_0^\infty Re\left[\frac{\mathrm{e}^{-i.w.ln(K)}.\Psi_{lnS_T}(w - i)}{i.w.\Psi_{lnS_T}(-i)} \right]\mathrm{d}w$$
$$\Pi_2 = \frac{1}{2} + \frac{1}{\pi} \int_0^\infty Re\left[\frac{\mathrm{e}^{-i.w.ln(K)}.\Psi_{lnS_T}(w)}{i.w} \right]\mathrm{d}w$$
whence
$$\Psi_{lnS_T}(w) = \mathrm{e}^{[C(t,w).\tilde{V} + D(t,w).V_0 + i.w.ln(S_0.\mathrm{e}^{rt})]}$$
$$C(t,w) = λ.\left[r_-.t - \frac{2}{\eta^2}.ln\left(\frac{1 - g.\mathrm{e}^{-ht}}{1 - g}\right)\right]$$
$$D(t,w) = r_-(w) .\frac{1 -\mathrm{e}^{-h(w)t}}{1 - g.\mathrm{e}^{-ht}}$$
$$r_{\pm}(w) = \frac{\beta(w) \pm h(w)}{\eta^2}$$
$$h(w) = \sqrt{\beta(w)^2 - 4.\alpha(w).\gamma}$$
$$g(w) = \frac{r_-(w)}{r_+(w)}$$
$$\alpha(w) = -\frac{w^2}{2} - \frac{iw}{2}$$
$$\beta(w) = \alpha(w) - \rho.\eta. i. w$$
$$\gamma = \frac{\eta^2}{2}$$
Unicode
the log-Heston process characteristic function ΨₗₙSᴛ(ω), C(T, ω), D(T, ω), and the intermediate variables are:
ΨₗₙSᴛ(ω) = exp(C(T, ω) * Ṽ + D(T, ω) * V₀ + i * ω * ln(S₀ * e^(r * T)))
C(T, ω) = λ * (r₋(ω) * T - (2 / η²) * ln((1 - g(ω) * f(ω, T)) / (1 - g(ω))))
D(T, ω) = r₋(ω) * (1 - f(ω, T)) / (1 - g(ω) * f(ω, T))
Intermediate variables as functions of ω:
r₊(ω) = (β(ω) + h(ω)) / η²
r₋(ω) = (β(ω) - h(ω)) / η²
h(ω) = √(β(ω)² - 4 * α(ω) * γ)
g(ω) = r₋(ω) / r₊(ω)
α(ω) = -ω² / 2 - i * ω / 2
β(ω) = α(ω) - ρ * η * i * ω
γ = η² / 2