Guía de ayuda de MetaTrader 5Trading algorítmico, robots comercialesCómo el simulador descarga los datos históricos

Cómo el simulador descarga los datos históricos

Historia de carga, preparación para las pruebas y cambio de fecha de inicio

El simulador de estrategias crea la simulación más realista del mercado. Para ello, prepara con antelación una cantidad suficiente de datos históricos del símbolo a probar.

Antes de iniciar cualquier prueba, la plataforma sincroniza la historia:

  • Las barras M1 y los ticks del símbolo seleccionado se descargan del servidor comercial al terminal. Al iniciar el simulador por primera vez, en el terminal se carga toda la historia disponible del símbolo de prueba.
  • La historia se copia del terminal al agente de pruebas de forma comprimida. El agente funciona localmente, generando ticks de forma independiente o usando datos reales de ticks (si están disponibles).
  • En las pruebas multidivisa, al acceder por primera vez a un nuevo símbolo o marco temporal, la prueba se detiene para cargar la historia ausente. Al mismo tiempo, también se carga la reserva "por encima del mínimo" para que los indicadores se puedan calcular desde la primera barra.

Requisitos mínimos de profundidad histórica

El simulador siempre carga el "búfer de historia previo al inicio" para garantizar la estabilidad de los cálculos:

  • D1 y inferiores: desde principios del año anterior. Esto proporciona un mínimo de 1 año de historia.  Por ejemplo, si la fecha de inicio de la prueba es el 01.03.2023, el simulador descargará datos de la historia del terminal a partir del 01.01.2022. Es decir, 14 meses antes de la fecha de inicio de las pruebas.
  • W1 – 100 barras de semanas (~2 años).
  • MN1 –  100 barras de meses (~8 años).

Si hay menos datos, el simulador cambiará la fecha de inicio real a la más cercana disponible donde se cumplan las condiciones.

Debido a estos requisitos, a veces surgen situaciones en las que las pruebas no comienzan en la fecha especificada, sino en una fecha posterior. En el registro del simulador esto viene acompañado del mensaje:

start time changed to 2024.03.15 00:00 to provide data at beginning

Esto no es un error, sino un mecanismo de corrección incorporado.

Durante las pruebas multidivisa, cuando la estrategia accede por primera vez a un símbolo o marco temporal "ajeno", el simulador se detiene para cargar la historia ausente. En este caso, siempre se cargará una reserva “por encima del mínimo”, de modo que haya suficientes datos para los indicadores y el recálculo del margen.

El simulador de estrategias almacena la historia de cada símbolo de forma centralizada para todos los agentes locales en una estructura con la siguiente forma (ejemplo para EURUSD):

\Program Files\MetaTrader 5 Strategy Tester\Tester\bases\<nombre_del_servidor_comercial>\history\EURUSD

La historia de ticks del símbolo EURUSD se almacena de la misma manera:

\Program Files\MetaTrader 5 Strategy Tester\Tester\bases\<nombre_del_servidor_comercial>\ticks\EURUSD

Cómo reducir o evitar los cambios en la fecha de inicio de la prueba

Utilice un marco temporal más pequeño.

El simulador siempre verifica que haya al menos 100 barras en el marco temporal seleccionado antes de comenzar la simulación.

Esta es la profundidad mínima requerida para el cálculo estable de los indicadores y el inicio correcto.

  • Si realiza una prueba en D1, necesitará al menos 100 barras diarias (≈ 5 meses).
  • Si selecciona H1 o M15, se requerirán 100 barras de horas o de 15 minutos. Ese volumen casi siempre está ahí, incluso si la historia es limitada.
  • Por lo tanto, si no hay suficiente historia, el cambio en la fecha de inicio de la prueba será menor en los TF más jóvenes que en los más antiguos.

alert_icon Sin embargo, el asesor debe trabajar correctamente en el marco temporal seleccionado. Si la estrategia está diseñada inicialmente para D1, entonces al probar en M15/H1 deberá asegurarse de sincronizar correctamente sus cálculos y no comenzar a "recalcular" señales con demasiada frecuencia.

Historia mínima para diferentes marcos temporales y posible cambio en la fecha de inicio de la prueba

Marco temporal de la prueba

Mínimo que carga el simulador

Desplazamiento probable del inicio de la prueba

M1

≥100 barras (≈1 hora 40 min)        

Prácticamente no hay desplazamiento

M15

>100 barras (~25 horas)

El desplazamiento es mínimo

H1

≥100 barras (~4 días)        

El desplazamiento es mínimo

D1

≥100 barras (~5 meses)        

Puede desplazar el gráfico en 5 meses

W1

≥100 semanas (~2 años)            

Desplazamiento hasta 2 años

MN1

≥100 meses (~8 años)            

Desplazamiento de hasta 8 años, si la historia está limitada

Cómo leer la tabla

  • Al realizar pruebas en D1, el simulador definitivamente adelantará la fecha hasta acumular al menos 100 barras diarias.
  • Si cambia a H1 o M15, el simulador solo necesitará unos pocos días de datos, que suelen estar disponibles; la prueba comenzará más cerca de la fecha seleccionada.
  • En marcos temporales más largos (S1, MN1), el cambio puede ser muy grande, ya que se necesitan años de historia.

Características adicionales del simulador

  • Modos de generación de ticks:
    • Cada tick: la generación de ticks basada en el marco temporal M1 proporciona el máximo realismo. Consume muchos recursos del sistema y es el tipo de prueba que requiere más tiempo.
    • 1 Minute OHLC: más rápido, pero menos realista. La secuencia de ticks se construye únicamente con los precios OHLC de las barras de minuto; el número de puntos de control generados se reduce sustancialmente, por lo que el tiempo de prueba se reduce. La función OnTick() se ejecuta en todos los puntos de control, que se construyen con los precios OHLC de las barras de minuto.
    • Solo precios de apertura: solo precios de apertura de la barra en el marco temporal seleccionado para la prueba. Se requiere precaución en las pruebas multidivisa. La función experta OnTick() se ejecuta solo al inicio de la barra al precio de apertura. Debido a esta función, es posible que los niveles de stop y las órdenes pendientes no se activen al precio declarado (especialmente al probar en marcos temporales más altos). A cambio, tenemos la oportunidad de realizar rápidamente una prueba de evaluación del experto. El tipo de prueba más rápido y menos preciso.
    • Cada tick se basa en ticks reales: máxima precisión de prueba. En lugar de generarse a partir de datos de minutos, se usan los ticks reales de los instrumentos financieros acumulados por el bróker. En el modo de ticks reales, también se usan barras de minutos. Se utilizan para comprobar y ajustar los datos de ticks. Esto también permite evitar discrepancias entre los gráficos del simulador y el terminal del cliente.
  • Simulación de tiempo:
    • En la prueba, TimeLocal(), TimeTradeServer() y TimeGMT() retornan los mismos valores.
  • OnTimer y Sleep:
    • También funcionan en las pruebas. Los temporizadores ralentizan la simulación; Sleep() simula pausas, pero se produce un error con un ciclo infinito.

Organización de agentes y almacenamiento en la caché

  • La historia se guarda de forma comprimida y se reutiliza si el intervalo y otras configuraciones de la prueba no han cambiado desde la última prueba.
  • El proceso del agente local no se descarga durante aproximadamente 5 minutos después de que se complete la prueba, para garantizar un inicio rápido de la siguiente prueba.