El MetaEditor tiene un depurador integrado, una herramienta que le permite poner a prueba un programa en varios pasos (por funciones individuales). Usted puede colocar puntos de interrupción en el código del programa: los lugares donde debe suspenderse la ejecución del programa. Luego ejecute el programa en un gráfico regular o en el simuldor de estretagias. Tan pronto como la ejecución del programa llegue al punto de interrupción, se detendrá. Podrá ver los valores de las variables calculadas y luego continuar la ejecución del programa manualmente por pasos, verificando el algoritmo de la operación.
Antes de comenzar la depuración, establezca sus parámetros generales en los ajustes del MetaEditor. Podrá indicar el símbolo y el periodo del gráfico para el que va a realizarse la depuración de aplicaciones. Este gráfico se creará 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 le aplica la plantilla "debug.tpl", ubicada en la carpeta /profiles/templates de la plataforma comercial. |
Un punto de interrupción es un comando que se ejecuta al llegar la ejecución de un 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 segmento determinado: ver los valores de las variables, la pila de funciones, etcétera. Luego usted podrá reanudar o finalizar el proceso de depuración.
Se debe establecer al menos un punto de interrupción en el código del programa antes de iniciar la depuración. Para hacer esto, haga doble clic en el cuadro gris a la izquierda de la línea de código. También podrá situar el cursor en la línea y pulsar " Alternar el punto de interrupción "en el menú "Depuración" o "F9". Los puntos de interrupción se desactivan de la misma manera.
Para trasladarse rápidamente al punto en el que se ha interrumpido la ejecución del programa, pulse dos veces sobre la función en la ventana de visionado de la pila de llamada. Asimismo, a través del menú contextual de esta ventana es posible pasar al visionado de la lista de todos los puntos de interrupción en el programa a depurar:
También es posible pasar a cualquiera de los puntos haciendo doble clic sobre el mismo.
Para iniciar la depuración, abra el archivo archivo principal de programa o el proyecto. La depuración se puede hacer en dos modos:
Tan pronto como la ejecución del programa en el modo de depuración llega a la línea con un punto de interrupción, se detendrá. La línea en la que se ha detenido la ejecución se marcará con un icono. 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.
Durante el proceso de depuración se pueden 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". Para rastrear los valores de una expresión, agréguela a las observadas:
También podrá activar la visualización automática de las variables locales en la lista de observaciones. Para ello, seleccione la opción "Locales" del menú contextual. Durante la depuración, las variables del ámbito actual se mostrarán automáticamente en la lista a medida que se avance en el código.
En la ventana de observación de expresiones se pueden realizar cálculos matemáticos sencillos (sumar, restar, multiplicar y dividir), así como ver los valores en los puntos concretos de la matriz. Por ejemplo, indicando la entrada A[3][4], donde A es el nombre de la matriz, 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":
Para visualizar el contenido de una matriz u objeto, clique dos veces sobre estos en la ventana de observación.
Por defecto, los números enteros se muestran en la ventana de observación en forma decimal. Para mostrar el valor en forma binaria o hexadecimal, en el campo "Expresión", especifique el modificador b o x, respectivamente, separados por una coma.
La pila de llamadas se rellena con información para devolver el control de las subrutinas (funciones anidadas) al programa (el manejador principal de eventos para OnInit, OnTick, etcétera). En la pila, podrá seguir todo el camino desde la aparición de los eventos en la plataforma comercial hasta la llamada de una función específica.
Para cada función, se muestra la siguiente información:
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":
Los comandos de la depuración paso a paso solo se pueden usar después de que el programa se pause en el modo de depuración:
Aparición de eventos en la plataforma comercialcontinúan incluso cuando el programa está en el punto de interrupción. Todos los eventos acaecidos se ponen en la cola, y el asesor seguirá con su procesamiento después de salir del código del manejador de eventos actual. |
La 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. Además, la depuración se puede controlar manualmente:
|
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. El trabajo del programa se puede verificar en el sitio de interés, sin esperar ciertos eventos comerciales en tiempo real.
La depuración con datos históricos tiene lugar en el modo de prueba visual en el simulador de estrategias. El programa se ejecuta en el gráfico, que se construye de acuerdo con una secuencia de tick modelados en el simulador o con la historia de ticks acumulada (recibidos del bróker).
Para iniciar la depuración en la historia, indique los parámetros de inicio de la prueba en los ajustes del MetaEditor.
Distribuya los puntos de interrupción en el código del programa, y a continuación inicie la depuración en los datos históricos.
Después se iniciará la prueba visual y comenzará el proceso de depuración.