En este artículo
Al terminar, sabrás…
- Distinguir cobertura de registros y de minutos sin atribuirles probabilidad de ganar.
- Reconciliar unidades, costes, equity e índices de barras en una prueba corta.
- Validar relojes y separar selección de evaluación posterior.
Conceptos sin salir del artículo
Prueba histórica de una estrategia (backtesting) Bid y Ask Spread Comisión de negociación Drawdown Porcentaje de operaciones ganadorasAntes de optimizar un asesor, define qué quieres comprobar. Un resultado depende de reglas, datos, costes y ejecución simulada. Guarda programa compilado, código o revisión, parámetros, build del terminal, especificación del símbolo y cuenta. Compara también fechas solicitadas y efectivas: no basta una curva final.
Qué cambia entre MT4 y MT5
Ambas plataformas prueban asesores expertos. MT5 permite pruebas con varios símbolos y distribuye pasadas de optimización entre agentes; una prueba individual de un asesor se ejecuta en un agente, sin convertir automáticamente todos los núcleos en una sola simulación paralela. MT4 también ofrece optimización genética: no es exclusiva de MT5.
El tester estándar de MT4 no realiza operaciones sobre símbolos distintos al probado. Sumar informes individuales tampoco reproduce una cartera: falta capital compartido, margen y coincidencia temporal de posiciones. Elige la plataforma por las funciones que necesita la hipótesis, no por el informe más atractivo.
Barras, ticks y dos coberturas distintas
En MT4, Open prices, Control points y Every tick usan aproximaciones diferentes; Every tick no significa automáticamente ticks reales. El centro de historia contiene barras y sus descargas pueden diferir de la historia del broker. Un archivo HST no acredita que el tester esté usando un FXT construido con ticks externos correctamente importados.
MT5 ofrece, entre otros, ticks reales, ticks generados y OHLC M1. Incluso en una prueba basada en ticks reales puede generarse una parte donde hay barra M1 y faltan ticks del minuto. Los spreads de ticks reales pueden variar dentro del minuto; no equivalen a un spread supuesto a partir de barras.
Ejemplo ficticio: tres minutos tienen barra M1. Los dos primeros contienen diez ticks reales cada uno; el tercero, ninguno, y se generan ochenta. Hay veinte registros reales de cien: 20 %. Sin embargo, dos de tres minutos contienen ticks reales: 66,67 %. Son denominadores diferentes y ninguno es, por definición, el campo Modelling quality del informe.
Más ticks generados reducen la fracción de registros reales, sin cambiar cuántos minutos contienen ticks reales.
- Muestra original
- 20 reales + 80 generados – 100 registros en total; 20 % reales.
- Variante independiente
- 20 reales + 180 generados – 200 registros; 10 % reales.
- Minutos con ticks reales
- 2 de 3 = 66,67 % – La misma cobertura temporal en ambos casos.
- Calidad del informe
- Otra definición – Ninguna proporción anterior equivale automáticamente al campo de calidad.
Comprobación adicional: si el tercer minuto genera ciento ochenta registros, hay doscientos en total y la fracción real cae al 10 %. La cobertura de minutos sigue en dos de tres. Más registros generados alteran la composición, sin descubrir otro minuto vacío. Un porcentaje aislado no responde a ambas preguntas.
Las estrategias de apertura pueden admitir un modelo simplificado después de contrastarlo. Pero un sistema diario con stops intradía puede depender del recorrido interior. Control points sirve para aproximaciones preliminares; no resuelve qué nivel se alcanzó primero. Selecciona un modelo compatible con decisiones y salidas reales.
Reconcilia precios, comisiones y margen
MT4 construye pruebas sobre historia Bid y añade el spread elegido, o el vigente al comenzar según configuración. Con un punto de 0,00001 y un pip de 0,0001, doce puntos son 0,00012: 1,2 pips. Especifica ambas unidades; doce puntos no son doce pips en ese contrato.
En MT5 verifica comisiones de entrada y salida y si se cobran por ejecución, lote u otra base. Reconcilia una operación completa antes de interpretar miles. El modo de beneficio en pips omite comisiones, swaps y control de margen; no representa una cuenta monetaria completa. La emulación de retraso es otro supuesto de prueba, sin reproducir toda la liquidez ni garantizar un precio real.
Mantén divisa del modelo. Un ejemplo original en PLN parte de saldo 10.000 y beneficio cerrado 500: saldo 10.500 PLN. Con resultado abierto de −700, equity 9.800 PLN antes de otros cargos. Son importes de una cuenta PLN; compara cada métrica en su divisa y no sustituyas el drawdown de equity por el de saldo.
No confundas índice incorrecto con información futura
A las 10:15, una barra H1 iniciada a las 10:00 tiene datos parciales disponibles. Su máximo definitivo de las 11:00 aún no existe. Usar la barra actual no implica siempre anticipación; atribuirle su estado final antes del cierre sí puede introducirla. Documenta el momento exacto de la decisión.
En CopyRates, comprueba cantidad devuelta y dirección lógica del array. Supón cuatro cierres, del más antiguo al actual: 100, 101, 102 y 103. En un array normal, rates[1] corresponde a 101 y la última barra cerrada está en rates[2], con 102. Con indexación de serie, rates[1] representa 102. La condición «último cierre completado mayor que 101,5» es verdadera.
Leer 101 por asumir que todo índice uno significa barra anterior rechaza la señal usando una barra más vieja; no demuestra lectura del futuro. No cambies todos los ceros a unos sin distinguir datos de precio, buffers e indexación. Verifica también retornos parciales de funciones que descargan historia.
Informes y validación fuera de muestra
Un profit factor alto no diagnostica por sí solo sobreajuste, ni un umbral de Sharpe certifica un sistema. Conserva configuraciones descartadas y separa selección de evaluación. La supervivencia del universo histórico también importa: probar solo activos o productos disponibles al final elimina ausencias relevantes.
En walk-forward, fija parámetros con datos anteriores y evalúa el tramo siguiente sin retocarlos. Cuatro años de selección y uno de prueba son un diseño posible, no una receta universal. Une resultados fuera de muestra cronológicamente y anualiza de forma coherente. Un cociente de eficiencia puede volverse inestable con rendimientos dentro de muestra pequeños o negativos; no impongas 0,5 como frontera automática de validez.
Reloj simulado y revisión del CSV
En el tester de MT5, TimeGMT() coincide con TimeTradeServer() simulado. Esa igualdad no reconstruye el desfase histórico del servidor. Ejemplo hipotético: un instante es 12:00 UTC y 14:00 en un servidor declarado UTC+2. Un filtro UTC de 12:00 inclusive a 13:00 exclusivo debe aceptarlo. Tratar las 14:00 como UTC lo rechaza erróneamente.
Convierte la referencia temporal antes de aplicar el filtro. La igualdad de funciones en el tester no valida el desfase histórico.
- Antes del límite
- 11:59 UTC = 13:59 servidor – Fuera de la ventana.
- Inicio incluido
- 12:00 UTC = 14:00 servidor – Dentro de la ventana.
- Final excluido
- 13:00 UTC = 15:00 servidor – Fuera de la ventana.
Prueba además los límites: 11:59 UTC queda fuera, 12:00 dentro y 13:00 fuera; con ese desfase son 13:59, 14:00 y 15:00 del servidor. UTC+2 solo describe el ejemplo. Para otros periodos verifica cambios de desfase y fecha, y distingue Europe/Madrid de la zona del broker.
Exporta hora, apertura, máximo, mínimo y cierre con zona identificada y revisa el intervalo esperado. El controlador de cobertura CSV conserva una muestra M1 de 08:00 a 08:11 inclusive: doce posiciones temporales, doce filas, ocho marcas válidas distintas, cuatro posiciones vacías, dos filas repetidas y un grupo OHLC conflictivo. Las categorías no se deducen restando filas a marcas distintas: pueden solaparse.
OHLC completo no prueba cobertura de ticks ni precios ejecutables. No rellenes huecos automáticamente para mejorar la curva. La investigación existente del calendario BCE 2016–2025 conserva 2.560 publicaciones EUR/USD y 49 días laborables sin publicación según su calendario TARGET. Son tipos de referencia, sin equivaler al feed del broker ni a una descarga nueva.
Tres comprobaciones antes de optimizar
- Archiva una prueba simple con programa, build, parámetros, contrato, divisa y fechas efectivas. Reconcilia una operación desde Bid y Ask hasta comisión y equity, conservando el informe que permita explicar cada importe antes de aumentar la muestra.
- Construye una muestra corta con barras conocidas y comprueba cantidad devuelta, indexación y momento disponible de cada dato. Registra la decisión esperada y la observada; distingue una barra antigua elegida por error de un valor final usado antes de existir.
- Comprueba cobertura, zona horaria y límites de la ventana con casos dentro y fuera, incluyendo cambios de fecha pertinentes. Después congela parámetros y evalúa un tramo separado; conserva discrepancias sin ajustar retroactivamente las reglas para ocultarlas.
Comprueba lo aprendido
Aprox. 3 minutos de práctica.
Ver respuesta y explicación
Correcto: cambia la proporción de registros, pero no los minutos que contienen ticks reales.
Más preguntas
¿Una calidad del 99 % hace rentable el asesor?
No. Un indicador de modelado describe aspectos de la simulación según plataforma y preparación; no estima probabilidad de ganar. Una etiqueta externa del 99 % requiere revisar su procedimiento, datos y compatibilidad. En MT5 comprueba además qué parte utiliza ticks reales, qué parte se genera y si el modelo sirve para las reglas.
¿Cómo preparo una primera prueba simple en MT5?
Selecciona asesor compilado, símbolo, periodo, fechas y parámetros. Identifica depósito, divisa y condiciones de cuenta; fija modelo de ticks, comisiones y retraso según la pregunta. Desactiva optimización para esa prueba individual. Conserva informe y diario y comprueba inicio efectivo, historial suficiente y una operación completa antes de ampliar.
¿Toda discrepancia con demo demuestra look-ahead?
No. Pueden variar datos, spread, costes, hora, estado inicial o ejecución. Comprueba primero la primera decisión divergente. Dentro del código distingue valor parcial disponible de valor definitivo futuro y revisa orientación del array y número de elementos devueltos. Una barra vieja por índice incorrecto tampoco demuestra uso del futuro.
¿Puedo hacer backtesting de decisiones manuales?
Puedes usar reproducción y reglas registradas, pero conocer el desenlace condiciona la evaluación. Define entradas, rechazos y salidas antes de revelar las barras siguientes y conserva todos los casos. Una muestra de cien operaciones no elimina por sí sola sesgo, dependencia o cambios de mercado. Combina controles repetibles con evaluación posterior separada.
Fuentes y comprobación
- MetaTrader 4: Setup
Leídos modelos Open prices, Control points y Every tick, optimización genética e historia Bid con spread elegido o actual al inicio.
- MetaTrader 4: History Center
Leídos descarga, posible diferencia con datos del broker, barras M1, conversión de periodos e importación y exportación.
- MQL4: Operation of Programs in the Strategy Tester
Limitaciones leídas: no se realizan operaciones sobre símbolos distintos al probado; funciones de comunicación externa no ejecutadas y reloj simulado.
- MetaTrader 5: Real and Generated Ticks
Secciones primarias leídas: Bid/Ask frente a Last, diferencial variable o fijo y generación de ticks en minutos sin historia tick. El nombre del modo no certifica cobertura íntegramente observada.
- MetaTrader 5: Strategy Testing
Prueba simple, optimización, forward, parámetros, costes y desplazamiento de inicio leídos. Conservar configuración exacta sin garantía de ejecución real o rentabilidad.
- MQL5: CopyRates
Conteo devuelto, errores, historia parcialmente disponible y barra actual leídos. Comprobar número y periodo, sin inventar registros ausentes.
- MQL5: TimeGMT
Documentación leída: en el tester TimeGMT es igual a la hora simulada TimeTradeServer. No reconstruye por sí sola desfases históricos del servidor.
Los cálculos utilizan supuestos explícitos. No sustituyen los datos actuales de mercado ni las condiciones de tu proveedor.
