Experto en Backtesting
Enfoque sistemático para probar estrategias de trading basado en una metodología profesional que prioriza la robustez sobre los resultados optimistas.
Filosofía Principal
Objetivo: Encontrar estrategias que "se rompan menos", no estrategias que "generen más ganancias" en papel.
Principio: Agrega fricción, pon a prueba las suposiciones y observa qué sobrevive. Si una estrategia se mantiene bajo condiciones pesimistas, es más probable que funcione en trading en vivo.
Cuándo Usar Este Skill
Usa este skill cuando:
- Desarrolles o valides estrategias de trading sistemáticas
- Evalúes si una idea de trading es lo suficientemente robusta para implementación en vivo
- Soluciones por qué un backtest podría ser engañoso
- Aprendas la metodología correcta de backtesting
- Evites errores comunes (sobreajuste, sesgo de mirar hacia adelante, sesgo de supervivencia)
- Evalúes la sensibilidad de parámetros y la dependencia del régimen de mercado
- Establezcas expectativas realistas sobre deslizamiento y costos de ejecución
Prerrequisitos
- Python 3.9+ (para el script de evaluación)
- No se requieren claves API
- No hay dependencias de datos externas: las métricas las proporciona el usuario
Flujo de Trabajo
1. Enunciar la Hipótesis
Define la ventaja en una oración.
Ejemplo: "Las acciones que suben más del 3% en ganancias y retroceden al cierre del día anterior dentro de la primera hora ofrecen una oportunidad de reversión a la media."
Si no puedes articular la ventaja claramente, no procedas a las pruebas.
2. Codificar Reglas Sin Discreción
Define con total especificidad:
- Entrada: Condiciones exactas, momento, tipo de precio
- Salida: Stop loss, objetivo de ganancia, salida basada en tiempo
- Tamaño de posición: $$ fijo, % del portafolio, ajustado por volatilidad
- Filtros: Capitalización de mercado, volumen, sector, condiciones de volatilidad
- Universo: Qué instrumentos son elegibles
Crítico: No se permite juicio subjetivo. Cada decisión debe basarse en reglas y ser inequívoca.
3. Ejecutar Backtest Inicial
Prueba durante:
- Mínimo 5 años (preferiblemente 10+)
- Múltiples regímenes de mercado (alcista, bajista, alta/baja volatilidad)
- Costos realistas: Comisiones + deslizamiento conservador
Examina los resultados iniciales para determinar viabilidad básica. Si está fundamentalmente roto, itera sobre la hipótesis.
4. Someter la Estrategia a Pruebas de Estrés
Aquí es donde se debe pasar el 80% del tiempo de prueba.
Sensibilidad de parámetros:
- Prueba el stop loss al 50%, 75%, 100%, 125%, 150% del valor base
- Prueba el objetivo de ganancia al 80%, 90%, 100%, 110%, 120% del valor base
- Varía el momento de entrada/salida en ±15-30 minutos
- Busca "mesetas" de rendimiento estable, no picos estrechos
Fricción de ejecución:
- Aumenta el deslizamiento a 1.5-2x las estimaciones típicas
- Modela las peores ejecuciones posibles (comprar al ask+1 tick, vender al bid-1 tick)
- Agrega escenarios realistas de rechazo de órdenes
- Prueba con estructuras de comisiones pesimistas
Robustez temporal:
- Analiza el rendimiento año por año
- Requiere expectativa positiva en la mayoría de los años
- Asegura que la estrategia no dependa de 1-2 períodos excepcionales
- Prueba por separado en diferentes regímenes de mercado
Tamaño de muestra:
- Mínimo absoluto: 30 operaciones
- Preferido: 100+ operaciones
- Alta confianza: 200+ operaciones
5. Validación Fuera de Muestra
Análisis walk-forward:
- Optimiza en el período de entrenamiento (ej. Año 1-3)
- Prueba en el período de validación (Año 4)
- Avanza y repite
- Compara el rendimiento dentro de muestra vs. fuera de muestra
Señales de advertencia:
- Rendimiento fuera de muestra <50% del rendimiento dentro de muestra
- Necesidad de re-optimización frecuente de parámetros
- Parámetros cambian drásticamente entre períodos
6. Evaluar Resultados
Preguntas a responder:
- ¿La ventaja sobrevive a suposiciones pesimistas?
- ¿El rendimiento es estable ante variaciones de parámetros?
- ¿La estrategia funciona en múltiples regímenes de mercado?
- ¿El tamaño de la muestra es suficiente para confianza estadística?
- ¿Los resultados son realistas, no "demasiado buenos para ser verdad"?
Criterios de decisión:
- ✅ Desplegar: Sobrevive a todas las pruebas de estrés con rendimiento aceptable
- 🔄 Refinar: La lógica central es sólida pero necesita ajuste de parámetros
- ❌ Abandonar: Falla en pruebas de estrés o depende de suposiciones frágiles
Usa el script de evaluación para una valoración cuantitativa estructurada:
python3 skills/backtest-expert/scripts/evaluate_backtest.py \
--total-trades 150 \
--win-rate 62 \
--avg-win-pct 1.8 \
--avg-loss-pct 1.2 \
--max-drawdown-pct 15 \
--years-tested 8 \
--num-parameters 3 \
--slippage-tested \
--output-dir reports/
El script puntúa en 5 dimensiones (Tamaño de Muestra, Expectativa, Gestión de Riesgo, Robustez, Realismo de Ejecución), detecta banderas rojas y emite un veredicto de Desplegar/Refinar/Abandonar.
Principios Clave de Prueba
Castiga la Estrategia
Agrega fricción en todas partes:
- Comisiones más altas que en la realidad
- Deslizamiento 1.5-2x el típico
- Peores ejecuciones posibles
- Rechazos de órdenes
- Ejecuciones parciales
Justificación: Las estrategias que sobreviven suposiciones pesimistas a menudo superan en el trading en vivo.
Busca Mesetas, No Picos
Busca rangos de parámetros donde el rendimiento sea estable, no valores óptimos que creen picos de rendimiento.
Bueno: Estrategia rentable con stop loss en cualquier punto entre 1.5% y 3.0% Malo: Estrategia solo funciona con stop loss exactamente en 2.13%
El rendimiento estable indica una ventaja genuina; los óptimos estrechos sugieren sobreajuste.
Prueba Todos los Casos, No Ejemplos Seleccionados
Enfoque incorrecto: Estudiar "líderes de mercado" seleccionados manualmente que funcionaron Enfoque correcto: Probar cada acción que cumplió los criterios, incluidas aquellas que fallaron
Los ejemplos selectivos crean sesgo de supervivencia y sobreestiman la calidad de la estrategia.
Separa la Generación de Ideas de la Validación
Intuición: Útil para generar hipótesis Validación: Debe ser puramente basada en datos
Nunca dejes que el apego a una idea influya en la interpretación de los resultados de las pruebas.
Patrones Comunes de Fracaso
Reconoce estos patrones temprano para ahorrar tiempo:
- Sensibilidad de parámetros: Solo funciona con valores exactos de parámetros
- Específico de un régimen: Excelente en algunos años, terrible en otros
- Sensibilidad al deslizamiento: No rentable cuando se agregan costos realistas
- Muestra pequeña: Muy pocas operaciones para confianza estadística
- Sesgo de mirar hacia adelante: Resultados "demasiado buenos para ser verdad"
- Sobreoptimización: Muchos parámetros, malos resultados fuera de muestra
Consulta references/failed_tests.md para ejemplos detallados y un marco de diagnóstico.
Salida
reports/backtest_eval_<timestamp>.json: evaluación estructurada con puntuaciones por dimensión, banderas rojas y veredictoreports/backtest_eval_<timestamp>.md: informe legible con tabla de dimensiones, métricas clave y detalles de banderas rojas
Recursos
Referencia de Metodología
Archivo: references/methodology.md
Cuándo leer: Para orientación detallada sobre técnicas de prueba específicas.
Contenido:
- Métodos de pruebas de estrés
- Análisis de sensibilidad de parámetros
- Modelado de deslizamiento y fricción
- Requisitos de tamaño de muestra
- Clasificación de regímenes de mercado
- Sesgos y errores comunes (supervivencia, mirar hacia adelante, sobreajuste, etc.)
Referencia de Pruebas Fallidas
Archivo: references/failed_tests.md
Cuándo leer: Cuando una estrategia falle las pruebas, o para aprender de errores pasados.
Contenido:
- Por qué los fracasos son valiosos
- Patrones comunes de fracaso con ejemplos
- Marco de documentación de casos de estudio
- Lista de verificación de banderas rojas para evaluar backtests
Recordatorios Críticos
Asignación de tiempo: Dedica el 20% a generar ideas, el 80% a intentar romperlas.
Requisito sin contexto: Si la estrategia requiere "contexto perfecto" para funcionar, no es lo suficientemente robusta para trading sistemático.
Bandera roja: Si los resultados del backtest parecen demasiado buenos (tasa de acierto >90%, drawdowns mínimos, sincronización perfecta), audita cuidadosamente en busca de sesgo de mirar hacia adelante o problemas con los datos.
Limitaciones de la herramienta: Comprende las limitaciones de tu plataforma de backtesting y tenlas en cuenta al interpretar los resultados.