2 votos

Aplicación de la condición de contorno superior de la PDE de SABR

Al ejecutar mi código de diferencias finitas, observo algo extraño.

Aunque implemento un modelo SABR clásico (no reversible), inicialicé las variables de tal manera que debería ser igual a Black-Scholes.

Condiciones límite para

  • Límite inferior del precio

  • Límite inferior de la volatilidad

  • Límite superior de la volatilidad

son de tipo Dirichlet (simplemente se ponen iguales a un valor).

Para el límite superior del precio a plazo ( $F$ ), quiero establecer la condición de Neumann de $\Gamma=0$ , ya que creo que esto es cierto para todas las opciones (put y call) para un precio subyacente grande. Esta condición produce:

$\dfrac{\partial^2 V}{\partial x^2}(\dfrac{\partial x}{\partial F})^2+\dfrac{\partial V}{\partial x}\dfrac{\partial^2 x}{\partial F^2}=\Gamma=0$

Tenga en cuenta que los términos adicionales con $x$ y $F$ se deben a mi transformación de la variable $F$ a $x$ .

Edita el 19 de junio: @Yian_Pap Estoy de acuerdo, olvidémonos de la condición de suavizado y centrémonos en conseguir que la condición de Neumann funcione. Permítanme ser específico con respecto a mis pasos aplicando su enfoque :) Así es como lo implementaría actualmente, pero una vez más no estoy muy familiarizado con FD (este es mi primer caso de uso):

  • En primer lugar, no me queda claro con qué EDP hay que empezar (¿ecuación de precios? o sólo la $\Gamma=0$ ecuación?). Si partimos de $\Gamma=0$ ¿por qué preocuparse de que el término de la derivada cruzada sea 0 o no?

  • Si empiezo con $\Gamma=0$ , no hay transformaciones en F, entonces

$\dfrac{\partial^2 V}{\partial F^2} = 0$

discretizar mediante FD central de 2º orden aprox,

$\dfrac{1}{\Delta F^2} (V_{N-1,j} - 2V_{N,j} + V_{N+1,j}) = 0$ ,

$V_{N,j}=\dfrac{1}{2}(V_{N-1,j}+V_{N+1,j})$ (1),

que contiene el punto de la cuadrícula exterior $V_{N+1,j}$ ¿a qué supongo que se refiere en su respuesta?

Entonces, según entiendo su comentario respecto a que la primera derivada en $F \to \infty$ es conocido y constante, ¿quieres decir que el delta es 1 (0) para una call (put)?

$\dfrac{\partial V}{\partial F} = \Delta = 1$ ,

$V_{N,j} = \Delta F + V_{N-1,j}$ ,

utilice esto para sustituir $V_{N+1,j}$ en (1),

$V_{N,j} = \Delta F + V_{N-1,j}$ ,

con $\Delta F$ tamaño de paso en F. Entonces puedo incorporar esto en la matriz de coeficientes como sigue. (Pregunta al margen: ¿por qué no utilizar $\Delta=1$ directamente).

Digamos que tengo un esquema implícito $V_{i,j,k} = z_1V_{i-1,j,k+1} + z_2V_{i,j,k+1} + z_3V_{i+1,j,k+1}$ . Entonces, para algún i (es decir, en algunos lugares de la matriz) $V_{i+1,j}$ es un límite, por lo que la entrada de la matriz se establece $0$ . Incorpore la ligadura añadiendo $z_3$ a $z_2$ en cada lugar de la matriz donde $i=N-1$ . Además, añada $z_3\Delta F$ . Matemáticamente,

$V_{N-1,j,k} = z_1V_{N-2,j,k+1} + (z_2+z_3)V_{N-1,j,k+1} + z_3\Delta F$ .

¿Sería esta una comprensión correcta de cómo debe implementarse la condición F Neumann de límite superior?

2voto

Michał Górny Puntos 351

Dondequiera que sus referencias PDE discretizadas $V_{N,j,k+1}$ , utilizará su expresión para $V_{N,j,k+1}$ en términos de $V_{N1,j,k+1}$ y $V_{N2,j,k+1}$ para eliminar $V_{N,j,k+1}$ de la ecuación discretizada. Esto significa que el sistema algebraico que resolverá no implicará ningún $V_{N,j,k+1}$ directamente (por lo que no hay $C_{k+1}$ contribución de la discretización F). Más bien se aumentarán los coeficientes del sistema de la $V_{N1,j,k+1}$ y $V_{N2,j,k+1}$ puntos en consecuencia.

Editar 18 de junio . Bien, empecemos de nuevo y asumamos que estás utilizando la EDP de precios en la F directa (sin transformaciones). Si usas una condición de suavización, necesitarás usar aproximaciones de diferencias finitas de un solo lado para que puedas cerrar tu sistema algebraico en la última línea $F=F_{max}$ . Dicho esto, la razón por la que optó por este tipo de condición (de suavizado) es porque cuando lo intentó con Neumann, no obtuvo resultados correctos. Pero lo más probable es que esto se deba a que cometiste un error en alguna parte. Yo lo intentaría de nuevo como sigue para la última línea de puntos de tu cuadrícula: la primera derivada en F (llamémosla $D_{F\to\infty}$ ) ya se conoce (se sabe su valor a partir de la condición de Neumann), por lo que no es necesario discretizarlo en la frontera, simplemente se utiliza su valor conocido. La derivada cruzada también se hace cero allí, ya que la primera derivada en la dirección F es constante (incluso en el caso general en el que $\nu$ no es cero). La única derivada en la dirección F que tendrás que discretizar es la segunda derivada y ésta hará referencia a un punto fuera de tu malla (con la aproximación central FD de 2º orden estándar). Este punto "ficticio" en tus ecuaciones discretizadas lo sustituirás por su valor extrapolado como $V_{N+1,j,k+1} = V_{N,j,k+1} + D_{F\to\infty} d_F $ . Esto cerrará de nuevo tu sistema y estarás listo para ir. Pruebe y hágame saber si algo todavía no está claro.

0 votos

También cambiaría el título de la pregunta por algo más específico como "Implementación de la condición de contorno SABR PDE de extrema derecha", aunque tu pregunta es realmente genérica de diferencias finitas.

0 votos

@Yian_Pap Gracias por su respuesta. Al aplicar el enfoque que mencionas, no entiendo lo siguiente. Resolviendo y reescribiendo la EDP, obtengo la expresión para un punto en el límite del precio spot $V_{N,j,k} = z_1 V_{N-1,j,k+1} + z_2 V_{N-2,j,k+1} + z_3 V_{N,j,k+1}$ . Entonces puedo reescribir a $V_{N,j,k+1} = z_1^{*} V_{N-1,j,k+1} + z_2^{*} V_{N-2,j,k+1} + z_3^{*} V_{N,j,k}$ ("fórmula X"). En el punto $V_{N-1,j,k+1}$ Entonces puedo sustituir esta expresión para descartar $V_{N,j,k+1}$ . Sin embargo, me devuelven un plazo $V_{N,j,k}$ (ver fórmula "X"). ¿Está bien? ¿Cómo saber su valor para $k\neq0$ ?

0 votos

¿Por qué tienes $V_{N,j,k}$ en la expresión? La condición de Neumann no implica una derivada temporal, así que no estoy seguro de cómo has llegado a una expresión que implica puntos tanto en k como en k+1. Debería implicar sólo puntos en k+1.

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