English Русский 中文 Deutsch 日本語 Português
Representación gráfica de las pruebas: Historial de las operaciones.

Representación gráfica de las pruebas: Historial de las operaciones.

MetaTrader 4Probador | 15 marzo 2016, 10:36
959 0
Andrey Khatimlianskii
Andrey Khatimlianskii

1. Descripción del problema

A partir de la versión build 196, el Terminal de cliente MetaTrader 4 ofrece la función de representación gráfica. Permite controlar las pruebas de los Asesores Expertos a un nivel cualitativamente nuevo. Los traders pueden ver ahora cada acción de su Asesor Experto mediante la revisión de sus operaciones en el historial.

Puede leer acerca del uso del visualizador en el artículo Prueba de Asesores Expertos en el terminal de cliente MetaTrader 4: Un vistazo desde fuera. En mi anterior artículo llamado Representación gráfica de las pruebas: Mejora de la funcionalidad, se abordó la forma de implementar la pestaña "Operaciones" para las pruebas. Ahora le vamos a añadir la pestaña "Historial de cuentas".

2. El objetivo y la forma de llevarlo a cabo

En primer lugar, tenemos que aceptar el hecho de que no se puede hacer una copia exacta del "Historial de cuentas". Para crearlo, tendremos que escribir un programa complejo mediante archivos DLL. Pero esto no es necesario en absoluto ya que la pestaña "Resultados" de la "Prueba de estrategia" contiene casi toda la información acerca de las operaciones realizadas.

Nuestra tarea consiste en mostrar la información relevante en la pantalla. Esto puede resultar muy útil cuando se analiza el trabajo del Asesor Experto. No habrá necesidad de cambiar constantemente entre las pestañas.

Puesto que no hay mucho espacio en la pantalla y llevar a cabo el desplazamiento es una tarea muy complicada, sólo vamos a mostrar los eventos más recientes.

Hay que recordar que para crear una subventana en la que se va a mostrar el historial, hay que crear un indicador y unirlo al gráfico y crear la plantilla tester.tpl o usar la plantilla <expert_name>.tpl (se adjunta el indicador a este artículo).


Guardar una plantilla para la prueba

Guardar una plantilla para la prueba


Ahora podemos empezar a preparar el Asesor Experto.

Esto tampoco es muy difícil:
- guardamos el archivo VisualTestingTools.mq4 en el directorio ...\MetaTrader 4\experts\include\;
; añadimos la línea #include <VisualTestingTools.mq4> al Asesor Experto; el contenido del archivo está incluido ahora en el código del Asesor Expero e
insertamos en las funciones init() y start() del Asesor Experto las llamadas de las funciones que se encargan de actualizar el historial de operaciones.

...
double _Commission = 0.0; string _Comment = ""; datetime _Expiration = -1;
 
#include <VisualTestingTools.mq4>
 
int init()
  {
    if(FastEMAPeriod >= SlowEMAPeriod) 
        return(-1);
    vTerminalInit();
    vHistoryInit();
    return(0);
  }
 
int start()
  {
    if(FastEMAPeriod >= SlowEMAPeriod)
        return(-1);
    vTerminalRefresh();
    vHistoryRefresh();
 
    int _GetLastError = 0;
...

3. La prueba

Ahora vamos a tratar de probar el nuevo Asesor Experto. Para ello, abrimos la ventana de la "Prueba de estrategia", seleccionamos CrossMACD_DeLuxe_VisualHistory en el menú de los Asesores Expertos y pulsamos el botón "Propiedades del experto".

Strategy Tester Window

Strategy Tester Window


Se han añadido nuevas variables externas al Asesor Experto; se declaran en un archivo de inclusión llamado VisualTestingTools.mq4. Algunas de estas variables están diseñadas para el manejo de la pestaña "Terminal" y otras para la pestaña "Historial de cuentas", pero la mayoría son comunes:
- TerminalRows - el número máximo de líneas que se muestran en la pestaña "Terminal". Si ponemos TerminalRows = 0, no se actualizará el terminal;
- HistoryRows - número máximo de líneas a mostrar en la pestaña "Historial de cuentas". Si ponemos HistoryRows = 0, no se actualizará el historial de cuentas;
- BigText - ponemos "true" si queremos un tamaño de fuente mayor;
- SignalPoints - la distancia en puntos, desde que empiezan a resaltarse los campos Stop Loss, Take Profit y Open Price para las órdenes pendientes. Por ejemplo, para SignalPoints = 10, el campo Stop Loss cambiará su color cuando el precio está a una distancia de 10 puntos del Stop Loss de la posición;
- ShowCancelled - ponemos "true" si queremos ver las órdenes canceladas en el historial de trading;
- ShowExpired - ponemos "true" si queremos ver las órdenes pendientes expiradas en el historial de trading;
- MainColor - color de los encabezamientos de las pestañas "Terminal" y "Historial de cuentas", además de la línea de información de la cuenta del terminal (Saldo, Garantía, ...).
- BuyColor - color de la información de las posiciones Buy;
- BuyOPColor - color del campo Open Price en la pestaña "Terminal"; este color sustituirá el color principal al acercarse el precio actual al nivel de apertura de Buy Stop y Buy Limit;
- BuySLColor - en la pestaña "Terminal": el color que sustituirá el color principal al acercarse el precio al nivel Stop Loss de las posiciones Buy; para la pestaña "Historial de cuentas": el color que sustituirá el color principal si se cierra la posición Buy mediante Stop Loss;
- BuyTPColor - al igual que con BuySLColor, pero aplicado a las posiciones de Take Profit;
- SellOPColor, SellSLColor and SellTPColor - al igual que con las posiciones Sell.

Establecemos los valores deseados de las variables y pulsamos "Aceptar". Comprobamos si está habilitado el "Modo visual" e iniciamos la prueba:

Representación gráfica de las pruebas: Visualización de la prueba: Se han cargado las ventanas "Terminal" y "Historial de cuentas"

El Asesor Experto ha abierto una posición que se representa en la ventana "Terminal"

Una vez se cierra la posición, se pasa a la ventana "Historial de cuentas" y se sustituye por otra. Tenga en cuenta que el campo StopLoss está resaltado en rojo; la posición fue cerrada mediante Stop Loss.

La segunda posición fue cerrada mediante Take Profit. Tenga en cuenta que las últimas posiciones se muestran en la parte superior del "Historial de cuentas". Por lo tanto, siempre veremos los eventos más recientes.

Después de unos minutos, esto es lo que veremos en el "Terminal".

4. Posibles problemas

El problema descrito en mi artículo Representación gráfica de las pruebas: Mejora de la funcionalidad se aplica también al indicador vHistory: Si el indicador no está en la segunda subventana de la plantilla que usa la "Prueba de estrategia", se debe indicar el número de la subventana de forma explícita para la correcta actualización del "Historial de cuentas".

    vHistory_win = WindowFind( "vHistory" );
    if ( IsTesting() ) { vHistory_win = 2; }

5. Conclusión

Se muestran a continuación las capturas de pantalla que ilustran varias situaciones.

Traducción del ruso hecha por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/ru/articles/1452

Enviar mensajes desde un Asesor Experto mediante Skype Enviar mensajes desde un Asesor Experto mediante Skype
Este artículo aborda la manera de enviar mensajes internos y mensajes SMS desde un Asesor Experto a un teléfono móvil mediante Skype.
Análisis técnico: ¡Hacer posible lo imposible! Análisis técnico: ¡Hacer posible lo imposible!
Esto artículo responde a la siguiente pregunta: ¿Por qué se puede hacer posible lo imposible cuando muchos sugieren lo contrario? Razonamiento del análisis técnico.
Los principios de la transformación del tiempo en el trading intradía Los principios de la transformación del tiempo en el trading intradía
Este artículo aborda el concepto del tiempo de funcionamiento que permite recibir un flujo más uniforme del precio. También se aborda el código del promedio móvil modificado teniendo en cuenta la transformación del tiempo.
Puntos de interrupción en la "Prueba de estrategia": ¡Es posible! Puntos de interrupción en la "Prueba de estrategia": ¡Es posible!
Este artículo aborda la emulación de los puntos de interrupción durante la ejecución de la "Prueba de estrategia" y la visualización de la información de depuración.