Valor en riesgo (VaR) para la gestión del riesgo de negociación algorítmica
Estimar el riesgo de pérdida a una estrategia de negociación algorítmica, o cartera de estrategias, es de extrema importancia para el crecimiento de capital a largo plazo.
Aplicaremos el concepto de VaR a una sola estrategia o a un conjunto de estrategias para ayudarnos a cuantificar el riesgo en nuestra cartera de operaciones.
El VaR proporciona una estimación, con un cierto grado de confianza, del tamaño de la pérdida de una cartera durante un período de tiempo determinado.
En este caso,
Por ejemplo, un VaR igual a 500,000 USD a un nivel de confianza del 95% para un período de tiempo de un día simplemente indicaría que hay una probabilidad del 95% de perder no más de 500,000 USD en el día siguiente.
P ((L≤−5,0 × 10 ^ 5) = 0,05 O, más generalmente, para una pérdida L que exceda un valor VaR con un nivel de confianza c tenemos:
P ((L≤−VaR) = 1−c
El cálculo
El VaR es generalizado en la industria financiera, por lo que debe estar familiarizado con las ventajas y desventajas de la técnica.
Sin embargo, el VaR no está exento de sus desventajas:
La VaR no debe utilizarse aisladamente, sino siempre junto con un conjunto de técnicas de gestión de riesgos, como la diversificación, la asignación óptima de carteras y el uso prudente del apalancamiento.
Hasta ahora no hemos discutido el cálculo real de VaR, ni en el caso general ni en un ejemplo comercial concreto. Hay tres técnicas que nos interesarán. El primero es el método de variación-covarianza (usando supuestos de normalidad), el segundo es un método de Monte Carlo (basado en una distribución subyacente, potencialmente anormal) y el tercero se conoce como bootstrapping histórico, que utiliza información de rendimientos históricos para los activos en consideración.
En este artículo nos concentraremos en el Método de Varianza-Covarianza y en artículos posteriores consideraremos los métodos de Monte Carlo e Historical Bootstrap.
Consideremos una cartera de dólares P, con un nivel de confianza c. Estamos considerando los rendimientos diarios, con el activo (o estrategia) desviación estándar histórica σ y media μ. Luego, el VaR diario, bajo el método de covarianza de varianza para un solo activo (o estrategia) se calcula como:
P−(P(α(1−c) +1)) Donde α es el inverso de la función de distribución acumulada de una distribución normal con la media μ y la desviación estándar σ.
Podemos usar las bibliotecas SciPy y pandas de Python para calcular estos valores. Si establecemos P=106 y c=0.99, podemos usar el método SciPy ppf para generar los valores de la función de distribución acumulativa inversa a una distribución normal con μ y σ obtenidos de algunos datos financieros reales, en este caso los rendimientos diarios históricos de CitiGroup (podríamos sustituir fácilmente los rendimientos de una estrategia algorítmica aquí):
# var.py
import datetime
import numpy as np
import pandas.io.data as web
from scipy.stats import norm
def var_cov_var(P, c, mu, sigma):
"""
Variance-Covariance calculation of daily Value-at-Risk
using confidence level c, with mean of returns mu
and standard deviation of returns sigma, on a portfolio
of value P.
"""
alpha = norm.ppf(1-c, mu, sigma)
return P - P*(alpha + 1)
if __name__ == "__main__":
start = datetime.datetime(2010, 1, 1)
end = datetime.datetime(2014, 1, 1)
citi = web.DataReader("C", 'yahoo', start, end)
citi["rets"] = citi["Adj Close"].pct_change()
P = 1e6 # 1,000,000 USD
c = 0.99 # 99% confidence interval
mu = np.mean(citi["rets"])
sigma = np.std(citi["rets"])
var = var_cov_var(P, c, mu, sigma)
print "Value-at-Risk: $%0.2f" % var
El valor calculado de VaR se obtiene por:
Valor en riesgo: $56510.29 El valor real de lo que podría perderse en una cartera, más bien sólo que puede exceder una cierta cantidad de tiempo.
En los artículos siguientes no solo discutiremos cálculos alternativos para el VaR, sino que también describiremos el concepto de déficit esperado (también conocido como valor condicional en riesgo), que proporciona una respuesta a cuánto es probable que se pierda.