Una estrategia de trading algorítmico rentable no se encuentra: se diseña, se valida y se mejora con un proceso estructurado. El 90 % de los traders que fracasan en el trading algorítmico no fallan por falta de talento matemático, sino porque saltan de la idea al backtest sin pasar por un proceso riguroso de diseño y validación. Esta guía te explica ese proceso, paso a paso.
Paso 1: Define la hipótesis antes de tocar el código
El mayor error al diseñar una estrategia algorítmica es empezar por los indicadores en lugar de por la hipótesis de mercado. Una hipótesis válida debe responder a: ¿qué ineficiencia del mercado estoy intentando capturar y por qué debería persistir?
Ejemplos de hipótesis correctamente formuladas:
- «Los índices americanos tienden a extenderse en la dirección del gap de apertura durante la primera hora de sesión en días con volumen superior al promedio de 20 días.»
- «El EUR/USD revierte a su media de 4 horas cuando el RSI diario supera 70 o cae por debajo de 30 y hay divergencia con el precio.»
- «El petróleo (CL) tiende a moverse más de 1 ATR por sesión los miércoles por la publicación del informe de inventarios EIA.»
Si no puedes explicar en dos frases por qué debería funcionar la estrategia, es una señal de alerta.
Paso 2: Define las reglas de entrada, salida y gestión de riesgo
Una estrategia completa debe tener reglas explícitas para tres elementos: cuándo entrar, cuándo salir y cuánto arriesgar. No hay margen para la ambigüedad, porque el código no puede interpretar «cuando el mercado parece alcista».
| Elemento | Qué definir | Ejemplo concreto |
|---|---|---|
| Condición de entrada | Indicadores, precio, tiempo, volumen | RSI(14) cruza por encima de 30 y precio por encima de SMA(200) |
| Stop-loss | Fijo, ATR-based o estructural | Stop a 1,5x ATR(14) del precio de entrada |
| Take-profit | Fijo, ratio R:R o trailing | Target a 3x ATR(14) → ratio 1:2 |
| Filtro de sesión | Horario de operación | Solo entre 09:30 y 16:00 ET |
| Tamaño de posición | % de capital arriesgado por operación | Máximo 1 % del capital por operación |
Paso 3: Backtesting con datos tick reales
Un backtest válido debe usar datos tick reales, no barras OHLC interpoladas, y debe incluir comisiones y slippage realistas. La diferencia entre un backtest «limpio» y uno realista puede ser la diferencia entre creer que una estrategia gana un 30 % anual y descubrir que en realidad está rota.
Parámetros de backtesting que no son negociables:
- Período mínimo de datos: 5 años. 3 años es insuficiente para capturar distintas condiciones de mercado (tendencia, lateral, alta volatilidad).
- Comisiones: usar el coste real de tu broker. Para el ES, ~4,20 $ por vuelta; para forex, el spread más 5–7 $ por lote estándar.
- Slippage: añadir al menos 1 tick de slippage por operación en mercados líquidos, más en activos menos líquidos.
- Sesgo de supervivencia: verificar que los datos históricos no excluyen períodos de alta volatilidad o eventos extremos como COVID-19 (marzo 2020) o el flash crash de 2010.
Paso 4: Criterios para saber si una estrategia es suficientemente buena
Una estrategia pasa el filtro mínimo de calidad si cumple simultáneamente los siguientes seis criterios.
- Profit Factor ≥ 1,5: por cada euro perdido, se ganan al menos 1,50 €.
- Max Drawdown ≤ 20 %: la pérdida máxima desde un pico hasta el valle siguiente no supera el 20 % de la cuenta.
- Win Rate ≥ 40 % (con R:R 1:2) o ≥ 55 % (con R:R 1:1).
- Número de operaciones ≥ 200: menos de 200 operaciones en el backtest no ofrece significancia estadística suficiente.
- Consistencia anual: ningún año individual en el backtest debe terminar con pérdidas superiores al 15 %.
- Superación del walk-forward: el Profit Factor en las ventanas out-of-sample debe mantenerse por encima de 1,3.
Paso 5: Paper trading y ajuste al entorno real
El paper trading no es opcional: es el puente entre el backtest y el dinero real. Durante el paper trading, el objetivo no es ganar, sino verificar que el sistema ejecuta exactamente como estaba diseñado.
Cosas que verificar durante el paper trading:
- ¿Las entradas y salidas ocurren en los precios esperados o hay un desvío sistemático?
- ¿El sistema se activa correctamente fuera del horario de backtesting?
- ¿Hay problemas de reconexión cuando la plataforma pierde la conexión con el broker?
- ¿Las órdenes de stop no se convierten en órdenes de mercado en aperturas con gap?
Paso 6: Gestión del portafolio de estrategias
Un trader algorítmico profesional no opera una sola estrategia: opera un portafolio de estrategias no correlacionadas. La diversificación entre estrategias de tendencia y reversión, entre distintos mercados y distintos marcos temporales, reduce el drawdown global del portafolio sin reducir proporcionalmente el retorno esperado.
Un portafolio mínimo viable para un trader independiente puede ser:
- 1 estrategia de tendencia en futuros de índices (ES o NQ).
- 1 estrategia de reversión intradía en el mismo mercado.
- 1 estrategia en un mercado diferente (CL, GC o EUR/USD).
Con tres sistemas bien diseñados y no correlacionados, el drawdown global suele ser un 30–40 % menor que el peor drawdown individual.
Preguntas frecuentes
¿Cuánto tiempo lleva diseñar la primera estrategia?
Con dedicación consistente de 2–3 horas diarias, la primera estrategia lista para paper trading puede estar lista en 6–8 semanas. El mayor tiempo se va en aprender la plataforma y en entender los matices del backtesting, no en la lógica de la estrategia en sí.
¿Debo optimizar muchos parámetros?
No. La sobre-optimización (curve fitting) es el mayor peligro del trading algorítmico. Una estrategia robusta funciona con un rango amplio de parámetros, no solo con un valor exacto. Si tu sistema solo funciona con RSI de 14 períodos pero se rompe con 13 o 15, es una señal de sobreajuste.
¿Qué hacer cuando una estrategia empieza a perder en live?
Define de antemano el criterio de parada: un drawdown en live superior al 150 % del drawdown histórico máximo es el umbral habitual para pausar y revisar. No modifiques los parámetros del sistema mientras está en producción. Si hay que cambiar algo, backtestea primero el cambio en datos nuevos.
