1 votos

Condiciones de contorno de la EDP de Black Scholes

Así que estoy tratando de resolver la ecuación de black scholes utilizando un modelo de diferencias finitas, pero estoy obteniendo una respuesta que está fuera y estoy teniendo problemas para entender por qué.

Este es el resultado para una opción con K = 100,0, r = 0,12 y sigma = 0,10

solution

El lado izquierdo está más alto de lo que debería, y debería empezar plano, pero el lado derecho está bastante cerca. Esta es la ecuación que estoy resolviendo:

$$ - \frac{\partial}{\partial t} V(t,s) + r\ s\ \frac{\partial}{\partial s} V(t,s) + \frac{1}{2}\ \sigma^2\ s^2\ \frac{\partial^2}{\partial s^2} V(t,s) - r\ V(t,s) = 0 $$

Aquí hay un gráfico que compara la solución con un gráfico de valores de la fórmula discretizada, la línea azul son los valores correctos, y la línea amarilla es lo que estoy obteniendo. Esto es a la expiración con t=1

def euro_call_sym(S, K, T, r, sigma):
    N = Normal('x', 0.0, 1.0)
    d1 = (sympy.ln(S / K) + (r + 0.5 * sigma ** 2) * T) / (sigma * sympy.sqrt(T))
    d2 = (sympy.ln(S / K) + (r - 0.5 * sigma ** 2) * T) / (sigma * sympy.sqrt(T))

    call = (S * cdf(N)(d1) - K * sympy.exp(-r * T) * cdf(N)(d2))
    return call

comparison

Para generar mi resultado no estoy usando ninguna condición de contorno, con derivadas de un lado de la izquierda en un punto del borde derecho y derivadas centradas en el resto.

¿Alguien sabe qué condiciones de contorno arreglarían el comportamiento de la parte izquierda de la gráfica?

2voto

user35546 Puntos 11

No estoy seguro de que el problema se deba a las condiciones de contorno; podrían ser muchas otras cosas, pero las condiciones de contorno en la forma más simple para las opciones de compra son:

  • Para S. muy grande: $V\left(t,S\right) \approx S$
  • Para S. muy pequeña: $V\left(t,S\right) \approx 0$

Para la opción de venta, las condiciones de contorno equivalentes son:

  • Para S. muy grande: $V\left(t,S\right) \approx 0$
  • Para S. muy pequeña: $V\left(t,S\right) \approx K e^{-r(T-t)}$

La condición inicial para cada uno de ellos es simplemente el pago de la opción al vencimiento.

Como nota, también se puede invertir el tiempo, y en este caso también es fácil deshacerse del coeficiente variable poniendo $x=\ln S$ y entonces se puede transformar la ecuación en la ecuación del calor, que es relativamente fácil de manejar con diferencias finitas.

0voto

Dom Puntos 704

Lo arreglé más tarde, el problema era la derivada hacia adelante que estaba usando a la izquierda. Para otras personas que intenten hacer algo similar, la clave del éxito para mí fue la siguiente:

  • condición de contorno de neumann a la derecha (o una derivada hacia atrás en un solo punto)
  • rellena el lado izquierdo para que V empiece en 0
  • condiciones límite de la respuesta de Magic

Estos son mis resultados (K=100, r=12%, sigma=10%)

2d 3d

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