特征函数Carr-Madan法实现期权价格的Fourier变换

2024-05-15 21:20:45 发布

您现在位置:Python中文网/ 问答频道 /正文

Carr-Madan期权定价方法中的Psi是将期权价格作为特征函数的Fourier变换

函数psi应该返回一个标量,而不是引起问题的向量。因此,我正在寻找替代实施的建议

import numpy as np
from scipy.special import gamma

param = [24.79, 94.45, 95.79, 0.2495, 0]
alpha = 1.1
lnS = 4.142976
r = 0.05
Sigma = 0.25
scale = 1

FFT_N = int(np.power(2,15))
uvec = np.linspace(1,FFT_N,FFT_N)
vj = (uvec-1) * 0.5
Tmt = 1/12

def psi(CF, vj, alpha, lnS, T=Tmt):
    u=vj-(alpha*1j+1j)
    denom = alpha**2 + alpha - Sigma**2 + vj * 2 * alpha * 1j + 1j * vj
    return CF(u,lnS, Tmt)/denom

CF=lambda u, lnS, T: cf_log_cgmy(u=u, lnS=lnS, T=Tmt, mu=r, half_etasq=param[4],C=param[0], G=param[1], M=param[2], Y=param[3])

def cf_log_cgmy(u, lnS, T, mu ,half_etasq, C, G, M, Y):

    omega = -C*gamma(-Y)*(np.power(M-1,Y)-np.power(M,Y)+np.power(G+1,Y)-np.power(G,Y ))
    phi_CGMY = C*T*gamma(-Y)*(np.power(M-1j*u,Y)-np.power(M,Y)+np.power(G+1j*u,Y)- np.power(G,Y))
    phi = 1j*u*(lnS + (mu+omega-half_etasq)*T) + phi_CGMY - half_etasq*np.power(u,2)
    return np.exp(scale*phi)


psi(CF, vj, alpha, lnS, T=Tmt)


psi函数代表下面所附论文第64页的等式(6)

https://engineering.nyu.edu/sites/default/files/2018-08/CarrMadan2_0.pdf


Tags: fftalphaparamnpcfpowerphigamma