2 votos

¿Por qué al cambiar el tamaño del paso en mi Árbol Binomial cambia tanto el precio final de las acciones?

Estoy tratando de fijar el precio de un bono convertible utilizando un árbol binomial. Para ello, escribí un árbol binomial para el precio de las acciones. Me he dado cuenta de que al cambiar el tamaño de los pasos (timesteps), cambia el valor final de mis precios de las acciones significativamente. Intuitivamente esto es incorrecto, ya que los movimientos de subida y bajada deberían ser escalados en consecuencia. Me imagino que esto también cambiará el precio del bono convertible.

Pensé en establecer $u = \text{e}^{\sigma\sqrt{dt}}$ podría hacer el truco. ¿Alguien podría decirme qué estoy haciendo mal? Gracias.

import numpy as np
import math as math

S0 = 100 #Initial stock price
T = 5 #Maturity
timesteps = 16 #Amount of steps in the three
dt = T/timesteps #Step size
sigma = 0.28 #Vol
r = 0.01 #Interest rate
N = 300 #Notional amount (for convertible bond)
kappa = N/S0 #Conversion rate (for convertible bond)
c = 0.05 #Coupomn rate (for convertible bond)

u = np.exp(sigma*math.sqrt(dt))
d = 1/u
p = (np.exp(r*dt)-d)/(u-d)

S = np.zeros((timesteps,timesteps))
for i in range(timesteps):
    for j in range(timesteps):
        S[j,i] = S0*(u**(i-j))*(d**j)

S = np.triu(S)

4voto

pt314159 Puntos 21

Sólo tienes un error menor, pero déjame explicarte por qué aumenta el alcance.

Denotemos $n:=timesteps$ entonces

  1. Estás haciendo un bucle de una iteración demasiado pequeño al llenar su $S$ matriz, haciendo que tenga S(T-dt) y no S(T) como valores terminales. Esto se debe a que no se tiene en cuenta la posición inicial, es decir, se necesita $1+n$ iteraciones en cada dimensión.

    ... S = np.zeros((1+timesteps, 1+timesteps)) # Include starting position too (S0). for i in range(S.shape[1]): for j in range(S.shape[0]): S[j,i] = S0*(u*(i-j))(d**j)

    S = np.triu(S)

  2. El rango de valores posibles de $S(T)$ aumenta correctamente con $n$ . El alcance viene dado por $[S_0 d^n, S_0 u^n] = [S_0 e^{-\sigma\sqrt{nT}}, S_0 e^{\sigma\sqrt{nT}}]$ . Obsérvese que mientras el rango aumenta, la probabilidad de acabar en estos valores extremos disminuye. De hecho, según el Teorema Central del Límite, en el límite como $n\to \infty$ la distribución binomial se convertirá en la distribución continua logarítmica normal, que efectivamente tiene un soporte positivo infinito $(0,+\infty)$ .

  3. Lo que garantiza el modelo binomial CRR es que la media y la varianza del modelo binomial discreto coinciden con las del modelo continuo . La media de las acciones coincidirá exactamente para cualquier $n$ mientras que la varianza se aproximará asintóticamente al caso continuo. La razón por la que la varianza no se iguala exactamente para cualquier $n$ es que al encontrar el parámetro $u$ por la coincidencia de la varianza, se hicieron aproximaciones manteniendo sólo los términos de primer orden en una expansión en serie de Taylor.

    ====================================================

    === Compare moments to the continuous exact ones ===

    ====================================================

    from scipy import stats as stats

    Binomial model for number of down moves

    pd = 1-p dist = stats.binom(n=timesteps, p=pd)

    Stock terminal mean and variance E[S(T)/S0] and V[S(T)/S0]

    1st moment for S(T)

    bin_m1 = dist.expect(lambda k: S[k.astype(int),-1]/S0)

    2nd moment for S(T)

    bin_m2 = dist.expect(lambda k: (S[k.astype(int),-1]/S0)**2)

    Var[S_T] = E[S_T^2] - E[S_T]^2

    bin_var = bin_m2 - bin_m1**2 print(f'Binomial Model: E[S/S0]={bin_m1:.4f}, V[S/S0]={bin_var:.4f}')

    Continuous S(T) moments, https://en.wikipedia.org/wiki/Geometric_Brownian_motion#Properties

    gbm_m1 = np.exp(rT) gbm_var = np.exp(2rT)(np.exp(sigma*2T)-1) gbm_m2 = gbm_var + gbm_m1**2 print(f'Continuous GBM: E[S/S0]={gbm_m1:.4f}, V[S/S0]={gbm_var:.4f}')

Modelo binomial: E[S/S0]=1,0513, V[S/S0]=0,5218

GBM continuo: E[S/S0]=1,0513, V[S/S0]=0,5304

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