Pricing Models
Equity
Heston
HestonModel
- ql.HestonModel(HestonProcess)
today = ql.Date().todaysDate()
riskFreeTS = ql.YieldTermStructureHandle(ql.FlatForward(today, 0.05, ql.Actual365Fixed()))
dividendTS = ql.YieldTermStructureHandle(ql.FlatForward(today, 0.01, ql.Actual365Fixed()))
initialValue = ql.QuoteHandle(ql.SimpleQuote(100))
v0 = 0.005
theta = 0.010
kappa = 0.600
sigma = 0.400
rho = -0.15
hestonProcess = ql.HestonProcess(riskFreeTS, dividendTS, initialValue, v0, kappa, theta, sigma, rho)
hestonModel = ql.HestonModel(hestonProcess)
PiecewiseTimeDependentHestonModel
- ql.PiecewiseTimeDependentHestonModel(riskFreeRate, dividendYield, s0, v0, theta, kappa, sigma, rho, timeGrid)
today = ql.Date().todaysDate()
riskFreeTS = ql.YieldTermStructureHandle(ql.FlatForward(today, 0.05, ql.Actual365Fixed()))
dividendTS = ql.YieldTermStructureHandle(ql.FlatForward(today, 0.01, ql.Actual365Fixed()))
initialValue = ql.QuoteHandle(ql.SimpleQuote(100))
times = [1.0, 2.0, 3.0]
grid = ql.TimeGrid(times)
v0 = 0.005
theta = [0.010, 0.015, 0.02]
kappa = [0.600, 0.500, 0.400]
sigma = [0.400, 0.350, 0.300]
rho = [-0.15, -0.10, -0.00]
kappaTS = ql.PiecewiseConstantParameter(times[:-1], ql.PositiveConstraint())
thetaTS = ql.PiecewiseConstantParameter(times[:-1], ql.PositiveConstraint())
rhoTS = ql.PiecewiseConstantParameter(times[:-1], ql.BoundaryConstraint(-1.0, 1.0))
sigmaTS = ql.PiecewiseConstantParameter(times[:-1], ql.PositiveConstraint())
for i, time in enumerate(times):
kappaTS.setParam(i, kappa[i])
thetaTS.setParam(i, theta[i])
rhoTS.setParam(i, rho[i])
sigmaTS.setParam(i, sigma[i])
hestonModelPTD = ql.PiecewiseTimeDependentHestonModel(riskFreeTS, dividendTS, initialValue, v0, thetaTS, kappaTS, sigmaTS, rhoTS, grid)
Bates
Short Rate Models
One Factor Models
Vasicek: (r0=0.05, a=0.1, b=0.05, sigma=0.01, lambda=0.0)
BlackKarasinski: (YieldTermStructure, a=0.1, sigma=0.1)
HullWhite: (YieldTermStructure, a=0.1, sigma=0.01)
Gsr()
Vasicek
- ql.Vasicek(r0=0.05, a=0.1, b=0.05, sigma=0.01, lambda=0.0)
BlackKarasinski
- ql.BlackKarasinski(termStructure, a=0.1, sigma=0.1)
HullWhite
- ql.HullWhite(termStructure, a=0.1, sigma=0.01)
Gsr
One factor gsr model, formulation is in forward measure.
- ql.Gsr(termStruncture, volstepdates, volatilities, reversions)
Two Factor Models
G2
- ql.G2(termStructure, a=0.1, sigma=0.01, b=0.1, eta=0.01, rho=-0.75)