Fourier-based Option Pricing

Documentation:

This is the documentation for fftoptionlib [https://github.com/arraystream/fftoptionlib]

Assume the price of the asset has the following representation: $$ S_t = S_0 \exp{[(r-q+w)t+X_t]} $$ where $X_t$ is a stochastic process and r,q,w are interest rate, dividend rate and martingale correction item

We can get the log price $$ \log(S_t)=\log(S_0)+(r-q+w)t+X_t $$

If the charateristic function of $X_t$ is known, we can derive the characteristic function of $\log(S_t)$

We provide the following characteristic functions for $\log(S_t)$:

  • BlackScholes
  • MertonJump
  • KouJump
  • Poisson
  • VarianceGamma
  • NIG
  • Heston
  • CGMY

If you want to add more, just write the characteristic function for $X_t$, use general_ln_st_chf function can produce the corresponding characteristic function for $\log(S_t)$

Each Process can be priced by the following three methods

  • FFTEngine
  • FractionFFTEngine
  • CosineEngine
In [1]:
import numpy as np
import simpleplotly as spt
from fftoptionlib import *
import plotly
import plotly.offline as py
%matplotlib inline
plotly.offline.init_notebook_mode() # run at the start of every notebook