6. Métricas de rendimiento y riesgo que sí importan
Nivel 12: Backtesting y Métricas de Riesgo Reales
En trading, evaluar la eficacia y el riesgo de una estrategia es crucial. Las métricas de rendimiento ayudan a valorar la rentabilidad y la consistencia; las métricas de riesgo revelan sus vulnerabilidades potenciales. Veamos las principales de cada familia.
Parte 1: métricas de rendimiento
1. Medidas de retorno
- P/L total: evalúa el beneficio o pérdida global de la estrategia.
- P/L medio: indica el beneficio o pérdida medio por unidad de tiempo.
- Ratio de acierto (hit-rate): proporción de operaciones ganadoras frente a perdedoras.
2. Medidas ajustadas por riesgo
- Ratio de Sharpe: mide el exceso de retorno por unidad de riesgo. En código plano: restas la rentabilidad libre de riesgo al retorno de la estrategia, divides por la desviación típica de los retornos y anualizas. Tiene limitaciones, como suponer que los patrones futuros imitarán a los pasados.
import numpy as np
exceso = retornos_diarios - tasa_libre_riesgo_diaria
sharpe_anual = np.sqrt(252) * exceso.mean() / exceso.std()- Ratio de Sortino: variante del Sharpe que se centra en la desviación típica de los retornos negativos. Penaliza solo la volatilidad que duele.
negativos = exceso[exceso < 0]
sortino_anual = np.sqrt(252) * exceso.mean() / np.sqrt((np.minimum(exceso, 0) ** 2).mean())- Ratio de Calmar: compara la rentabilidad media anual de los últimos tres años con el drawdown máximo del mismo periodo.
3. Medidas de retorno relativo
- Up/Down Capture Ratio: compara el retorno del fondo con el del benchmark durante los movimientos alcistas y bajistas de este.
- Up/Down Percentage Ratio: mide con qué frecuencia el fondo bate al benchmark en sus periodos positivos y negativos.
Parte 2: métricas de riesgo
1. Métricas de riesgo básicas
- Varianza: indica cuánto se desvía el retorno respecto al esperado, reflejando la volatilidad del activo.
- Drawdown máximo: la mayor pérdida de pico a valle, expresada en porcentaje.
curva = (1 + retornos_diarios).cumprod()
maximo_movil = curva.cummax()
drawdown = curva / maximo_movil - 1
max_drawdown = drawdown.min()2. Medidas de riesgo relativo
- Coeficiente de correlación: fuerza y dirección de la relación lineal entre dos variables.
- Beta: mide la volatilidad de una cartera en relación con el mercado.
3. Medidas de riesgo de cola
- VaR (Value-at-Risk): estima la pérdida potencial durante un periodo definido y con un nivel de confianza dado.
- CVaR (Conditional VaR): promedia las pérdidas que superan el VaR, ofreciendo una evaluación del riesgo más completa.
var_95 = np.percentile(retornos_diarios, 5)
cvar_95 = retornos_diarios[retornos_diarios <= var_95].mean()Comprender e implementar estas métricas permite evaluar y refinar estrategias, equilibrando la búsqueda de rentabilidad con una gestión prudente del riesgo. Considera siempre las limitaciones y la aplicabilidad de cada métrica para que encajen con tu estilo y tus objetivos.
Por qué el retorno total no basta
Dos estrategias con el mismo 80% acumulado pueden ser universos distintos si una lo consiguió con un drawdown máximo del 12% y la otra del 55%. Y hay una aritmética que conviene grabarse: recuperarse de una caída del 40% exige una subida posterior del 66,7%; de un 50%, del 100%. Las pérdidas y las ganancias no son simétricas.
Y una advertencia sobre el Sharpe: castiga la volatilidad al alza igual que la volatilidad a la baja, y supone implícitamente que la desviación típica describe bien el riesgo. Una estrategia de venta sistemática de opciones fuera del dinero puede exhibir un Sharpe altísimo durante años, con retornos pequeños y regularísimos, mientras acumula una exposición que se materializa en una sola sesión catastrófica. El Sharpe no ve esa cola; el drawdown máximo y el CVaR sí.
Para ampliar esta lección
- Caída máxima (drawdown)en el glosario
- Ratio de Sharpeen el glosario
- Ratio de Sharpe, caída máxima y CAGR: qué midenguía