1 votos

Diferencias de volatilidad

Para descubrir los precios de negociación de alta volatilidad, mido la desviación estándar de dos pares de divisas con un ejemplo sencillo:

prices_currency_1 = [1, 100]
prices_currency_2 = [.1, 10]

La desviación estándar de [1, 100] es 49,5, Código Python:

np.array([1, 100]).std()

Transformando precios_divisa_1 [1, 100] dividiendo por 10 se obtiene: 1/10 = .1 y 100/10 = 10. A continuación, medir la volatilidad de los valores transformados:

np.array([.1, 10]).std() devuelve 4,95

Si selecciono una divisa con la mayor volatilidad, entonces precios_divisa_1 parece correcto ya que 49,5 > 4,95 pero los cambios de precios en términos de magnitud son iguales. precios_divisa_1 aumentó un 100% y precios_divisa_2 también aumentó un 100% . ¿Es entonces incorrecto este método para encontrar los precios con mayor volatilidad? Algunos precios de las divisas pueden tener una mayor tasa de cambio por precio, pero debido a la magnitud de los valores de los precios, la volatilidad parece menor.

Por ejemplo np.array([.1, 20]).std() devuelve 9,95 que es mucho más bajo que 49,5 pero la variación del precio de [.1, 20] es mucho mayor que [1, 100] . ¿Existe una medida de la volatilidad para captar la variación?

4voto

Johannes Bauer Puntos 28

Hay dos grandes problemas con lo que estás haciendo.

En primer lugar, está tratando de estimar la desviación estándar de los precios en lugar de las variaciones de los mismos. Los precios no son estacionarios: espere lo suficiente y es probable que se dirijan a 0 o a un número muy grande; y, no tienden a permanecer alrededor de un valor determinado. No se pueden estimar los parámetros de forma fiable utilizando sólo datos no estacionarios.

En lugar de ello, se puede observar la evolución de los precios. Eso es mejor, pero se encuentra con el segundo problema: las variaciones de precios de los activos con precios altos tienden a ser mayores que las de los activos con precios bajos.

La mejor manera de manejar esto es trabajar con registros de retorno: las diferencias en log(prices) . Esto también elimina algunas asimetrías mecánicas que se obtienen si se utilizan rendimientos estándar. La desviación estándar de, por ejemplo, los rendimientos logarítmicos diarios, le proporciona una volatilidad diaria. Se puede escalar a una volatilidad anual (lo que se suele citar) multiplicando por sqrt(T) donde T es el número de días de negociación en un año.

2voto

RealityGone Puntos 163

Por eso hay que medir la desviación estándar de los rendimientos.

Permítame ampliar un poco su ejemplo:

prices_currency_1 = [1, 100 120]
prices_currency_2 = [.1, 10 12]

Devuelve:

returns_currency_1 = [ 9900% 20%]
returns_currency_2 = [ 9900% 20%]

Así que como puedes ver, la volatilidad de la moneda en sí, parece que la primera es más volátil. Pero en términos de rendimientos, que es lo que nos importa, la volatilidad de las dos monedas es la misma.

Por eso no se compara la volatilidad del precio de las acciones de Tesla y Berkshire, por ejemplo. Se compara la volatilidad de sus rendimientos.

Otra forma de decir esto, es que la volatilidad de invertir 1 dólar en la moneda 1, o 1 dólar en la moneda 2 (en el primer caso se compra 1 unidad y en el segundo 10 unidades), es la misma.

1voto

razong Puntos 919

Utilizo R, no python, pero la matemática es la misma en primer lugar: The estimation of price returns by first difference

A continuación, tome la desviación estándar de estos, sin embargo, para obtener una imagen estable en el tiempo utilizar la estimación GARCH, y una gran manera de proxy volatilidad implícita que es la clave para el arbitraje estadístico, es la estimación de la volatilidad media móvil ponderada exponencialmente. Con estos temas se embarcará en un viaje de profundo descubrimiento y se convertirá en un operador más rentable y mejor.

0voto

razong Puntos 919

Los métodos más comunes, aparte de la desviación estándar de los rendimientos, que es el método más común para estimar la volatilidad, son, el método del valor extremo de Parkinsons extreme value volatility Sheldon Natenberg sugiere Natenberg Adjustment

Yang Zhang Estimation.

Garman Class

Rogers Satchel

Garmen Class

Another method to estimate Parkinsinsons Ext Volatilty

Close to Close Method

Todas estas son estimaciones de volatilidad histórica o realizada, NO de volatilidad implícita, que es un juego completamente diferente.

0voto

razong Puntos 919

Aquí está la implementación más simple de una estimación de volatilidad implícita en VBA por Espen Haug, es fácilmente portable a Python, sin embargo, no estoy seguro, pero creo que QuantLib en Python tiene un estimador de volatilidad implícita incorporado. Aquí está el código de referencia:

Public Function GBlackScholesImpVolBisection(CallPutFlag As String, S As Double, _
            X As Double, T As Double, r As Double, b As Double, cm As Double) As Variant

Dim vLow As Double, vHigh As Double, vi As Double
Dim cLow As Double, cHigh As Double, epsilon As Double
Dim counter As Integer

vLow = 0.005
vHigh = 4
epsilon = 0.00000001
cLow = GBlackScholes(CallPutFlag, S, X, T, r, b, vLow)
cHigh = GBlackScholes(CallPutFlag, S, X, T, r, b, vHigh)
counter = 0
vi = vLow + (cm - cLow) * (vHigh - vLow) / (cHigh - cLow)
While Abs(cm - GBlackScholes(CallPutFlag, S, X, T, r, b, vi)) > epsilon
    counter = counter + 1
    If counter = 100 Then
        GBlackScholesImpVolBisection = "NA"
        Exit Function
    End If
    If GBlackScholes(CallPutFlag, S, X, T, r, b, vi) < cm Then
        vLow = vi
    Else
        vHigh = vi
    End If
    cLow = GBlackScholes(CallPutFlag, S, X, T, r, b, vLow)
    cHigh = GBlackScholes(CallPutFlag, S, X, T, r, b, vHigh)
    vi = vLow + (cm - cLow) * (vHigh - vLow) / (cHigh - cLow)
Wend
GBlackScholesImpVolBisection = vi

Fin de la función

La ecuación de black scholes necesita ser puesta en una función para ser llamada como una subrutina de esta función.

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