Cómo hacer backtesting de una estrategia de trading se resume así: escribes sus reglas con precisión, reproduces los datos históricos de precio vela a vela sin ver lo que viene después, registras cada operación que producen las reglas, costes incluidos, y juzgas los resultados según el número de operaciones que realmente tienes. Para un trader manual o discrecional, eso significa replay del gráfico (chart replay) y una hoja de cálculo, no código.
La mayoría de los backtests fallan por motivos que no tienen nada que ver con la estrategia: reglas vagas que se rellenan con la ventaja de saber lo que pasó, costes que faltan, treinta operaciones tratadas como prueba, una sesión eliminada después de seis operaciones malas. Cada uno de estos errores produce un resultado mejor que cualquier cosa que vayas a ver en real.
Esta guía es para traders de forex y CFD sobre índices en EUR/USD, XAU/USD, NAS100 y mercados similares, incluidas las cuentas de prop firm. Recorre el método en orden y desarrolla cada cifra paso a paso.
¿Qué te puede decir un backtest y qué no?
Un backtest responde a una sola pregunta: si se hubieran seguido exactamente estas reglas sobre estos datos, con estos costes, ¿cómo habrían sido las operaciones? Muestra si un setup produjo una esperanza matemática (expectancy) positiva en R, hasta dónde llegaron los drawdowns y las rachas de pérdidas, y si el resultado depende de una sola sesión o de un solo mes.
No te puede decir que el edge vaya a continuar; una estrategia ajustada a un periodo puede fallar en el siguiente. Tampoco te puede decir si ejecutarás las reglas bajo presión; eso lo miden el forward testing y un diario en real. Y un backtest manual reduce tu propio sesgo, pero no lo elimina. Trata el resultado como una evidencia con margen de error, no como un pronóstico.
¿Cómo se escriben reglas que un desconocido podría ejecutar?
La prueba de una regla es si otra persona, con solo tu documento y el gráfico, tomaría las mismas operaciones. Si dos personas discreparían en un tercio de los setups, lo que estás probando es tu estado de ánimo, no una estrategia.
Usa una plantilla fija:
Estrategia: Retroceso tras ruptura de Londres Versión: 1.0
Mercado / TF: EUR/USD, entradas en M15, contexto en H1
Ventana sesión: Solo 07:00-11:00 UTC
Filtro contexto: Cierre H1 por encima de la EMA 50 para largos (por debajo para cortos)
Disparador: Cierre M15 más allá del máximo o mínimo del rango asiático
Entrada: Límite en el nivel roto, válida 4 velas
Stop: 2 pips más allá del extremo opuesto de la vela disparadora
Salida: 2R fijo; cerrar a las 16:00 UTC si no se toca ninguno
Gestión: Ninguna en v1.0
Tamaño: 0.5% del balance por operación
Sin operar: Noticia de alto impacto en los 30 min; máximo 2 operaciones al día
Cada campo tiene que poder comprobarse sobre una vela cerrada: "momentum fuerte" no es una regla; "cuerpo M15 mayor que el de las tres velas anteriores" sí lo es.
Pon versión a tus reglas. Si cambias cualquier cosa, aunque sea el margen del stop, pasa a ser la versión 1.1; las operaciones tomadas con la 1.0 no cuentan para la muestra de la 1.1. Mezclar versiones es la forma en que un backtest se convierte, sin que te des cuenta, en sobreajuste de curva (curve fitting).
¿Cómo se configura el replay del gráfico para que no puedas hacer trampa?
El backtesting manual tiene dos sesgos distintos, y cada uno necesita una solución diferente.
El sesgo retrospectivo (hindsight bias) está en tu cabeza. Ya has visto el gráfico o recuerdas el periodo, así que el setup que funcionó parece obvio y el que falló parece que no cumplía los requisitos. Basta con saber que marzo de 2020 fue violento.
El sesgo de anticipación (look-ahead bias) está en los datos o en las herramientas: información que no existía en el momento de decidir. Ejemplos: una vela H4 o diaria que todavía no ha cerrado, un indicador de fractales o zigzag que confirma un swing varias velas después, o un script que toma mal los datos de una temporalidad mayor. En Pine Script de TradingView, request.security con lookahead_on y sin el desplazamiento [1] devuelve valores futuros en las velas históricas.
Las soluciones:
- Inicio aleatorio. Elige las fechas de inicio al azar, por ejemplo con
=RANDBETWEEN()sobre un rango de fechas, en lugar de escoger periodos que recuerdas. - Oculta las fechas. Ignora el eje de fechas mientras pruebas y sáltate los periodos en los que operaste en real.
- Decide solo al cierre de la vela. Avanza una vela y luego decide.
- Registra los setups que descartas. Cada vez que las reglas se activen y tú no entres, anótalo con el motivo. Si los setups descartados habrían sido mayoritariamente ganadores o mayoritariamente perdedores, tu criterio discrecional forma parte de la estrategia y también hay que probarlo.
- Resuelve de antemano la ambigüedad dentro de una misma vela. Si una vela toca el stop y el objetivo, no puedes saber qué llegó primero. Asume el stop, o revisa la temporalidad inferior, y deja escrito cuál de las dos opciones usas.
Conoce los límites de tu herramienta. El centro de ayuda de TradingView documenta hasta dónde llega Bar Replay en el gráfico de 1 minuto: unos 6 meses en Essential, 1 año en Plus e historial completo en Premium y superiores. El replay por segundos empieza en agosto de 2022, el replay de ticks está limitado al plan más alto y a 7 días, y Renko, Kagi y tipos de gráfico similares no son compatibles. TradingView también indica que las órdenes colocadas durante el replay se ejecutan a precios en tiempo real, así que el paper trading dentro del replay no es un registro válido de backtest. Lleva tu propio registro. Las páginas de ayuda de Bar Replay tienen los detalles actualizados.
Fips tiene replay del gráfico vela a vela en su aplicación web, con el futuro oculto: avanzas o retrocedes una vela, reproduces de 0.25× a 10×, saltas a una fecha y hora, o haces clic derecho para empezar en cualquier punto. Las órdenes de mercado, límite y stop dibujan cajas de posición en el gráfico, el tamaño se fija por lote o por % de riesgo, y si el SL y el TP se tocan en la misma vela, Fips asume el stop. No elige el inicio al azar, así que sortea tú la fecha. La aplicación está en beta privada, con acceso mediante lista de espera.
¿Qué debe recoger el registro de operaciones de un backtest?
Un registro que solo tiene resultados es un marcador, no una prueba. Estos campos te permiten auditar y segmentar después:
| Campo | Por qué importa |
|---|---|
| ID del setup | Encontrar la captura y volver a revisar la operación |
| Versión de las reglas | Mantiene las versiones separadas |
| Hora (UTC) y sesión | Análisis por sesión sin errores de zona horaria |
| Stop en pips y en R | La base de cada cifra en R |
| Coste en R | Spread, comisión, swap |
| MAE / MFE en R | Lo cerca que estuvieron los ganadores de tocar el stop |
| Regla cumplida | En los backtests también se rompen reglas |
| Noticia cercana | Comprueba si tu filtro de noticias se justifica |
| Captura de pantalla | Auditar cualquier operación más tarde |
| Setup descartado y motivo | Mide tu criterio discrecional |
Etiqueta las noticias a partir de un calendario real; el calendario económico muestra qué publicaciones de alto impacto cayeron dentro de tu ventana. Para saber qué registrar cuando la estrategia ya esté en real, consulta qué escribir en un diario de trading.
¿Cómo se incluyen el spread, la comisión y el swap en R?
Los costes son la línea que la mayoría de los backtests omiten, y con stops cortos lo deciden todo. Anota el coste de cada operación en R, en su propia columna.
Ejemplo desarrollado. Supuestos: EUR/USD, 1.00 lote, $10 por pip y por lote, un stop de 10 pips, un spread medio de 1.2 pips y $7 de comisión por lote, ida y vuelta.
1R = 10 pips x $10 = $100
Spread = 1.2 pips x $10 = $12
Comisión = $7 ida y vuelta
Coste total = $12 + $7 = $19
Coste por operac. = $19 / $100 = 0.19R
El tamaño del lote se cancela: con 0.10 lotes cada cifra es diez veces menor y el coste sigue siendo 0.19R. El stop no se cancela. Los mismos costes son 0.38R con un stop de 5 pips, 0.095R con uno de 20 pips y 0.063R con uno de 30 pips. La calculadora de valor del pip te da la cifra por pip para otros símbolos y monedas de cuenta.
Ahora aplícalo. Una estrategia que gana el 40% de las operaciones a +2R y pierde −1R en el resto tiene una esperanza bruta de +0.20R. Con un stop de 10 pips y estos costes, la esperanza neta es +0.01R: en la práctica, nada. Con el mismo perfil de R y un stop de 30 pips, sobreviven unos +0.14R.
Hay tres costes más que deben ir en el registro:
- Slippage (deslizamiento). En mercados rápidos, sobre todo con noticias, los stops se ejecutan peor que el precio del stop. Añade una estimación a los stops que salten cerca de publicaciones.
- Swap. Las posiciones que se mantienen más allá del rollover diario pagan o cobran swap. En la mayoría de los símbolos de FX, una noche, normalmente la del miércoles, se cobra como tres días para cubrir el fin de semana; en los CFD de índices y metales puede ser distinto. Usa la especificación del símbolo de tu broker.
- Ampliación del spread. En el rollover y alrededor de las noticias, el spread puede multiplicar varias veces la media. Si tus entradas se concentran ahí, usa la cifra más amplia.
¿Cuántas operaciones necesitas para hacer backtesting?
No hay un número mágico. Muchas guías hablan de 30, 50 o 100 operaciones; la respuesta honesta depende de lo grande que sea el edge en relación con la dispersión de tus resultados. Las tablas muestran intervalos de confianza del 95%: intervalos de Wilson para el porcentaje de aciertos y la aproximación normal para la esperanza.
Si el 55% de tus operaciones del backtest fueron ganadoras:
| Operaciones | Porcentaje de aciertos real plausible (95%) |
|---|---|
| 30 | 37.7% a 71.2% |
| 100 | 45.2% a 64.4% |
| 200 | 48.1% a 61.7% |
| 400 | 50.1% a 59.8% |
Después de 30 operaciones, un 55% es compatible con cualquier cosa, desde una estrategia claramente perdedora hasta una excelente.
El porcentaje de aciertos no es el edge, así que haz lo mismo con la esperanza. Para la estrategia anterior (40% de ganadoras a +2R, perdedoras a −1R), la esperanza es +0.20R y la desviación típica de una operación es de unos 1.47R. El intervalo del 95% es la esperanza ± 1.96 × 1.47 ÷ √n:
| Operaciones | Intervalo del 95% para la esperanza |
|---|---|
| 30 | −0.33R a +0.73R |
| 100 | −0.09R a +0.49R |
| 207 | 0.00R a +0.40R |
| 500 | +0.07R a +0.33R |
Hacen falta unas 207 operaciones para que el extremo inferior supere el cero, y eso antes de costes. Si las operaciones no son independientes, por ejemplo porque los setups se agrupan en semanas de tendencia, los intervalos reales son más amplios. Los edges más pequeños necesitan muchísimas más operaciones: con +0.01R neto, decenas de miles.
¿Cuántas operaciones por sesión antes de eliminarla?
Segmentar por sesión, par, día de la semana o setup es útil, pero cada segmento es una muestra pequeña. Algunas guías eliminan la sesión asiática después de seis operaciones perdedoras; eso es sobreajuste (overfitting) en estado puro.
Para la estrategia anterior, la banda del 95% en un segmento de 12 operaciones es de unos ±0.83R. Una sesión en −0.30R con 12 operaciones es estadísticamente indistinguible de una en +0.50R. Con 50 operaciones, la banda sigue siendo de unos ±0.41R.
Fija la regla antes de mirar: un mínimo por segmento, por ejemplo 50 operaciones, por debajo del cual no se elimina nada. Cuando un segmento realmente se vea mal, quitarlo es una nueva versión de las reglas, y la mejora tiene que mantenerse en datos que no hayas visto.
¿Cómo se leen los resultados de un backtest?
Calcula las mismas métricas que en una cuenta real, en R y después de costes: esperanza neta, profit factor, ratio de payoff, drawdown máximo en R, racha perdedora más larga y factor de recuperación (recovery factor). La guía de métricas de rendimiento trading desarrolla cada fórmula con operaciones de forex y oro, así que aquí no se repiten.
Tres hábitos importan más que cualquier métrica aislada:
- Lee la esperanza junto con su intervalo. "+0.18R en 60 operaciones" significa "en algún punto entre claramente negativo y muy bueno".
- Comprueba la concentración. Quita las dos mejores operaciones y vuelve a calcular. Un resultado que desaparece sin ellas es frágil.
- Compara los setups descartados con los que tomaste. Si los descartados salieron mejor, tu filtro te está costando dinero.
¿Qué racha de pérdidas deberías esperar?
Más larga de lo que sugiere la intuición, incluso en una estrategia rentable. Simulando operaciones independientes se obtienen estas cifras:
| Estrategia y muestra | Racha perdedora más larga típica | 8+ pérdidas seguidas | 10+ seguidas |
|---|---|---|---|
| 40% de ganadoras, 100 operaciones | unas 8 | alrededor del 49% | alrededor del 20% |
| 40% de ganadoras, 200 operaciones | unas 9 | alrededor del 75% | alrededor del 38% |
| 40% de ganadoras, 500 operaciones | unas 11 | alrededor del 97% | alrededor del 70% |
| 55% de ganadoras, 100 operaciones | unas 5 | alrededor del 8% | alrededor del 2% |
Si 200 operaciones de backtest de una estrategia con 40% de ganadoras muestran una peor racha de cinco, has tenido suerte. No dimensiones como si cinco fuera el peor caso.
Una racha de pérdidas y un drawdown son cifras distintas. La racha cuenta pérdidas consecutivas; el drawdown es la caída de máximo a mínimo en R acumulado, que puede incluir pequeñas ganancias y suele ser mayor.
¿Cómo se hace una reordenación Monte Carlo en una hoja de cálculo?
Tu backtest es un único orden posible de sus operaciones. Una reordenación mide cuánto depende el drawdown de ese orden:
- Pon el R neto de cada operación en la columna A y
=RAND()en la columna B. - Ordena ambas columnas por B. En C, calcula el R acumulado; en D, el máximo acumulado (
=MAX(D1,C2)); en E, el drawdown (=D2-C2). - Anota el máximo de E y la racha de pérdidas más larga en A.
- Repite 1,000 veces o más con una tabla de datos de hipótesis (what-if) o un script corto.
- Informa del percentil noventa y cinco (P95): el drawdown que solo superó 1 de cada 20 órdenes.
En un registro hipotético de 200 operaciones, 80 ganadoras a +2R y 120 perdedoras a −1R, reordenado 100,000 veces, la mediana del drawdown máximo fue de 12R y el P95 de 20R. La racha perdedora más larga tuvo una mediana de 9 y un P95 de 13. Planifica en torno a los 20R, no a los 12R.
Una reordenación asume operaciones independientes y no puede inventar un régimen de mercado que tus datos nunca contuvieron.
¿Cómo se evita el sobreajuste con pruebas fuera de muestra y walk-forward?
Cada regla que retocas después de ver los resultados consume parte de tus datos. Bailey, Borwein, López de Prado y Zhu demostraron en 2014 que, con cinco años de datos diarios, probar unas 45 variantes independientes basta para esperar que al menos una parezca sólida dentro de la muestra aunque ninguna tenga un edge real. Una docena de márgenes de stop por tres ventanas de sesión ya son 36.
Separa el descubrimiento de la validación:
- Descubrimiento. Explora, ajusta y quédate con la versión 1.x.
- Congelación. Escribe las reglas y deja de cambiarlas.
- Validación. Prueba una sola vez sobre datos posteriores que no hayas mirado. Si el resultado se desmorona, el anterior era sobre todo ajuste.
- Walk-forward. Descubre en una ventana, valida en la siguiente, avanza las dos y juzga solo los resultados de validación encadenados.
Indica cuántas variantes probaste.
¿Sobrevive tu backtest a las reglas de una prop firm?
Una esperanza positiva puede igualmente suspender un challenge, porque las reglas de las prop firms castigan el recorrido. Convierte las rachas y los drawdowns a los límites de la cuenta, medidos sobre el equity e incluyendo costes.
Ejemplo: FTMO Challenge 2-Step (Standard), $100,000. El equity no puede caer por debajo del balance de las 00:00 CE(S)T menos el 5% del capital inicial ($5,000), ni por debajo del capital inicial menos el 10% ($10,000, estático). FTMO Challenge 1-Step tiene un límite de pérdida diaria del 3% desde el balance de las 00:00 CE(S)T. Estas cifras se verificaron con las reglas oficiales de FTMO el 26 de septiembre de 2026; confírmalas en la página de la firma y compara otras firmas en la página de reglas de prop firms.
| Riesgo por operación | Margen diario (2-Step) | Margen de pérdida máxima | Tres pérdidas en un día |
|---|---|---|---|
| 1% ($1,000) | 5R | 10R | 3% más costes: rompe el límite diario de 1-Step |
| 0.5% ($500) | 10R | 20R | 1.5% más costes: dentro de ambos |
Simulando la estrategia con 40% de ganadoras a coste cero durante 200 operaciones, las pérdidas acumuladas llegaron a 10R desde el inicio en un 14% de las simulaciones aproximadamente y a 20R en un 2%. Con un 1% de riesgo, eso supone romper la pérdida máxima estática en aproximadamente uno de cada siete challenges, con una estrategia rentable. Los costes elevan mucho ambas cifras. En FTMO Challenge 1-Step, tres operaciones al día al 1% pierden todas en torno al 22% de los días, así que romper el límite diario en pocas semanas es muy probable.
Dimensiona a partir del drawdown P95, no del promedio. La calculadora de lotes convierte el % de riesgo y el stop en lotes, y drawdown diario prop firm explicado muestra cómo fija cada firma el suelo diario.
¿Cómo se usa el Probador de Estrategias de MT5?
El Probador de Estrategias (Strategy Tester) de MT5 ejecuta estrategias programadas (Expert Advisors), así que encaja con sistemas basados en reglas, y su modo de prueba cambia los resultados más de lo que la mayoría espera. La propia comparación de modos de MetaQuotes ejecutó un mismo EA en EUR/USD H1 durante la primera mitad de 2016:
| Modo | Beneficio neto | Operaciones |
|---|---|---|
| OHLC de 1 minuto | +169.46 | 96 |
| Todos los ticks | −466.81 | 158 |
| Todos los ticks basados en ticks reales | −97.24 | 156 |
La ayuda de MetaTrader 5 sobre la generación de ticks explica por qué: los modos generados construyen los ticks a partir de las velas con un spread fijo por vela M1, mientras que el modo de ticks reales usa ticks registrados con spread variable.
- Usa "Every tick based on real ticks" con stops ajustados, y lee la pestaña Journal para confirmar que se cargaron ticks reales. Un artículo de la comunidad de MQL5 señala que "History Quality 100%" por sí solo no lo demuestra.
- Usa la opción Forward. Reserva 1/2, 1/3, 1/4 o una fracción personalizada del periodo como datos fuera de muestra, siempre la parte más reciente.
- Activa el retraso aleatorio. La ayuda de MetaTrader 5 lo describe como de 0 a 8 segundos con un 90% de probabilidad y de 9 a 18 segundos con un 10% de probabilidad, una aproximación tosca a la ejecución real.
¿Cómo se pasa del backtest al forward test y a real?
Un backtest que supera la prueba es un motivo para seguir probando, no para aumentar el tamaño.
- Forward test. Opera las reglas congeladas en demo, en tiempo real, durante un número fijo de operaciones. Esto prueba lo que el replay no puede: si detectas y tomas los setups en directo.
- Real pequeño. Opera las mismas reglas con dinero real y riesgo reducido, por ejemplo una cuarta parte del tamaño previsto.
- Compara con el intervalo. Pregúntate si la esperanza en real cae dentro del intervalo del backtest y si los costes de ejecución coinciden con tus supuestos.
Mantén separadas, o claramente etiquetadas, las operaciones de backtest, forward y real en tu Diario de Trading para que la diferencia siga a la vista. Las sesiones de replay de Fips informan del resultado neto, el porcentaje de aciertos, el profit factor, el drawdown máximo, la esperanza, el R medio y una curva de equity. No modelan los costes, así que resta tu columna de costes antes de comparar.
Checklist de backtesting
| Paso | Hecho cuando |
|---|---|
| Reglas | En plantilla, con versión, comprobables sobre velas cerradas |
| Replay | Inicio aleatorio, fechas ocultas, decisiones al cierre de la vela |
| Registro | Todos los campos rellenos, setups descartados anotados |
| Costes | Spread, comisión, slippage y swap en R |
| Muestra | Esperanza indicada con su intervalo |
| Reordenación | Drawdown y racha P95 conocidos |
| Validación | Reglas congeladas probadas una vez sobre datos posteriores no vistos |
| Control prop | El drawdown P95 cabe en el margen diario y en el de pérdida máxima |
| Forward | Demo y luego real pequeño, comparado con el intervalo |
Preguntas frecuentes
¿Cuántas operaciones debo incluir en un backtest?
Las suficientes para que el intervalo de la esperanza, después de costes, excluya el cero. Para una estrategia de +0.20R como la del ejemplo, son unas 200 operaciones; los edges más pequeños necesitan muchas más. Treinta operaciones describen una muestra, pero no confirman un edge.
¿Es fiable el backtesting manual?
Es útil si controlas los sesgos e incluyes los costes en R. Nunca es tan limpio como una prueba programada, porque sigues sabiendo más o menos lo que hicieron los mercados; el forward testing cubre parte de esa brecha.
¿Se puede hacer backtesting en TradingView?
Sí, con Bar Replay, dentro del historial que permita tu plan. TradingView indica que las órdenes del replay se ejecutan a precios en tiempo real, así que guarda las operaciones del replay en tu propio registro.
¿Qué es un buen resultado de backtest?
No existe un umbral universal. Un resultado útil muestra una esperanza positiva después de costes con un intervalo por encima de cero, un drawdown P95 que las reglas de tu cuenta puedan absorber y un comportamiento similar fuera de muestra.
¿Cuál es la diferencia entre backtesting y forward testing?
El backtesting aplica las reglas a datos históricos. El forward testing aplica las reglas congeladas en tiempo real, en demo o con un tamaño real pequeño, y se pregunta si eres capaz de ejecutarlas y si el edge se mantiene en datos no vistos.
