1 votos

Simulación del movimiento browniano geométrico

Genero 10000 trayectorias binomiales aleatorias para una acción cuyo precio va desde S(0) = 10 hasta S(t) donde t = 1 año. Supongamos un movimiento browniano geométrico para el precio de la acción con una deriva del 15% anual y una volatilidad del 20%. Utilizo 10000 pasos de tiempo igualmente espaciados de longitud a lo largo de cada camino y $\Delta S = \mu S \Delta t \pm \sigma S \sqrt{\Delta t}$ donde los movimientos + o - en cada paso de tiempo se generan al azar con igual probabilidad.

S = 10
S1 = []
mean = 0.15
sd = 0.2

for i in range(10000):
    S = 10

    for j in range(10000):
        roll = np.random.rand()

        if roll < 0.5:
            S = S + mean*S/10000 + sd*S/100
        else:
            S = S + mean*S/10000 - sd*S/100

    S1.append(S)

Utilizo los códigos anteriores para simular el GBM y mi resultado es el mismo que los valores teóricos. La media debería ser $S(0)e^{\mu t}$ y la varianza debe ser $S^2(0)e^{2\mu t}(e^{\sigma^2 t} - 1)$ . Pero hay una pregunta que quiere que calcule la inversa, que es $G(t) = 1/S(t)$ . Considero que la media debe ser $\frac{1}{S(0)}e^{\mu t}$ y la varianza deben ser $\frac{1}{S^2(0)}e^{2\mu t}(e^{\sigma^2 t} - 1)$ . ¿Estoy en lo cierto? Pero no estoy seguro de cómo cambiar mis códigos. He intentado escribir los siguientes códigos. Pero el resultado está lejos de los valores teóricos media = 0,116 y varianza = 0,00055. ¿Podría alguien explicarme en qué me estoy equivocando? Muchas gracias.

S = 10
G1 = [1/10]
mean = 0.15
sd = 0.2

for i in range(10000):
    S = 10

    for j in range(10000):
        roll = np.random.rand()

        if roll < 0.5:
            G = 1/S
            S = S + mean*S/10000 + sd*S/100
            G = G + mean*(1/S)/10000 + sd*(1/S)/100
        else:
            G = 1/S
            S = S + mean*S/10000 - sd*S/100
            G = G + mean*(1/S)/10000 - sd*(1/S)/100

    G1.append(G)

0 votos

Hola: Vago esbozo de cómo hacer esto: $\frac{ds}{S}$ es continua BW ( usted discretizó ) así que yo haría el mismo tipo de discretización para averiguar cuál es la difusión para $\triangle(\frac{1}{S})$ .. A continuación, puede realizar un tipo de simulación similar pero que será para $ \traingle(\frac{1}{S})$ .. No pude averiguar cómo hacer un triángulo más pequeño. Creo que se puede utilizar el lema de Ito para calcular la difusión para $\frac{1}{S}$ .

0 votos

Hola, ¿podría explicar más sobre $\Delta \frac{1}{S}$ ? Muchas gracias. He probado varios métodos. Pero los resultados están todos muy lejos de los valores teóricos media = 0,116 y varianza = 0,00055.

0 votos

Para la media de 1/S, ¿su código produce: $E\left[\frac{1}{S_t}\right]=\frac{1}{S_0}\,e^{-\left(\mu-\frac{1}{2}\sigma^2\right)t+\frac{1}{2}\sigma^2 t}=\frac{1}{S_0}\,e^{-\mu t+\sigma^2t}$ ?

3voto

user35546 Puntos 11

Sólo para explicar las fórmulas de la media y la varianza. Podemos empezar con la solución de la SDE de GBM:

$S_t=S_0\,e^{\left(\mu-\frac{1}{2}\sigma^2\right)t+\sigma W_t}$

entonces,

$\frac{1}{S_t}=\frac{1}{S_0}\,e^{-\left(\mu-\frac{1}{2}\sigma^2\right)t-\sigma W_t}$

La media (y la varianza) se obtienen fácilmente mediante esta identidad para una variable aleatoria gaussiana Y:

$E\left[e^Y\right]=e^{E\left[Y\right]+\frac{1}{2}V\left[Y\right]}$

Aplicando esto a S, y observando que:

$E\left[\left(\mu-\frac{1}{2}\sigma^2\right)t+\sigma W_t\right]=\left(\mu-\frac{1}{2}\sigma^2\right)t$

$V\left[\left(\mu-\frac{1}{2}\sigma^2\right)t+\sigma W_t\right]=\sigma^2t$

obtenemos la conocida expresión para la media de S:

$E\left[S_t\right]=S_0\,e^{\left(\mu-\frac{1}{2}\sigma^2\right)t+\frac{1}{2}\sigma^2 t}=S_0\,e^{\mu t}$

Y aplicando la identidad a la expresión de 1/S, obtenemos su media como sigue:

$E\left[\frac{1}{S_t}\right]=\frac{1}{S_0}\,e^{-\left(\mu-\frac{1}{2}\sigma^2\right)t+\frac{1}{2}\sigma^2 t}=\frac{1}{S_0}\,e^{-\mu t+\sigma^2t}$

La varianza puede determinarse utilizando la misma identidad.

0 votos

Por lo tanto, no es necesaria la discretización-simulación. Basta con introducir los términos y obtener las expectativas. ¿Sólo para asegurarme de que eso es correcto? Gracias.

0 votos

@Cindy: Borro mi respuesta ya que es el-wrongo o al menos no es necesario.

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