1 votos

Modelo Heston con saltos tanto en la varianza como en la dinámica subyacente

¿Cómo puedo construir en Matlab un modelo Heston utilizando la función característica añadiendo saltos en la varianza y la dinámica subyacente? Supongamos que el número de saltos tiene una distribución de Poisson pero el tamaño de los saltos es log-normal para los saltos subyacentes y exponencial para la varianza. Este es el código actual en Matlab, ¿cómo puedo añadir saltos?

function y = call_heston_cf(s0, v0, vbar, a, vvol, r, rho, t, k) 

%   Heston call value using characteristic functions.   
%   y = call_heston_cf(s0, v0, vbar, a, vvol, r, rho, t, k) 

%   Inputs:  
    %   s0: stock price 
    %   v0: initial volatility (v0^2 initial variance) 
    %   vbar: long-term variance mean 
    %   a: variance mean-reversion speed 
    %   vvol: volatility of the variance process 
    %   r: risk-free rate  
    %   rho: correlation between the Weiner processes of the stock price and its variance 
    %   t: time to maturity 
    %   k: option strike 
    %   chfun_heston: Heston characteristic function 

%  1st step: calculate pi1 and pi2  
%  Inner integral 1
int1 = @(w, s0, v0, vbar, a, vvol, r, rho, t, k) real(exp(-i.*w*log(k)).*chfun_heston(s0, v0, vbar, a, vvol, r, rho, t, w-i)./(i*w.*chfun_heston(s0, v0, vbar, a, vvol, r, rho, t, -i))); 

% inner integral1
int1 = integral(@(w)int1(w,s0, v0, vbar, a, vvol, r, rho, t, k),0,100); 

% numerical integration
pi1 = int1/pi+0.5; %final pi1

%  Inner integral 2:
int2 = @(w, s0, v0, vbar, a, vvol, r, rho, t, k) real(exp(-i.*w*log(k)).*chfun_heston(s0, v0, vbar, a, vvol, r, rho, t, w)./(i*w));

int2 = integral(@(w)int2(w,s0, v0, vbar, a, vvol, r, rho, t, k),0,100);
int2 = real(int2);

pi2 = int2/pi+0.5; % final pi2 

%  2rd step: calculate call value
y = s0*pi1-exp(-r*t)*k*pi2; 

end

1voto

drN Puntos 571

El primer paso es incluir los saltos en el precio de las acciones. A continuación, puede añadir fácilmente los saltos en el proceso de varianza. Si sólo se consideran saltos grandes y poco frecuentes, se puede utilizar una difusión de saltos como los modelos de Merton (1976) y Kou (2002). El primero utiliza una distribución logarítmica normal para el tamaño del salto, mientras que Kou emplea una distribución exponencial doble.

Un modelo que combina directamente Heston (1993) y Merton (1976) fue desarrollado por Bates (1996).

Normalmente se asume que la componente de salto y la componente de difusión (sto vol) son independientes. Esto significa que la función característica del logaritmo del precio de las acciones $\ln(S_t)$ viene dada por \begin {align*} \varphi_ { \ln (S_t)}(u) = \varphi_ {StoVol}(u) \cdot \varphi_ {Saltos}(u). \end {align*}

Basta con buscar las funciones características del modelo de Merton y de Kou. Por ejemplo, \begin {align*} \varphi_t ^ \text {Kou}(u) &= \exp\left ( \ln\left (S_0e^{(r-q+ \omega )t} \right )iu \right ) \cdot \varphi_ { \sigma W_t}(u) \cdot \varphi_ {N_t}(u) \\ &= \exp\left ( \ln\left (S_0e^{(r-q+ \omega )t} \right )iu- \frac {1}{2} \sigma ^2u^2t+t \lambda\left ( \frac {p \zeta }{ \zeta -iu}+ \frac {q \eta }{ \eta +iu}-1 \right ) \right ), \end {align*} donde \begin {align*} \omega &= - \frac {1}{2} \sigma ^2- \lambda\left ( \frac {p \zeta }{ \zeta -1}+ \frac {q \eta }{ \eta +1}-1 \right ). \end {align*}

La fórmula para integrar la función característica $\Pi_1$ y $\Pi_2$ se mantienen sin cambios. Y entonces se puede obtener el precio de la opción al "estilo Black-Scholes". Los métodos de Fourier pueden acelerarse utilizando el enfoque de Carr Madan (1999), controlando los modelos auxiliares y haciendo uso de la representación del coseno de la función de densidad.

0 votos

Gracias por su ayuda. Sabe usted cómo configurar esto en matlab?

0 votos

@AttilioMeden Precisamente como su código actual. Justo donde usas ``chfun_heston'', tienes que implementar una función característica diferente. Evidentemente, esto dependerá de algunos parámetros más del modelo. Pero el cálculo de $\Pi_1$ , $\Pi_2$ y el precio final de la opción sigue siendo el mismo.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X