O MetaEditor possui um depurador integrado, isto é, uma ferramenta que permite testar o programa em etapas (por funções individuais). Você coloca pontos de interrupção no código do programa, quer dizer, locais onde a execução do programa deve ser suspensa. Em seguida, execute o programa num gráfico convencional ou no testador de estratégias. Assim que a execução do programa atingir o ponto de interrupção, ele será suspenso. Você pode ver os valores das variáveis avaliadas e, em seguida, continuar a execução do programa manualmente por etapas, verificando o algoritmo de operação.
Antes da depuração, defina seus parâmetros gerais nas opções do MetaEditor. Você pode especificar o símbolo e o período do gráfico nos quais ocorrerá a depuração dos aplicativos. Esse gráfico será criado temporariamente toda vez que você iniciar a depuração e será excluído imediatamente após sua conclusão.
Ao gráfico criado para depuração é aplicado o modelo "debug.tpl", localizado na pasta /profiles/templates da plataforma de negociação. |
Ponto de interrupção – este comando é acionado quando a execução do programa passa para a linha especificada e interrompe sua execução neste momento. Os pontos de interrupção permitem que você examine o comportamento do programa na área especificada do código: visualizar os valores das variáveis, a pilha de funções. No futuro, o processo de depuração pode ser retomado ou finalizado.
Pelo menos um ponto de interrupção no código do programa deve ser definido antes de iniciar a depuração. Para fazer isso, clique duas vezes na caixa cinza à esquerda da linha de código. Além disso, você pode colocar o cursor na linha e pressionar " Alternar ponto de interrupção" no menu "Depurar" ou "F9". Os pontos de interrupção são desligados da mesma maneira.
Para pular rapidamente para o ponto em que a execução do programa é interrompida, clique duas vezes na função na janela de exibição de pilha de chamadas. Além disso, através do menu de contexto desta janela, você pode ir para a lista de todos os pontos de interrupção no programa que está sendo depurado:
Você também pode ir a qualquer um dos pontos clicando duas vezes nele.
Para iniciar a depuração, abra o arquivo do arquivo básico do programa ou projeto. A depuração pode ser feita de dois modos:
Assim que o programa no modo de depuração atingir a linha com um ponto de interrupção, ele será interrompido. A linha na qual a execução parou será marcada com um ícone . Também na janela "Caixa de Ferramentas", aparecerá a guia "Depurar". Na parte esquerda, será mostrada a pilha de chamadas da função.
Durante o processo de depuração, você pode monitorar os valores das várias expressões (variáveis) que são recebidas no estágio atual de execução do programa. Para este propósito é projetado o lado direito da guia "Depurar" da janela "Caixa de Ferramentas". Para rastrear os valores de uma expressão, adicione-a a expressões monitoradas:
Você pode também permitir a visualização automática das variáveis locais na lista de monitoramento. Para fazer isso, selecione a opção "Locais" no menu de contexto. Durante a depuração, as variáveis do escopo atual serão automaticamente exibidas na lista à medida que você navega pelo código.
Na janela de monitoramento de expressões, você pode realizar cálculos matemáticos simples (adição, subtração, multiplicação e divisão), bem como visualizar valores em pontos específicos da matriz. Por exemplo, especificando a entrada A[3][4], onde A é o nome da matriz, enquanto 3 e 4 são posições em suas dimensões. Ao adicionar objetos às expressões monitoradas, você pode mostrar a lista de seus membros especificando no final um ponto ou pressionando as teclas "Ctrl+Space":
Para visualizar o conteúdo de um array ou objeto, clique duas vezes nele na janela de observação.
Por padrão, os números inteiros são exibidos na janela de monitoramento em formato decimal. Para gerar o valor em formato binário ou hexadecimal, no campo "Expressão", especifique um modificador b ou x, respectivamente, após a vírgula.
A pilha de chamadas é preenchida com informações para retornar o controle de subrotinas (funções aninhadas) para o programa (o manipulador de eventos principal de OnInit, OnTick, etc.). Na pilha, você pode olhar todo o caminho desde a ocorrência do evento na plataforma de negociação antes de chamar uma função específica.
Para cada função, as seguintes informações são exibidas:
Para depuração passo a passo com a visualização da pilha de chamadas, use os comandos do menu "Depurar" ou barra de ferramentas "Padrão":
Os comandos de depuração passo a passo só podem ser usados depois que o programa é interrompido no modo de depuração:
Chegada de eventos na plataforma de negociaçãocontinua mesmo quando o programa está no ponto de interrupção. Todos os eventos que chegam são enfileirados e seu processamento pelo expert continuará depois que o código do manipulador de eventos atual for encerrado. |
A pausa do programa durante a depuração ocorre automaticamente assim que atinge a linha onde definido o ponto de interrupção. Além disso, a depuração pode ser controlada manualmente:
|
A depuração de robôs de negociação e indicadores técnicos pode ser executada não apenas em dados de preços - que são atualizados em tempo real - mas também em dados históricos. O trabalho do programa pode ser verificado na parte desejada do histórico, sem esperar por determinados eventos comerciais em tempo real.
A depuração em dados históricos ocorre no modo de teste visual, no testador de estratégias. O programa é executado no gráfico construído segundo a sequência de ticks modelada no testador ou a partir do histórico acumulado de ticks (recebidos da corretora).
Para executar a depuração no histórico, defina os parâmetros de execução do teste nas opções do MetaEditor.
Coloque os pontos de interrupção no código do programa e, em seguida, execute a depuração em dados históricos.
Após isso, será executado o teste visual e começará o processo de depuração.