English Русский 中文 Español Deutsch 日本語
Teste de Visualização: Gráficos do status da conta

Teste de Visualização: Gráficos do status da conta

MetaTrader 4Testador | 22 fevereiro 2016, 11:56
842 0
Andrey Khatimlianskii
Andrey Khatimlianskii

Introdução

Acho que não sou só eu que desejo ver a informação sobre o status da conta durante o teste no modo de visualização de um modo mais informativo.
Qual foi o montante de margem livre antes de abrir a última posição? Para onde a curva de equilíbrio foi direcionada? Quão grande foi o levantamento de crédito sobre o patrimônio líquido no dia anterior?

Algumas destas questões foram discutidas nos artigos Testes de visualização: Melhoria de funcionalidade e Teste de visualização: Histórico de negociações. Mas eles não possuem nenhuma ferramenta de visualização rápida e fácil para visualizar as informações da conta. Neste artigo iremos discutir programas para desenhar gráficos do status da conta durante o teste no modo de visualização. Como exemplo, vamos examinar gráficos de balanço e patrimônio líquido. O artigo também contém instruções sobre a construção de gráficos de outros atributos de conta.


É fácil?

Alguém poderia pensar, o que pode ser mais fácil do que escrever um indicador exibindo balanço? O único buffer é preenchido pelo valor do último balanço mediante o recebimento das barras. Este é o algoritmo.
Mas há um problema: o indicador exibido no gráfico de visualização de teste não possui acesso ao status da conta testada. Todas as funções responsáveis por esta informação, retornam os valores da conta real.
Neste artigo, vamos aprender a evitar esta particularidade. Para isto, precisamos:

  • receber as informações sobre o status da conta do Expert Advisor;
  • passá-las para o indicador e visualizá-las.

Para passar dados relevantes, vamos utilizar variáveis globais do terminal, e para visualização, usaremos funções padrão de indicadores personalizados.


É fácil!

No Expert Advisor que será testado, precisamos adicionar um código para salvar o equilíbrio na variável global. Tudo o que precisamos é adicionar uma linha no início da função start():

int start()
{
   // saving the last value of the balance into the global variable
   GlobalVariableSet( "vGrafBalance", AccountBalance() );
 
   // Expert Advisor code
 
   return(0);
}

O código do indicador não é muito mais difícil:

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Blue
 
double balance[];
 
int init()
{
    IndicatorShortName( "vGrafBalance" );
    IndicatorDigits( 2 );
 
    SetIndexStyle( 0, DRAW_LINE );
    SetIndexBuffer( 0, balance );
    SetIndexLabel( 0, "Balance" );
}
int start()
{
    balance[0] = GlobalVariableGet( "vGrafBalance" );
    return(0);
}

Isto é tudo! Agora podemos compilar o indicador, a nova versão do Expert Advisor e iniciar o teste!

Depois de clicar no botão Iniciar e anexar um indicador ao gráfico, veremos algo parecido com isso:




Veja que a curva de equilíbrio reflete mudanças reais - no encerramento de cada trade seus valores alteram.



O que mais pode ser feito?

Todos os outros gráficos são construídos da mesma maneira:

  • adicionando no Expert Advisor uma linha, atualizando o valor da variável global necessária;
  • criando um indicador simples, lendo o valor dessa variável e refletindo o valor no gráfico.

Observe que o nome da variável para cada característica deve ser único, ou seja, ele não deve ser idêntico aos nomes de outras variáveis.
Além disso, deve ser idêntico ao nome da variável lido pelo indicador.


O segundo exemplo mostra como adicionar o gráfico de patrimônio líquido no gráfico de balanço.
O código do Expert Advisor:

int start()
{
   // saving the last value of the balance into the global variable
   GlobalVariableSet( "vGrafBalance", AccountBalance() );
   // saving the last value of the equity into the global variable 
   GlobalVariableSet( "vGrafEquity", AccountEquity() );
 
   // Expert Advisor code
 
   return(0);
}
O código indicador:
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red
 
double equity[];
 
int init()
{
    IndicatorShortName( "vGrafEquity" );
    IndicatorDigits( 2 );
 
    SetIndexStyle( 0, DRAW_LINE );
    SetIndexBuffer( 0, equity );
    SetIndexLabel( 0, "Equity" );
}
int start()
{
    equity[0] = GlobalVariableGet( "vGrafEquity" );
    return(0);
}

Exemplo de uso:




Podemos anexar um indicador à outro para ver a correlação de duas características:




Conclusão

O artigo descreve o processo de criação de indicadores, visualizando o status da conta. Analisamos os indicadores mais simples: indicadores de equilíbrio e de patrimônio líquido.
Você pode criar qualquer outro gráfico: percentual de negócios rentáveis, retorno esperado, Média ou lucro de uma posição em pontos, tudo está disponível.

A informação pode ser muito bem apresentada!

Traduzido do russo pela MetaQuotes Ltd.
Artigo original: https://www.mql5.com/ru/articles/1487

MT4TerminalSync - Sistema para sincronização de terminais MetaTrader 4 MT4TerminalSync - Sistema para sincronização de terminais MetaTrader 4
Este artigo é dedicado ao tema "Ampliando as possibilidades de programas MQL4 utilizando funções de sistemas operacionais e outros meios de desenvolvimento do programa". O artigo descreve um exemplo de um sistema de programa que implementa a tarefa da sincronização de várias cópias de terminais com base num único molde de origem.
Trading automatizado não padrão Trading automatizado não padrão
Trading bem sucedido e confortável utilizando a plataforma MT4 sem análise detalhada do mercado - é possível? Esse tipo de trading pode ser implementado na prática? Acredito que sim. Especialmente em termos de trading automatizado!
Interação entre o MetaTrader 4 e o Matlab através de arquivos CSV Interação entre o MetaTrader 4 e o Matlab através de arquivos CSV
Instruções detalhadas de como organizar o intercâmbio de dados das matrizes entre o MetaTrader 4 e o Matlab através de arquivos CSV.
Linguagem MQL4 para Iniciantes. Perguntas difíceis em frases simples Linguagem MQL4 para Iniciantes. Perguntas difíceis em frases simples
Este é o segundo artigo da série "Linguagem MQL4 para Iniciantes". Agora vamos examinar mais construções complexas e avançadas da linguagem, aprender novas opções e ver, como elas podem ser aplicadas na prática diária. Você vai se familiarizar com um novo tipo de ciclo ''enquanto'', um novo tipo de condição ''troca'', operadores ''pausa'' e ''continuação". Além disso, você vai aprender a escrever suas próprias funções e trabalhar com matrizes multidimensionais. E de bônus, preparei uma explicação sobre um pré-processador.