Strategy health monitoring — ¿dead o drawdown temporal?¶
El problema más difícil del trader sistemático: distinguir "la strategy dejó de funcionar" de "drawdown temporal normal". Resuelve MS-01. Propuesta: ensemble de 4 métricas + reglas pre-registradas, no discreción.
El dilema¶
Imaginemos después de 12 meses la strategy tiene -15% vs SPY +5% (underperformance 20%).
Opción A — la strategy murió: factor crowding extremo, regime shift, algo cambió. Opción B — drawdown temporal: dentro del rango histórico; value factor tuvo un año malo; paciencia requerida.
Errar en la dirección A: abandono prematuro. Pierdo reversion que vendría. Errar en la dirección B: me quedo en una strategy zombie. Pérdidas acumulan.
Referencia teórica¶
Structural break detection¶
Academia: tests como Chow, CUSUM, Bai-Perron para detectar change points en time series. Bayesian MCMC métodos para inference sobre break probability.
Problema práctico: p-values tradicionales necesitan MUCHOS datapoints post-break para statistical significance. Para retail con ~24 meses de data, detectar un break con confianza es casi imposible estadísticamente.
Enfoque pragmático¶
En lugar de un single test estadístico, usar un ensemble de 4 indicadores:
Las 4 métricas¶
1. Rolling 12-month Sharpe vs histórico¶
- Calcular rolling Sharpe de la strategy en últimos 12 meses.
- Comparar contra Sharpe esperado (3-5% excess con Sharpe 0.7-0.8, ver analysis/factor-crowding-alpha-decay).
- Umbral: si rolling 12m Sharpe < 0 por 3 meses consecutivos → flag.
- Umbral hard: si rolling 12m Sharpe < -0.5 por 1 mes → revisión mandatoria.
2. Hit rate decay del composite score¶
- Revisar: top decile por composite score ¿sigue batiendo al bottom decile?
- Meses donde top 10 rinde < market average = hit rate bajo.
- Umbral: si hit rate <45% en últimos 6 meses → factor decay probable.
3. Factor returns industry-wide¶
- No solo tu strategy — mirar performance de factor ETFs:
- MTUM (momentum)
- VLUE (value)
- QUAL (quality)
- Si MTUM, VLUE, QUAL todos en drawdown pero SPY up → factor crisis industry-wide. Tu strategy sigue el patrón, no está rota, solo en mal régimen.
- Si factor ETFs up pero tu strategy down → implementation bug, revisa código.
4. Drawdown vs historical distribution¶
- Backtest de la strategy sobre 15+ años → distribución de drawdowns historical.
- Compare current drawdown contra distribución:
- Dentro de worst 10% histórico: alerta, dentro de expected.
- Peor que worst 5% histórico: fuera de expected → investigar.
- Peor que worst 1% histórico: strategy probablemente rota.
Regla de decisión (pre-registrada)¶
| Estado | Condiciones (AND) | Acción |
|---|---|---|
| Normal | Ninguna alerta activa | Seguir |
| Caution | 1 métrica alerta | Monitoreo diario. No cambios. |
| Review | 2 métricas alerta, o drawdown fuera p10 | Pausa 1 mes. Analyze. No trades nuevos. |
| Investigate | 3+ métricas alerta, o drawdown fuera p5 | Pausa permanente hasta review externa. |
| Terminate | 4 métricas alerta por 2 meses, O drawdown fuera p1, O 3 años <1% excess | End experiment. Close positions. |
Estas reglas se definen ex-ante (antes de empezar), no post-hoc. Son commitment devices parecidos a concepts/commitment-devices-for-kill-switches.
Paciencia requerida¶
Momentum + value + quality: drawdowns de 12-18 meses son normales históricamente. AQR en momentum: ha tenido períodos de 24+ meses underperforming.
Heurística: si el drawdown es < p10 histórico, esperar. Si > p5, actuar.
Monthly review routine¶
La Weekly Review routine (concepts/scheduled-routines-pattern) extendida un mes incluye:
## Strategy health check — YYYY-MM
### 4 métricas
1. Rolling 12m Sharpe: X.XX (threshold: 0)
2. Hit rate 6m: XX% (threshold: 45%)
3. Factor ETF performance: MTUM X%, VLUE X%, QUAL X%
4. Current drawdown: -X% (historical p10: -X%, p5: -X%)
### Alerts activas
- [ ] Rolling Sharpe < 0 por 3 meses
- [ ] Hit rate < 45% por 6 meses
- [ ] Drawdown > historical p10
- [ ] Strategy underperforms factor ETFs (bug sospechoso)
### Estado del sistema
Normal / Caution / Review / Investigate / Terminate
### Acciones siguientes
...
Cuándo NO usar discreción¶
Nunca override este framework por "tengo corazonada". Si el sistema dice Caution y el user dice "sigo con full size porque creo que es transitorio" — ese es el learning bias documentado en analysis/retail-learning-bias.
Sí usar discreción para ADD seguridad (e.g., el user detecta un error de código y pausa sin que el framework lo pida).
Gaps¶
- Los umbrales exactos (0 Sharpe, 45% hit rate) son heurísticos. Requieren backtesting para calibrar al comportamiento histórico esperado.
- ¿Cómo detectar un bug implementacional vs strategy dead? La métrica #3 (comparar vs factor ETFs) es el mejor proxy.
- Bayesian priors sería matemáticamente más rigoroso — post-MVP, explorar.
Relaciones¶
- Resuelve: MS-01.
- Complementa: concepts/commitment-devices-for-kill-switches (health monitoring activa switches).
- Informa: analysis/recommended-strategy-for-user (acciones por fase).
- Informado por: analysis/factor-crowding-alpha-decay (expected returns realistas).