Ayuda de MetaEditor

Depuración

Es realmente complicado evitar los errores en el proceso de desarrollo de los programas relativamente complejos. En el MetaEditor ha sido incorporado el depurador que permite resolver este problema. La depuración de las aplicaciones consiste en la posibilidad de ejecutar el programa paso a paso calculando los valores de variables locales, colocando los puntos de interrupción en la posición predeterminada.

Para empezar el proceso de depuración, la ventana del archivo principal del proyecto (*.MQ5) debe de estar activa. Para depurar los archivos de inclusión (*.MQH) hay que iniciar la depuración del archivo en el que éstos entran.

A continuación, vamos a estudiar paso a paso el proceso de depuración de programas:

Configuración previa

Antes de iniciar el proceso de depuración, debe comprobar sus parámetros en la pestaña "Depuración" de la ventana de opciones del MetaEditor. Ahí se puede indicar el símbolo y el período del gráfico para el que va a realizarse la depuración de aplicaciones. Este gráfico va a crearse temporalmente cada vez que se inicie la depuración y será eliminado tras su finalización.

Al gráfico que se crea para la depuración se aplica la plantilla "debug.tpl" que se ubica en la carpeta /profiles/templates del Terminal de Cliente.

Punto de interrupción

Un punto de interrupción es un comando que se ejecuta al llegar la ejecución del programa a la línea especificada, y que interrumpe su ejecución en este punto. Los puntos de interrupción permiten investigar el comportamiento del programa en un punto determinado: ver los valores de las variables, pila de funciones. Luego Usted puede reanudar o finalizar el proceso de depuración.

Antes de iniciar la depuración, hay que fijar los puntos de interrupción en las posiciones necesarias del código. Para eso haga doble clic izquierdo en el campo gris a la izquierda de la línea necesaria. También puede colocar el cursor en la línea necesaria y ejecutar el comando "Alternar el punto de interrupción Alternar el punto de interrupción" en el menú "Depurar" o en la barra de herramientas "Estándar", o pulse la tecla "F9". La desactivación de los puntos de interrupción se realiza de la misma manera.

Punto de interrupción activado

Iniciar depuración

Para iniciar el proceso de depuración, debe abrir el archivo del programa seleccionándolo en la ventana "Navegador". Luego hay que ejecutar el comando "Empezar Empezar" en el menú "Depurar" o en la barra de herramientas, o pulsar la tecla "F5". Después de eso el programa que se depura será adjuntado a un gráfico especial en el Terminal de Cliente. En cuanto la ejecución del programa alcance la línea con el primer punto de interrupción, se detendrá. El punto en el que se ha detenido la ejecución recibirá el siguiente aspecto Punto de interrupción alcanzado. Además, en la ventana "Caja de herramientas" aparecerá la pestaña "Depuración". En su parte izquierda se mostrará la pila de llamadas de la función.

La depuración de aplicaciones se lleva a cabo en condiciones reales a base de los datos que llegan desde el servidor. El gráfico provisional que se crea especialmente para la depuración no se diferencia en nada de los demás gráficos que se abren en el terminal.

Expresiones observadas

Durante el proceso de depuración se puede observar los valores de diferentes expresiones (variables) que se reciben en esta etapa de ejecución del programa. Para eso sirve la parte derecha de la pestaña "Depuración" de la ventana "Caja de herramientas". Se puede añadir una expresión de la siguiente manera:

  • Durante la depuración abrir el menú contextual para la expresión necesaria y seleccionar el comando "Agregar observación Agregar observación" o pulsar la combinación de teclas "Shift+F9";
  • En la parte derecha de la pestaña "Depuración" de la ventana "Caja de herramientas" abrir el menú contextual y ejecutar el comando "AgregarAgregar" o pulsar la tecla "Insert". Después de eso, aparece una nueva línea en el campo "Expresión" de la cual debe introducir el nombre del parámetro observado.
  • Para cambiar el nombre de la expresión observada, debe hacer doble clic izquierdo en su nombre, o seleccionarlo y ejecutar el comando "Editar" en el menú contextual, o pulsar la tecla "F2".

Ver la pila y valores de la expresión

En la ventana de observación de expresiones se puede realizar los cálculos matemáticos sencillos (sumar, restar, multiplicar y dividir), así como ver los valores en los puntos concretos del array. Por ejemplo, indicando la entrada A[3][4], donde A es el nombre del array, 3 y 4 son posiciones en sus dimensiones. Durante la agregación de objetos en las expresiones observadas, se puede mostrar la lista de sus miembros poniendo un punto al final o pulsando las teclas "Ctrl+Space":

Insertar miembros de objetos

Ver la pila de llamadas

Para ver la pila sirve la parte izquierda de la pestaña "Depuración" de la ventana "Caja de herramientas". Contiene los siguientes elementos:

  • Nombre del archivo del que ha sido llamada la función;
  • Nombre de la función;
  • Número de la línea del archivo donde esta función ha sido llamada.

Cuando el proceso de depuración se inicia, en esta ventana se muestra sólo la dirección de la función llamada en la que está establecido el punto de interrupción ejecutado.

Depuración paso a paso

Para la depuración paso a paso con la posibilidad de ver la pila de llamadas se utilizan los comandos del menú "Depurar" o la barra de herramientas "Estándar":

  • Paso con entrada Paso con entrada — hacer un paso de ejecución del programa con la entrada en las funciones a las que se llama. Esta misma acción se realiza si pulsa la tecla "F11".
  • Paso sin entrada Paso sin entrada — hacer un paso de ejecución del programa sin la entrada en las funciones a las que se llama. Puede realizar la misma acción pulsando la tecla "F10".
  • Paso fuera Paso fuera — ir a la ejecución de un paso del programa a un nivel superior. Puede realizar la misma acción pulsando la combinación de teclas "Shift+F11".

Para poder ejecutar los comandos arriba descritos, el proceso de depuración tiene que estar interrumpido. Esto se hace de forma automática, cuando la ejecución del programa alcance un punto de interrupción. También se puede interrumpirlo manualmente pulsando el botón "Pausa Pausa" en el menú "Depurar" o en la barra de herramientas "Estándar", o pulsando la tecla "Break".

Mientras que el programa se encuentre en el punto de interrupción, los eventossiguen ocurriendo. En este caso se ponen en cola, y el EA seguirá con su procesamiento después de salir del código del procesador de eventos actual.

Detener, reanudar y finalizar la depuración

El proceso de ejecución del programa durante la depuración se detiene automáticamente en cuanto se alcance la línea que contiene el punto de interrupción. No obstante, se puede controlar este proceso manualmente:

  • Detener ejecución
    Usted puede detener manualmente la ejecución del programa durante el proceso de depuración mediante el comando "Pausa Pausa" en el menú "Depurar" o en la barra de herramientas, o pulsando la tecla "Break". Después de eso, se puede ejecutar la depuración paso a paso.
  • Reanudar ejecución
    Si quiere reanudar la ejecución del programa en el modo de depuración tras su detención automático o manualmente, ejecute el comando "Continuar Continuar" en el menú "Depurar" o en la barra de herramientas, o pulse la tecla "F5".
  • Terminar depuración
    Para terminar el proceso de depuración del programa, ejecute el comando "Terminar Terminar" en el menú "Depurar" o en la barra de herramientas, o presione la tecla "Shift+F5". Después de finalizar el proceso de depuración, el programa se quita del gráfico especial al que ha sido aplicado para su depuración, y este gráfico se cierra.

La depuración es imposible sin los archivos de fuente MQ5 y MQH. Tampoco se recomienda distribuir los archivos ejecutables EX5 obtenidos en el proceso de depuración.

Depuración en la historia

La depuración de robots comerciales e indicadores técnicos puede ser iniciada, no solo sobre los datos de precio que se actualizan en el modo de tiempo real, sino también sobre los históricos. Se puede comprobar el funcionamiento del programa en la sección de la historia que le interese. La depuración tiene lugar en el modo de test visual en el simulador de estrategias. El programa se inicia en el gráfico que se construye conforme a la secuencia de ticks modelada en el simulador.

Para iniciar la depuración en la historia, indique los parámetros del inicio del test en los ajustes del MetaEditor.

Ajustes de la depuración en la historia

Distribuya los puntos de interrupción en el código del programa, y a continuación inicie la depuración de los datos históricos.

Iniciar la depuración en la historia

Después se iniciará el test visual y comenzará el proceso de depuración.

Depuración en la historia