2 votos

Cómo utilizar la secuencia Halton en la simulación monte carlo

¿Alguien sabe cómo utilizar la técnica pseudoaleatoria de Halton en la simulación monte carlo? Soy capaz de generar las secuencias y sé que son correctas. He comprobado un par de números de diferentes secuencias. Pero, ¿cómo utilizo estos números cuando quiero generar un camino? ¿Sólo utilizo un número base y uso este vector para generar trayectorias de activos? ¿Para diferentes trayectorias no usaría los mismos números pero no cambiaré la base, o necesito cambiar la base?

Espero que alguien pueda explicarme esto.

3voto

StuffMaster Puntos 309

En primer lugar, ofrezco una breve descripción de las secuencias de Halton. A Halton es una secuencia determinista de números que proporciona "sorteos" bien espaciados de un intervalo y proporciona una correlación negativa entre la probabilidad simulada para los individuos.

  • La generación se basa en un número primo
  • La secuencia se construye a partir de divisiones cada vez más finas de subintervalos del intervalo unitario

Ejemplo

  • primo = 3

  • 0 , 1/3, 2/3, 3/3

    • 1/3, 2/3 (la longitud es 3^1 - 1)
  • 0 , 1/9, 2/9, 3/9, 4/9, 5/9, 6/9, 7/9, 8/9, 9/9

    • 3/9, 6/9, 1/9, 4/9, 7/9, 2/9, 5/9, 8/9 (la longitud es 3^2 - 1)
  • 0 , 1/27, 2/27, 3/27, 4/27, 5/27, 6/27, 7/27, 8/27, 9/27, 10/27, 11/27, 12/27, 13/27, 14/27, 15/27, 16/27, 17/27, 18/27, 19/27, 20/27, 21/27, 22/27, 23/27, 24/27, 25/27, 26/27, 27/27

    • 3/9, 6/9, 1/9, 4/9, 7/9, 2/9, 5/9, 8/9, 1/27, 10/27, 19/27, 4/27, 13/27, 22/27, 2/27, 7/27, 16/27, 25/27, 2/27, 11/27, 20/27, 5/27, 14/27, 23/27, 8/27, 17/27, 26/27 (la longitud es 3^3 - 1)

Una explicación rápida para esta larga secuencia.

  • 0 , 1/27 [9], 2/27 [18]
  • 9/27 [1], 10/27 [10], 11/24 [19]
  • 18/27 [2], 19/27 [11], 20/27 [20]
  • 3/27 [3], 4/27 [12], 5/27 [21]
  • 12/27 [4], 13/24 [13], 14/27 [22]
  • 21/27 [5], 22/27 [14], 23/27 [23]
  • 6/27 [6], 7/27 [15], 8/27 [24]
  • 15/27 [7], 16/27 [16], 17/27 [25]
  • 24/27 [8], 25/27 [17], 26/27 [26]

Espero que el patrón esté claro. Ahora, digamos que tomo la secuencia de longitud 8,

3/9, 6/9, 1/9, 4/9, 7/9, 2/9, 5/9, 8/9 .

Quiero encontrar el valor de una opción de compra europea con pago en el tiempo $t$ de $max(0, S(t) - K)$ donde $K$ es el precio de ejercicio y $S(t)$ es el precio de las acciones en $t$ . Digamos que el proceso de riesgo neutral para la acción es

$$dS(t)/S(t) = (r-\delta)dt + \sigma \tilde{dZ}(t)$$

donde $dZ(t) = \phi dt + dZ(t)$ . Entonces $d\ln(S(t)) = (r - \delta - 0.5\sigma^2) dt + \sigma \tilde{dZ(t)}$ para que $\ln(S(t)/S(0)) \sim N(m = (r-\delta - 0.5\sigma^2)t, v = \sigma \sqrt{t})$ donde $\delta$ es el tipo de dividendo compuesto continuamente de la acción, $r$ es el tipo de interés sin riesgo y $\sigma$ es la volatilidad.

Primero podemos utilizar el método de inversión para transformar el número uniforme en números normales aleatorios. El primer número sería $N^{-1}(1/3)$ = -0.43. Esta es la función cuantil de la distribución normal estándar con $N(-0.43) = 1/3$ . Los números normales transformados son -0.43, 0.43, -1.22, -0.139, 0.765, -0.765, 0.139, 1.22 . Denotemos un número normalizado por $z_j$ . Luego un número aleatorio normal de nuestra distribución, $n_j = v z_j + m_j$ .

Supongamos que $\sigma = 0.3$ , $r = 0.05$ , $\delta = 0$ y $t=1$ es el tiempo hasta la expiración. A continuación, $m = (0.05 - 0 - 0.5*0.3^2) = 0.005$ y $v = 0.30$ . El primer número normal transformado es $0.30 (-0.43) + 0.005 = -0.124$ . La lista de números es

  • -0.124, 0.134, -0.361, -0.0369, 0.234, -0.2244, 0.0469, 0.3712

Entonces tomamos $x_j = exp(n_j)$ para obtener los números aleatorios log-normales. El primer número aleatorio log-normal es $exp(-0.124) = 0.883$ . La lista de números i

  • 0.883, 1.14, 0.697, 0.964, 1.264, 0.80, 1.048, 1.45 .

Digamos que el precio inicial de las acciones es $S(0) = 40$ . A continuación, los precios de las acciones al vencimiento, $S(1) = S(0) x_j$ . El primer precio de las acciones es 40 * 0,883 = 35,33. Se muestra la lista de precios de las acciones, seguida de los pagos con $K=40$ para una llamada europea.

  • S(1): 35.33, 45.75, 27.87, 38.55, 50.57, 31.96, 41.92, 57.98
  • Pago(1): 0, 5.75, 0, 0, 10.57, 0, 1.92, 17.98

El pago medio es de 3,286. El precio estimado de la opción en el tiempo 0 es $C = exp(-0.05) 3.286 = 4.53$ . El precio Black-Scholes de la opción es 5,692502. Si utilizamos 26 números, nuestro precio se convierte en 4,89.

EDITAR 1

Voy a dar un ejemplo de lo que quiero decir con precio intermedio: utilizaré la secuencia Halton anterior para estimar el precio de una llamada de precio medio geométrico con $K=40$ . Obsérvese que existe una fórmula de Black Scholes de forma cerrada para esta opción que se muestra aquí .

$u$ = 3/9, 6/9, 1/9, 4/9, 7/9, 2/9, 5/9, 8/9

$z$ = -0.43, 0.43, -1.22, -0.1397, 0.765, -0.765, 0.1397, 1.22

$n$ = 0.089, 0.094, -0.2564, -0.027, 0.165, -0.160, 0.032, 0.2614

$x$ = 0.915, 1.10, 0.774, 0.973, 1.18, 0.852, 1.03, 1.30

$S_{1/2}$ = 36.60, 43.94, 30.95, 38.93, 47.16, 34.09, 41.31, 51.95

Utilicemos ahora un conjunto diferente de números Halton (con primo = 2). La secuencia es 1/2, 1/4, 3/4, 1/8, 5/8, 3/8, 7/8, 1/16, 9/16, 5/16, ... pero sólo queremos los 8 primeros números. Tenga en cuenta que el precio de las acciones $36.69 = 36.60 * 1.0025$

$u$ = 1/2, 1/4, 3/4, 1/8, 5/8, 3/8, 7/8, 1/16

$z$ = 0.00, -0.674, 0.674, -0.115, 0.3189, -0.3189, 1.15, -1.534

$n$ = 0.0025, -0.1405, 0.1455, -0.2415, 0.070, -0.0651, 0.2465, -0.3229

$x$ = 1.0025, 0.8689, 1.16, 0.785, 1.072, 0.9370, 1.28, 0.724

$S_{1}$ = 36.69, 38.17, 35.80, 30.58, 50.59, 31.95, 52.86, 37.61

Las medias geométricas son $( S_{1/2} S_{1} )^{1/2}$ . Por ejemplo, $36.64 = (36.60 * 36.69)^{0.5}$

$G$ = 36.64, 40.95, 33.289, 34.50, 48.845, 33.00, 46.73, 44.21

A continuación se muestra el valor de la opción para cada una de estas medias. Tenga en cuenta que $max(0, 36.64 - 40) = 0$ y $max(0, 40.954 - 40) = 0.95433$ .

$V$ = 0.00, 0.954, 0.00, 0.00, 8.85, 0.00, 6.73, 4.21

El precio de la opción se estima en $\overline{V} e^{-r (1)} = 2.59 e^{-0.05} = 2.47$ .

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