Backtesting en forex: probar una estrategia sin datos futuros
El backtesting en forex aplica reglas de negociación explícitas a precios pasados y registra las operaciones que habrían generado bajo unos supuestos de ejecución definidos. Una prueba útil muestra sus tiempos, datos y costes. No demuestra qué habría ejecutado un bróker ni cuánto ganará una estrategia en el futuro.
Autor · Editor
- Autor
- Mykola Zavarov
- Editor
- Andrey Bondarenko
Revisado

Lo esencial
Una señal solo puede utilizar una vela completa después de su cierre. La ejecución debe producirse en un evento posterior que permita el modelo.
Spread, deslizamiento y comisión necesitan una base contable coherente. Los costes ya incluidos en el precio de ejecución no se descuentan otra vez.
Un periodo histórico reservado pierde su independencia cuando sus resultados influyen en nuevas decisiones. El replay ficticio de esta guía es didáctico, no una validación.
¿Qué es el backtesting en forex?
El backtesting reconstruye una secuencia: toma una regla fija, recorre las observaciones disponibles en orden temporal y registra decisiones, ejecuciones supuestas y resultados. En una estrategia de forex, esto exige definir el par de divisas, los datos de precios, el tamaño de la posición, las entradas, las salidas y los costes de transacción. La pregunta es qué produjeron esas reglas dentro de ese modelo, no si después se pueden encontrar operaciones atractivas.
Una prueba manual puede seguir este proceso con una reproducción del gráfico y un registro de operaciones. Una prueba automatizada encarga la misma secuencia a un programa. Automatizar facilita repetir el trabajo; no corrige una regla que utiliza precios futuros sin advertirlo ni un supuesto de ejecución que los datos disponibles no permiten justificar.
Imagina que solo compruebas si el precio terminó alcanzando un objetivo. Seguiría sin saberse si antes alcanzó el stop, qué lado de la cotización se podía negociar o si la señal ya existía al entrar. Una prueba verificable registra estas decisiones antes de interpretar su cifra final.
Separa tres preguntas: qué observó la regla, qué ejecución permitió suponer el modelo y qué operaciones quedaron registradas como resultado.
Define las reglas antes de mirar el resultado
Redacta una especificación breve que otra persona pueda seguir sin preguntarte qué operaciones te gustaban. «Comprar cuando mejora el impulso» no basta. Indica qué precios definen ese impulso, cuándo están disponibles y qué ocurre si las condiciones se contradicen. Pon fecha y versión a las reglas para que una modificación no sustituya silenciosamente a la versión que se probó al principio.
- Instrumento y observaciones: símbolo, marco temporal, horario de negociación, zona horaria y tratamiento permitido de los datos ausentes.
- Entrada y salida: condiciones exactas, momento de la señal, evento de ejecución permitido y estado de la posición.
- Tamaño: unidades fijas o una regla completamente definida, incluida la posibilidad de ampliar posiciones existentes.
- Ejecución y costes: lado de la cotización, spread, comisión, deslizamiento y, si corresponde, financiación nocturna.
- Límites del periodo: datos previos para calcular indicadores, tratamiento de posiciones abiertas y señales en la última observación.
El replay utiliza una regla deliberadamente sencilla que solo abre posiciones largas. Después de cerrar cada vela de cinco minutos, compara su cierre con la media simple de los últimos tres cierres, incluido el de la vela recién terminada. Si no hay posición y el cierre está por encima de la SMA3, deja una compra pendiente para la apertura siguiente. Si hay una posición larga y el cierre está por debajo de la SMA3, deja pendiente su cierre para la próxima apertura. La igualdad no cambia nada. Otro cierre por encima de la media no aumenta una posición ya abierta.
La regla comprueba si el cierre está por encima o por debajo; no exige un cruce ni constituye una recomendación de estrategia. La posición siempre es de 10.000 EUR. Una investigación real puede utilizar otras reglas, pero modificar varias después de ver los resultados crea un experimento nuevo. La plantilla de plan de trading ayuda a separar la especificación vigente de los cambios propuestos.
Elige datos que permitan sostener el modelo de ejecución
Empieza por lo que los datos pueden responder. Una vela OHLC registra apertura, máximo, mínimo y cierre; esos cuatro valores no revelan todos los precios intermedios ni el orden en el que se alcanzaron máximo y mínimo. Si tanto el stop como el objetivo están dentro de una misma vela, sus cuatro precios normalmente no permiten determinar cuál se alcanzó primero. Aquí el precio medio (midpoint) es (Bid + Ask) / 2 en un instante concreto. SMA3 es el promedio de los precios medios de cierre de tres velas consecutivas.
Dato o ajuste | Qué comprobar antes de la prueba |
|---|---|
Bid, Ask, precio medio o Last | Identifica la base del precio registrado. El precio medio no es por sí mismo una cotización de compra ni de venta. |
Velas o ticks | Ajusta la resolución a la lógica de las órdenes. No inventes una trayectoria intravela precisa a partir de cuatro precios. |
Marcas de tiempo y sesiones | Anota la zona horaria, los límites de las velas, los huecos del fin de semana y los intervalos ausentes. |
Especificación del símbolo | Comprueba los incrementos de precio, el tamaño del contrato, la divisa del resultado y el significado del spread indicado. |
Desplázate lateralmente para comparar todas las columnas ↔
La documentación de MetaTrader 5 sobre ticks explica por qué hay que distinguir entre los precios del gráfico y los de ejecución: compras y ventas utilizan lados distintos de la cotización, mientras que los gráficos disponibles no siempre muestran ambos. En una regla sensible al precio, esa diferencia puede cambiar si una orden cumple las condiciones y cuál es su resultado.
La etiqueta «ticks reales» también requiere comprobar los datos. La documentación de pruebas de MQL5 describe situaciones en las que el probador genera ticks cuando los registros reales faltan o son inconsistentes. Anota el modo seleccionado e investiga los avisos de cobertura; el nombre de un modo no describe por sí solo cada observación utilizada.
Este replay contiene 36 velas ficticias de EURUSD sobre precios medios, separadas por cinco minutos dentro de una sesión intradía inventada. No proceden de un historial de mercado descargado. No hay órdenes stop, limitadas ni objetivos cuya ejecución deba resolverse dentro de una vela. El ejemplo enseña la secuencia de eventos y la contabilidad de costes; no permite determinar si una regla SMA funciona en EURUSD.
Sigue una señal hasta el siguiente evento de ejecución
Recorre un backtest, decisión por decisión
Sigue una regla fija en 36 velas ficticias de cinco minutos de EUR/USD. Sus precios son el punto medio entre Bid y Ask: (Bid + Ask) / 2, no una media entre momentos distintos. Cambia los costes supuestos y comprueba la señal, la siguiente apertura y el registro del resultado.
Solo datos didácticos. Las velas son inventadas: no son un historial de mercado ni demuestran que la regla funcione.
La regla permanece fija
Al cerrar cada vela, compara el cierre del punto medio con el promedio de ese cierre y los dos anteriores. Por encima de la SMA3: abre una posición larga si no hay posición. Por debajo: cierra la posición larga. La igualdad no cambia el estado. Cada posición es de 10.000 EUR; los resultados están en USD.
Una decisión solo puede ejecutarse en la siguiente apertura dentro del intervalo elegido. Las señales de compra repetidas no añaden volumen. No hay posiciones cortas, stops, órdenes limitadas, financiación nocturna ni optimización de parámetros.
Vela 36 del intervalo elegido (1–36) · 11:55
Comprueba el resultado
- Operaciones cerradas · P/L neto
- -3,70 USD
- Posición abierta · P/L valorado tras su comisión de entrada
- 16,25 USD
- P/L total del modelo
- 12,55 USD
Neto cerrado -3,70 USD + neto valorado abierto 16,25 USD = total 12,55 USD.
Posiciones cerradas: 4. Ejecuciones hasta este paso: 9.
La posición larga abierta se valora al último cierre del punto medio menos la mitad del spread. La comisión de entrada ya pagada se resta una sola vez. Esta valoración no incluye una futura comisión ni deslizamiento de salida.
Señal de venta en la vela 36: sigue pendiente. La posición permanece abierta y no se ha cobrado una comisión de salida. No hay otra apertura dentro del intervalo, por lo que la última señal no se ejecuta aquí.
Dónde aparecen los costes
- P/L cerrado a precios de ejecución
- -0,90 USD
- Comisiones de posiciones cerradas
- 2,80 USD
- P/L abierto valorado antes de la comisión de entrada
- 16,60 USD
- Comisión pagada de la entrada abierta
- 0,35 USD
- Todas las comisiones pagadas
- 3,15 USD
- Efecto del spread ya incluido en las ejecuciones
- 5,40 USD
- Deslizamiento ya incluido en las ejecuciones
- 1,80 USD
- Mitad adicional del spread en la valoración abierta
- 0,60 USD
El spread y el deslizamiento ya forman parte de los precios de ejecución; no vuelvas a restar estos efectos. La comisión es un cargo separado. Valorar una posición abierta no equivale a ejecutar su salida.
Los intervalos inicial y posterior son ejemplos temporales separados, no una validación fuera de muestra ni una prueba forward con cotizaciones futuras. La posición abierta inicial no se cierra de forma oculta ni se traslada al segundo intervalo. No sumes ambos P/L como si fueran un historial continuo de cuenta.
Solo se muestran las velas alcanzadas. La línea continua une los cierres del punto medio; la discontinua es la SMA3. Los triángulos hacia arriba y abajo identifican compras y ventas hipotéticas en la apertura de cada vela. El eje vertical expresa USD por EUR.
USD por EUR
Vela de cinco minutos
- Cierre del punto medio
- SMA3
- Compra en la apertura
- Venta en la apertura
Señal → siguiente apertura → posición
Lee cada fila en orden temporal: primero se ejecuta la decisión anterior en la apertura y después se evalúa el cierre actual. Una línea entre velas no crea precios ni ejecuciones intermedias.
| Vela · hora del ejemplo | En esta apertura | Cierre del punto medio / SMA3 | En este cierre | Tras el cierre | P/L total del modelo |
|---|---|---|---|---|---|
| 109:00 | Sin ejecución | 1,10000— | Menos de tres cierres: sin decisión | Sin posición | 0,00 USD |
| 209:05 | Sin ejecución | 1,10020— | Menos de tres cierres: sin decisión | Sin posición | 0,00 USD |
| 309:10 | Sin ejecución | 1,100401,10020 | Por encima de SMA3: comprar en la próxima apertura | Sin posición | 0,00 USD |
| 409:15 | Compra a 1,10058; señal de la vela 3 | 1,100801,1004667 | Por encima de SMA3: mantener el largo sin nueva orden | Largo de 10.000 EUR | 1,25 USD |
| 509:20 | Sin ejecución | 1,101201,10080 | Por encima de SMA3: mantener el largo sin nueva orden | Largo de 10.000 EUR | 5,25 USD |
| 609:25 | Sin ejecución | 1,101601,10120 | Por encima de SMA3: mantener el largo sin nueva orden | Largo de 10.000 EUR | 9,25 USD |
| 709:30 | Sin ejecución | 1,101801,1015333 | Por encima de SMA3: mantener el largo sin nueva orden | Largo de 10.000 EUR | 11,25 USD |
| 809:35 | Sin ejecución | 1,101601,1016667 | Por debajo de SMA3: vender en la próxima apertura | Largo de 10.000 EUR | 9,25 USD |
| 909:40 | Venta a 1,10142; señal de la vela 8 | 1,101301,1015667 | Por debajo de SMA3: seguir sin posición | Sin posición | 7,70 USD |
| 1009:45 | Sin ejecución | 1,101001,10130 | Por debajo de SMA3: seguir sin posición | Sin posición | 7,70 USD |
| 1109:50 | Sin ejecución | 1,100801,1010333 | Por debajo de SMA3: seguir sin posición | Sin posición | 7,70 USD |
| 1209:55 | Sin ejecución | 1,101001,1009333 | Por encima de SMA3: comprar en la próxima apertura | Sin posición | 7,70 USD |
| 1310:00 | Compra a 1,10118; señal de la vela 12 | 1,101201,10100 | Por encima de SMA3: mantener el largo sin nueva orden | Largo de 10.000 EUR | 6,95 USD |
| 1410:05 | Sin ejecución | 1,101001,1010667 | Por debajo de SMA3: vender en la próxima apertura | Largo de 10.000 EUR | 4,95 USD |
| 1510:10 | Venta a 1,10072; señal de la vela 14 | 1,100701,1009667 | Por debajo de SMA3: seguir sin posición | Sin posición | 2,40 USD |
| 1610:15 | Sin ejecución | 1,100901,1008667 | Por encima de SMA3: comprar en la próxima apertura | Sin posición | 2,40 USD |
| 1710:20 | Compra a 1,10108; señal de la vela 16 | 1,101301,1009667 | Por encima de SMA3: mantener el largo sin nueva orden | Largo de 10.000 EUR | 3,65 USD |
| 1810:25 | Sin ejecución | 1,101601,1012667 | Por encima de SMA3: mantener el largo sin nueva orden | Largo de 10.000 EUR | 6,65 USD |
| 1910:30 | Sin ejecución | 1,101801,1015667 | Por encima de SMA3: mantener el largo sin nueva orden | Largo de 10.000 EUR | 8,65 USD |
| 2010:35 | Sin ejecución | 1,101401,10160 | Por debajo de SMA3: vender en la próxima apertura | Largo de 10.000 EUR | 4,65 USD |
| 2110:40 | Venta a 1,10122; señal de la vela 20 | 1,101001,10140 | Por debajo de SMA3: seguir sin posición | Sin posición | 3,10 USD |
| 2210:45 | Sin ejecución | 1,101201,10120 | Igual a SMA3: seguir sin posición | Sin posición | 3,10 USD |
| 2310:50 | Sin ejecución | 1,100801,10100 | Por debajo de SMA3: seguir sin posición | Sin posición | 3,10 USD |
| 2410:55 | Sin ejecución | 1,100401,10080 | Por debajo de SMA3: seguir sin posición | Sin posición | 3,10 USD |
| 2511:00 | Sin ejecución | 1,100601,10060 | Igual a SMA3: seguir sin posición | Sin posición | 3,10 USD |
| 2611:05 | Sin ejecución | 1,100901,1006333 | Por encima de SMA3: comprar en la próxima apertura | Sin posición | 3,10 USD |
| 2711:10 | Compra a 1,10103; señal de la vela 26 | 1,100601,10070 | Por debajo de SMA3: vender en la próxima apertura | Largo de 10.000 EUR | -2,15 USD |
| 2811:15 | Venta a 1,10042; señal de la vela 27 | 1,100301,10060 | Por debajo de SMA3: seguir sin posición | Sin posición | -3,70 USD |
| 2911:20 | Sin ejecución | 1,100601,10050 | Por encima de SMA3: comprar en la próxima apertura | Sin posición | -3,70 USD |
| 3011:25 | Compra a 1,10078; señal de la vela 29 | 1,101101,1006667 | Por encima de SMA3: mantener el largo sin nueva orden | Largo de 10.000 EUR | -1,45 USD |
| 3111:30 | Sin ejecución | 1,101501,1010667 | Por encima de SMA3: mantener el largo sin nueva orden | Largo de 10.000 EUR | 2,55 USD |
| 3211:35 | Sin ejecución | 1,101901,10150 | Por encima de SMA3: mantener el largo sin nueva orden | Largo de 10.000 EUR | 6,55 USD |
| 3311:40 | Sin ejecución | 1,102301,10190 | Por encima de SMA3: mantener el largo sin nueva orden | Largo de 10.000 EUR | 10,55 USD |
| 3411:45 | Sin ejecución | 1,102701,10230 | Por encima de SMA3: mantener el largo sin nueva orden | Largo de 10.000 EUR | 14,55 USD |
| 3511:50 | Sin ejecución | 1,103101,10270 | Por encima de SMA3: mantener el largo sin nueva orden | Largo de 10.000 EUR | 18,55 USD |
| 3611:55 | Sin ejecución | 1,102501,1027667 | Por debajo de SMA3: vender en la próxima apertura | Largo de 10.000 EUR | 12,55 USD |
Las tablas tienen desplazamiento horizontal. Enfoca la región de la tabla y usa las flechas si lo necesitas.
Registro de posiciones
Una fila cerrada incluye ambas comisiones pagadas. Una fila abierta incluye solo la comisión de entrada y una valoración al Bid, no una salida inventada.
| Posición | Ejecución de entrada | Ejecución de salida / valoración | P/L al punto medio, sin costes | P/L ejecutado / valorado | Comisión pagada | P/L neto cerrado / valorado |
|---|---|---|---|---|---|---|
| 1Cerrada | Vela 4 · 1,10058 | Vela 9 · 1,10142 | 10,00 USD | 8,40 USD | 0,70 USD | 7,70 USD |
| 2Cerrada | Vela 13 · 1,10118 | Vela 15 · 1,10072 | -3,00 USD | -4,60 USD | 0,70 USD | -5,30 USD |
| 3Cerrada | Vela 17 · 1,10108 | Vela 21 · 1,10122 | 3,00 USD | 1,40 USD | 0,70 USD | 0,70 USD |
| 4Cerrada | Vela 27 · 1,10103 | Vela 28 · 1,10042 | -4,50 USD | -6,10 USD | 0,70 USD | -6,80 USD |
| 5Abierta · solo valoración | Vela 30 · 1,10078 | Vela 36 · 1,10244 | 18,00 USD | 16,60 USD | 0,35 USD | 16,25 USD |
El CSV contiene solo la reproducción válida hasta la vela seleccionada. Los nombres de campo estables en inglés, el punto decimal y la precisión completa permiten comprobar las cuentas. Se redondea la presentación, no el cálculo.
Las tablas tienen desplazamiento horizontal. Enfoca la región de la tabla y usa las flechas si lo necesitas.
Examinar los datos OHLC ficticios
Todos los precios son puntos medios entre Bid y Ask: (Bid + Ask) / 2. Los máximos y mínimos permiten revisar los datos; esta regla de cierre a próxima apertura no los usa para inventar ejecuciones. Las filas previas de inicialización están señaladas y no generan operaciones.
| Vela · hora del ejemplo | Apertura | Máximo | Mínimo | Cierre |
|---|---|---|---|---|
| 1 · 09:00 | 1,09980 | 1,10010 | 1,09970 | 1,10000 |
| 2 · 09:05 | 1,10000 | 1,10035 | 1,09980 | 1,10020 |
| 3 · 09:10 | 1,10020 | 1,10060 | 1,10005 | 1,10040 |
| 4 · 09:15 | 1,10050 | 1,10090 | 1,10040 | 1,10080 |
| 5 · 09:20 | 1,10080 | 1,10135 | 1,10060 | 1,10120 |
| 6 · 09:25 | 1,10120 | 1,10180 | 1,10105 | 1,10160 |
| 7 · 09:30 | 1,10160 | 1,10190 | 1,10150 | 1,10180 |
| 8 · 09:35 | 1,10180 | 1,10195 | 1,10140 | 1,10160 |
| 9 · 09:40 | 1,10150 | 1,10170 | 1,10115 | 1,10130 |
| 10 · 09:45 | 1,10130 | 1,10140 | 1,10090 | 1,10100 |
| 11 · 09:50 | 1,10100 | 1,10115 | 1,10060 | 1,10080 |
| 12 · 09:55 | 1,10080 | 1,10120 | 1,10065 | 1,10100 |
| 13 · 10:00 | 1,10110 | 1,10130 | 1,10100 | 1,10120 |
| 14 · 10:05 | 1,10120 | 1,10135 | 1,10080 | 1,10100 |
| 15 · 10:10 | 1,10080 | 1,10100 | 1,10055 | 1,10070 |
| 16 · 10:15 | 1,10070 | 1,10100 | 1,10060 | 1,10090 |
| 17 · 10:20 | 1,10100 | 1,10145 | 1,10080 | 1,10130 |
| 18 · 10:25 | 1,10130 | 1,10180 | 1,10115 | 1,10160 |
| 19 · 10:30 | 1,10165 | 1,10190 | 1,10155 | 1,10180 |
| 20 · 10:35 | 1,10175 | 1,10190 | 1,10120 | 1,10140 |
| 21 · 10:40 | 1,10130 | 1,10150 | 1,10085 | 1,10100 |
| 22 · 10:45 | 1,10100 | 1,10130 | 1,10090 | 1,10120 |
| 23 · 10:50 | 1,10120 | 1,10135 | 1,10060 | 1,10080 |
| 24 · 10:55 | 1,10080 | 1,10100 | 1,10025 | 1,10040 |
| 25 · 11:00 | 1,10040 | 1,10070 | 1,10030 | 1,10060 |
| 26 · 11:05 | 1,10060 | 1,10105 | 1,10040 | 1,10090 |
| 27 · 11:10 | 1,10095 | 1,10115 | 1,10045 | 1,10060 |
| 28 · 11:15 | 1,10050 | 1,10060 | 1,10020 | 1,10030 |
| 29 · 11:20 | 1,10030 | 1,10075 | 1,10010 | 1,10060 |
| 30 · 11:25 | 1,10070 | 1,10130 | 1,10055 | 1,10110 |
| 31 · 11:30 | 1,10110 | 1,10160 | 1,10100 | 1,10150 |
| 32 · 11:35 | 1,10150 | 1,10205 | 1,10130 | 1,10190 |
| 33 · 11:40 | 1,10190 | 1,10250 | 1,10175 | 1,10230 |
| 34 · 11:45 | 1,10230 | 1,10280 | 1,10220 | 1,10270 |
| 35 · 11:50 | 1,10270 | 1,10325 | 1,10250 | 1,10310 |
| 36 · 11:55 | 1,10310 | 1,10330 | 1,10235 | 1,10250 |
Las tablas tienen desplazamiento horizontal. Enfoca la región de la tabla y usa las flechas si lo necesitas.
Descarga un protocolo de investigación
Usa la lista editable para definir un experimento independiente antes de mirar sus resultados. No valida una prueba ni convierte esta secuencia inventada en evidencia de mercado.
Descargar protocolo · TXTLímites del modelo
Volumen fijo, ejecuciones completas, spread, deslizamiento y comisión constantes; solo se espera hasta la siguiente apertura. No hay precios en vivo, ejecuciones parciales, apalancamiento, liquidación por margen, depósitos, retiradas ni reglas de un bróker concreto. Es una explicación de secuencia y contabilidad, no un emulador de bróker ni un optimizador de estrategias.
Este componente calcula en esta pestaña sin enviar los datos introducidos ni guardarlos en el almacenamiento del navegador. Solo crea archivos cuando decides descargarlos. Esta afirmación se refiere al laboratorio, no al resto del sitio.
Avanza por el replay una vela cada vez. En la apertura de una vela se ejecuta, si corresponde, la instrucción que quedó pendiente tras el cierre anterior, usando esa apertura y los costes elegidos. Solo después el modelo observa el cierre de la vela actual y calcula una nueva señal. Ninguna operación puede utilizar un cierre que todavía no se ha producido.
Por ejemplo, una señal de compra formada después del cierre de la vela 3 puede ejecutarse en la apertura de la vela 4. No puede recibir el precio de apertura de la vela 3. Por eso importa que exista un hueco entre ambas. La documentación de estrategias de TradingView también distingue, bajo su temporización predeterminada, la creación de una orden del tick posterior en el que puede ejecutarla el emulador del bróker.
Compara el periodo completo con la primera o la segunda mitad. Cada ventana seleccionada comienza sin posición. Los cierres anteriores pueden preparar la media, pero no transfieren una posición, una comisión anterior ni una orden pendiente. Son ejecuciones didácticas separadas: sus resultados no se deben sumar y presentar como una única cuenta continua.
Al final del periodo seleccionado, una señal nueva queda sin ejecutar si su siguiente apertura está fuera de la ventana. Una posición existente permanece visible y se valora por separado. El modelo no inventa una salida para que todas las operaciones parezcan cerradas. Cambiar de ventana puede modificar tanto el número de operaciones como el estado abierto al final.
Las dos mitades no son una validación fuera de muestra. Ambas pertenecen al mismo ejemplo ficticio y pequeño; además, reiniciar sin posición cambia el experimento.
Incluye cada coste una sola vez y con una base coherente
En este modelo de precios medios, la compra se ejecuta al precio medio de apertura más la mitad del spread y el deslizamiento desfavorable. La venta de salida se ejecuta al precio medio de apertura menos la mitad del spread y el deslizamiento desfavorable. La comisión es un cargo separado en USD por cada ejecución de la posición fija de 10.000 EUR. En este ejemplo de EURUSD, un pip equivale a 0,0001 USD por EUR.
Ejemplo de entrada y salida | Cálculo |
|---|---|
Precio medio de entrada / salida | 1,10000 / 1,10200 |
Supuestos | Spread de 1,2 pips; deslizamiento desfavorable de 0,2 pips por ejecución; comisión de 0,35 USD por ejecución |
Precio ejecutado de entrada / salida | 1,10008 / 1,10192 |
Resultado por precio después de spread y deslizamiento | 10.000 × (1,10192 − 1,10008) = 18,40 USD |
Resultado neto de la operación cerrada | 18,40 USD − 0,35 USD − 0,35 USD = 17,70 USD |
Desplázate lateralmente para comparar todas las columnas ↔
El movimiento del precio medio por sí solo produciría 20,00 USD. No vuelvas a restar spread y deslizamiento de los 18,40 USD: ya están incluidos en los precios ejecutados. Si el precio medio no cambia entre entrada y salida, estos supuestos generan −2,30 USD. Añadir un pip al spread reduce el resultado de la operación completa en 1,00 USD, porque cada lado incorpora la mitad de ese spread adicional.
Si una posición sigue abierta, el replay la valora al último Bid modelado e incluye la comisión de entrada ya pagada. No cobra una comisión futura de salida ni el deslizamiento de salida antes de que esa salida ocurra. El total mostrado es un resultado modelado, no un cálculo completo del patrimonio de la cuenta.
Los costes constantes permiten aislar su efecto; no prometen cotizaciones reales. Una prueba real puede necesitar spreads variables, otras comisiones y financiación durante el rollover. Este ejemplo intradía excluye el swap nocturno. Consulta la guía sobre deslizamiento para distinguir entre un precio solicitado, una cotización disponible y una ejecución efectiva.
Separa desarrollo, periodo histórico reservado y observación futura
Decide qué observaciones históricas podrán influir en el desarrollo antes de examinar el periodo de evaluación. Un periodo posterior puede poner a prueba una regla elegida previamente, pero solo si sus resultados permanecen fuera del proceso de selección. Consultar repetidamente el periodo reservado y ajustar la estrategia convierte esos datos en material de desarrollo.
Etapa | Finalidad | Lo que no demuestra |
|---|---|---|
Desarrollo | Construir la regla y examinar los supuestos con los datos permitidos. | Que la versión elegida se generalizará a otras situaciones. |
Periodo histórico reservado | Aplicar una versión congelada a observaciones posteriores que no se hayan utilizado antes. | Ejecuciones reales del bróker o rentabilidad futura. |
Observación futura | Observar precios nuevos después de fijar las reglas. | Que las ejecuciones simuladas coincidan con las reales. |
Desplázate lateralmente para comparar todas las columnas ↔
La opción Forward de MetaTrader 5 utiliza una parte posterior del intervalo histórico seleccionado. Aunque se llame así, no equivale a esperar nuevos datos futuros del mercado. Deja claros en tus notas tanto el nombre de la función de la plataforma como el método de investigación empleado.
El orden temporal también se aplica a la preparación de indicadores. Las observaciones anteriores pueden aportar el historial necesario para calcular un indicador al comienzo del periodo de evaluación. No deben introducir un cierre futuro en el cálculo ni crear silenciosamente una posición cuando el experimento estaba definido para comenzar sin ella.
Si el periodo reservado revela un problema, documéntalo. Una estrategia revisada puede justificar un nuevo experimento, pero el antiguo periodo reservado ya contiene datos conocidos. Cambiar el nombre de un archivo o elegir otra métrica de rendimiento no permite conservar honestamente la etiqueta de «prueba con datos no vistos».
Busca errores antes de interpretar la rentabilidad
Un resultado favorable es un motivo para revisar el registro, no para dejar de comprobarlo. Elige varias entradas y salidas, incluido un caso difícil en los límites del periodo, y reconstruye la información disponible en cada decisión. La fila más reveladora puede ser una señal no ejecutada o una operación poco atractiva que una revisión discrecional pasaría por alto.
- Sesgo de anticipación: una decisión utiliza un cierre posterior, un patrón confirmado en el futuro o un valor que no estaba disponible en el momento indicado.
- Sobreajuste: se prueban muchas configuraciones y solo se conserva la ganadora, sin registrar la búsqueda.
- Sesgo de selección: se conservan fechas, instrumentos u operaciones favorables y desaparecen las observaciones incómodas.
- Desajuste de ejecución: se pide a los datos de velas que demuestren una secuencia intravela que no contienen.
- Errores contables: señales repetidas añaden posiciones no previstas, los costes se cobran dos veces o una operación abierta desaparece en el límite del periodo.
Los ejemplos de anticipación de TradingView muestran cómo acceder a información futura puede producir resultados históricos inverosímiles. Una pregunta práctica es si la misma señal podría haberse registrado recibiendo las observaciones una a una. Si los datos posteriores cambian una decisión anterior, investiga esa dependencia antes de confiar en el informe de resultados.
Varía los supuestos con una intención definida, no hasta que el resultado parezca aceptable. Por ejemplo, compara una misma regla fija con varios costes declarados. Si un pequeño cambio de costes invierte el signo del resultado, informa de esa sensibilidad. Es información sobre el experimento, no un motivo para ocultar el escenario más exigente.
Documenta una prueba que pueda reproducirse
Descarga el protocolo del experimento desde el replay después de elegir una ventana y unos costes. Consérvalo junto con el escenario mostrado y el registro de operaciones. La etiqueta de datos ficticios es esencial: compartir las cifras sin ese contexto convertiría un ejercicio didáctico en una afirmación engañosa sobre rendimiento.
En tu propia investigación, el protocolo debería permitirte volver un mes después y entender qué se probó realmente. Una captura del beneficio final no basta si han cambiado los datos, el momento de la señal o la base de los costes.
- Registra la versión de las reglas, la pregunta que quieres investigar y los cambios desde la ejecución anterior.
- Identifica el conjunto de datos, la base de precios, la zona horaria, el intervalo, las omisiones y los pasos de preparación.
- Anota los tiempos de señal, los supuestos de ejecución, el tamaño, los costes y el tratamiento de la posición abierta al final.
- Separa las fechas de desarrollo de las de evaluación e indica si los resultados de evaluación ya han influido en alguna decisión.
- Guarda junto al resumen el número de operaciones, el registro de ejecuciones, el estado de las posiciones abiertas y las comprobaciones fallidas.
La plantilla de diario de trading permite organizar observaciones individuales, mientras que el protocolo describe el experimento que las produjo. Conserva una ejecución decepcionante con el mismo cuidado que una atractiva; de lo contrario, tu propio historial de investigación se convierte en una muestra seleccionada.
Interpreta las métricas dentro de su contexto
Empieza por los recuentos: observaciones disponibles, operaciones completadas, ejecuciones con costes y posiciones todavía abiertas. Un porcentaje sin denominador puede hacer que una muestra diminuta parezca más convincente de lo que es. Una señal pendiente al final no es una operación completada, y una posición abierta no es una ganancia o pérdida cerrada.
Después concilia los resultados netos cerrados con la valoración de la posición abierta y las comisiones ya pagadas. Examina dónde aparecen las pérdidas y cuánto depende el resultado de unas pocas operaciones. El replay no contiene depósitos, un modelo de margen ni retiradas; su trayectoria de resultados no debe interpretarse como el saldo de una cuenta de bróker.
Consulta la guía del factor de beneficio, el simulador de curva de capital y la guía del ratio de Calmar para conocer las definiciones y limitaciones de esas medidas. Un ratio favorable no corrige la anticipación de datos ni una ejecución irreal. Tampoco unas pocas horas de observaciones ficticias justifican una rentabilidad anualizada o afirmaciones sobre el drawdown a largo plazo.
Una conclusión útil describe las condiciones: qué regla se probó, con qué datos, bajo qué supuestos y qué incertidumbres quedan. «Esta versión perdió dinero al aumentar los costes» expresa un resultado de investigación más claro que prometer, sin fundamento, que la próxima versión será rentable.
Preguntas frecuentes
¿Puedo hacer backtesting manual de una estrategia de forex?
Sí. Revela las observaciones en orden cronológico, aplica reglas escritas y registra cada operación que cumpla las condiciones junto con sus supuestos. Evita recorrer un gráfico ya completo y elegir solo configuraciones reconocibles. Una prueba manual necesita las mismas reglas de costes y límites temporales que una automatizada.
¿Conviene usar MetaTrader 5 o TradingView?
Elige según las reglas, los datos y el comportamiento de ejecución que necesites estudiar. Lee los ajustes del probador o del emulador del bróker correspondiente y examina ejecuciones individuales. Distintos valores predeterminados pueden producir resultados diferentes sin que ninguna plataforma demuestre que la estrategia es rentable.
¿Siempre hacen falta ticks reales?
El detalle necesario depende de la regla. Una estrategia sensible a eventos dentro de una vela necesita información que esas velas quizá no proporcionen. Los ticks pueden añadir detalle, pero siguen siendo necesarias comprobaciones de cobertura, lados de cotización y supuestos de ejecución. Tener más filas no elimina las limitaciones del modelo.
¿Cuántas operaciones hacen fiable un backtest?
No existe una cifra universal que valide cualquier estrategia. La frecuencia, la dependencia entre operaciones, las condiciones de mercado y el número de variantes ensayadas afectan a la interpretación. Informa del tamaño de la muestra y de sus límites. El pequeño replay ficticio de esta guía es deliberadamente inadecuado para afirmar un rendimiento estadístico.
¿Por qué los resultados reales pueden diferir del backtest?
Los precios, los tiempos, el spread, la liquidez disponible, las comisiones y la gestión de órdenes pueden diferir del modelo. Además, una prueba no puede incluir condiciones de mercado que no aparezcan en sus datos. Los resultados históricos son evidencia condicionada; la observación futura y la ejecución efectiva deben registrarse por separado.
¿Un backtest rentable demuestra una ventaja?
No. Primero descarta filtraciones de información y errores contables; después examina cómo se seleccionó y probó la estrategia. Un resultado puede ser coherente internamente y seguir dependiendo de un periodo pequeño o poco representativo. El backtesting ayuda a investigar, pero no garantiza un desenlace futuro.
Fuentes y lecturas adicionales
- MetaTrader 5 — Strategy TestingConsultado
- MetaTrader 5 — Real and Generated TicksConsultado
- MQL5 — Testing Trading StrategiesConsultado
- TradingView — StrategiesConsultado