Inicio › Documentación › Validación y robustez
Análisis 4

Simulación Monte Carlo

Disponible en la pestaña Monte Carlo del Strategy Performance Report. Responde: ¿cuánto dependió tu curva del ORDEN en que ocurrieron las operaciones? El beneficio final es el mismo en cualquier orden (sumar los profits en otra secuencia da el mismo total), pero el drawdown sí cambia. El test mide si el drawdown que sufriste fue afortunado o típico frente a otras secuencias de esos mismos trades.

El principio

Una estrategia con 200 trades sufrió sus rachas de pérdidas en un orden concreto — quizá afortunado. El Monte Carlo toma los mismos 200 trades con sus profits reales y los baraja aleatoriamente 300 veces, recalculando la curva de equity cada vez. El punto final siempre coincide (la suma no depende del orden), pero el camino —y sobre todo el drawdown máximo— cambia en cada barajado. Así ves el rango de drawdowns que podrías haber sufrido con esos mismos trades, y dónde cayó el tuyo.

Lo que muestra
  • → Curva de equidad real (línea cyan)
  • → Banda p25–p75 de los órdenes barajados
  • → Banda p5–p95 (los caminos posibles; convergen al final)
  • → Mediana de las 300 simulaciones
  • →Drawdown real vs peor caso (p95)
  • →Nota coloreada: % de órdenes con peor drawdown
Cómo interpretar
> 80% → SÓLIDA (drawdown robusto)
Tu drawdown real es mejor (menor) que el de la gran mayoría de órdenes barajados. La curva aguanta bien aunque cambie la secuencia de operaciones.
40–80% → ACEPTABLE
Drawdown intermedio frente al reordenamiento: comportamiento típico. Fíjate en el peor caso (p95) para dimensionar el riesgo real.
< 40% → SEÑAL DE ALARMA
Tu drawdown real está entre los peores de todos los órdenes posibles: la curva dependió mucho de la secuencia. Cuenta con caídas mayores que la histórica.

Técnica: Fisher-Yates shuffle

Cada simulación reordena los trades usando el algoritmo Fisher-Yates: una permutación completamente aleatoria sin sesgo, donde todas las ordenaciones posibles son equiprobables.

// Para cada simulación j:
for i := N-1 downto 1 do
  k := Random(i+1)
  Swap(Trades[i], Trades[k])
// Recalcular equity acumulado

Rendimiento

Con 300 simulaciones y cientos de trades, el cálculo completo (barajado + equity + drawdown + percentiles) tarda unas pocas decenas de ms — se ejecuta en la propia cara (JS) sin bloqueo visible.

300
simulaciones
< 50 ms
tiempo de cómputo

Se calcula al mostrar la pestaña Monte Carlo (y al redimensionar la ventana). Los botones de la nota no recalculan nada.

Pruébalo tú mismo

AniQuant se prueba gratis durante 30 días, con todos los módulos y sin tarjeta.

← Anterior
Test de robustez de parámetros
Siguiente →
Test de supervivencia
Más en Validación y robustez