Simulación de visualización: gráfico, objetos, indicadores

El probador permite realizar simulación de dos formas distintas: con y sin visualización. El método se selecciona eligiendo la opción correspondiente en la pestaña de ajustes principales del comprobador.

Cuando la visualización está activada, el probador abre una ventana independiente en la que reproduce las operaciones de trading y muestra indicadores y objetos. Aunque es visual, no necesitamos verlo en todos los casos, sino sólo en los programas con una interfaz de usuario (por ejemplo, paneles de trading o marcas controladas por objetos gráficos). Para otros Asesores Expertos, sólo es importante la ejecución del algoritmo según la estrategia establecida. Esto puede comprobarse sin visualización, lo que puede acelerar considerablemente el proceso. Por cierto: es en este modo en el que se realizan las pruebas durante la optimización.

Durante esta simulación y optimización «en segundo plano» no se construye ningún objeto gráfico. Por lo tanto, al acceder a las propiedades de los objetos, el Asesor Experto recibirá valores cero. Así, podrá comprobar el trabajo con los objetos y el gráfico sólo cuando realice la simulación en el modo visual.

Anteriormente, en la sección Simulación de indicadores, hemos visto el comportamiento específico de los indicadores en el probador. Para aumentar la eficacia de la optimización y simulación no visual de Asesores Expertos (mediante indicadores), los indicadores pueden calcularse no en cada tick, sino sólo cuando les solicitemos datos. El recálculo en cada tick sólo se produce si hay funciones EventChartCustom, OnChartEvent, OnTimer o directivas tester_everytick_calculate en el indicador (véase Directivas del preprocesador para el probador). En la ventana del comprobador visual, los indicadores en línea siempre reciben eventos OnCalculate en cada tick.

Si la simulación se lleva a cabo en un modo no visual, después de su finalización, el gráfico de símbolos se abre automáticamente en el terminal, que muestra las transacciones completadas y los indicadores que se utilizaron en el Asesor Experto. Esto ayuda a correlacionar los momentos de entrada y salida del mercado con los valores de los indicadores. Sin embargo, aquí nos referimos sólo a los indicadores que funcionan en el símbolo y el marco temporal de la simulación. Si el Asesor Experto ha creado indicadores en otros símbolos o marcos temporales, no se mostrarán.

Es importante tener en cuenta que los indicadores que aparecen en el gráfico que se abre automáticamente una vez finalizada la simulación se vuelven a calcular una vez finalizada ésta. Esto sucede incluso si estos indicadores se utilizaron en el Asesor Experto probado y se calcularon previamente «sobre la marcha», a medida que se formaban las barras.

En algunos casos, el programador puede necesitar ocultar información sobre qué indicadores se utilizan en el algoritmo de trading, y por lo tanto su visualización en el gráfico no es deseable. Para ello puede utilizarse la función IndicatorRelease.

La función IndicatorRelease está pensada originalmente para liberar la parte calculada del indicador si ya no se necesita. Esto ahorra memoria y recursos del procesador. Su segundo propósito es prohibir la visualización del indicador en el gráfico de simulación después de completar una sola ejecución.

Para desactivar la visualización del indicador en el gráfico al final de la simulación, basta con llamar a IndicatorRelease con el manejador del indicador en el manejador OnDeinit. La función OnDeinit siempre se llama en Asesores Expertos después de la finalización y antes de mostrar el gráfico de prueba. Ni OnDeinit ni los destructores de objetos globales y estáticos se llaman en los propios indicadores en el probador; esto es lo que acordaron los desarrolladores de MetaTrader 5.

Además, la API de MQL5 incluye una función especial, TesterHideIndicators, con una finalidad similar, que estudiaremos más adelante.

Al mismo tiempo, debe tenerse en cuenta que las plantillas tpl (si se crean) pueden influir adicionalmente en la representación externa del gráfico de simulación.

Así, si existe una plantilla tester.tpl en el directorio MQL5/Profiles/Templates, se aplicará al gráfico abierto. Si el Asesor Experto utilizó otros indicadores en su trabajo y no prohibió su visualización, entonces los indicadores de la plantilla y del Asesor Experto se combinarán en el gráfico.

Cuando tester.tpl está ausente, se aplica la plantilla por defecto (default.tpl).

Si la carpeta MQL5/Profiles/Templates contiene una plantilla tpl con el mismo nombre que el Asesor Experto (por ejemplo, ExpertMACD.tpl), entonces durante la simulación visual o en el gráfico abierto después de la simulación, sólo se mostrarán los indicadores de esta plantilla. En este caso, no se mostrará ningún indicador utilizado en el Asesor Experto probado.