Teste de Visualização: Negociação manual

Andrey Khatimlianskii | 18 fevereiro, 2016

Introdução

Agora uma função de visualização de testes foi incluída ao terminal do cliente MetaTrader 4. A função permite controlar os testes do expert advisor. Mas nem toda estratégia pode ser programada, e nem todo trader pode escrever o código de um bom expert advisor.

Este artigo descreve como usar a função de visualização para testar estratégias manuais que não estão programadas na forma de um expert advisor. São necessários apenas conhecimentos básicos acerca do terminal e nenhum conhecimento de programação para a realização de transações no provador de estratégias manuais, então todo trader deve ser capaz de usá-lo.

O artigo menciona programas que realizam as abas 'transação' e 'histórico de contas' durante a visualização. O uso destes programas é descrito em maiores detalhes nos artigos chamados Visualização de testes: Melhoria de funcionalidade e Visualização de testes: Histórico de transações.

Se você nunca tiver trabalhado com o visualizador, você pode ler o artigo chamado Teste de expert advisors no terminal do cliente MetaTrader 4: Um olhar para fora.


Preparações para o uso


Então você é capaz de usar o visualizador de testes e gostaria de começar a testar a sua estratégia imediatamente. O que é necessário fazer?

Primeiramente, faça o download de todos os arquivos necessários da CodeBase para o seu PC:

  • Expert advisor vHandsTrade.mq4 ao diretório \MetaTrader 4 Work\experts\;
  • o arquivo incluído VisualTestingTools.mq4ao diretório \MetaTrader 4 Work\experts\include\; e
  • 2 indicadores - vTerminal.mq4 e vHistory.mq4 ao diretório \MetaTrader 4 Work\experts\indicators\.

Note que o arquivo VisualTestingTools.mq4 mencionado nos artigos anteriores foi alterado, portanto você deve fazer o download da versão disponível na fonte acima (CodeBase).

Em seguida abra o expert advisor vHandsTrade.mq4 no MetaEditor e o compile (use F5). Uma mensagem na janela "ferramentas" irá confirmar que o EA foi compilado com sucesso:




Agora, quando o programa estiver pronto, nós podemos começar a preparar o modelo do gráfico. Para fazer isso, abra um gráfico, configure-o de acordo com as suas preferências, anexe os indicadores vTerminal.mq4 e vHistory.mq4, e salve o modelo como vHandsTrade.tpl:


div>





Por favor, lembre-se de que deve haver espaço o suficiente na parte direita do gráfico para se trabalhar com o provador de estratégias manuais, pois é lá que os controles estarão localizados. A opção "troca de gráfico" deve estar ativada no momento da criação do modelo:



Agora nós podemos configurar o EA em si.

Configuração do expert advisor


Cada trader possui os seus próprios hábitos de negociação. Para tornar o uso do provador de estratégias manuais o mais confortável possível para você, invista cerca de cinco minutos no ajuste do expert advisor às suas preferências.

Durante as suas negociações, você irá abrir e fechar posições, fazer pedidos pendentes, e mover os níveis de Stop Loss e Take Profit de posições. Você será capaz de escolher o tamanho do lote de posições a serem abertas, o tempo e data de expiração de pedidos pendentes e assim em diante. Cada uma das características ajustáveis corresponde a uma linha do painel de controle:


e a duas linhas no código do expert advisor:



As suas funções são intuitivas:
- RISK (risco) -
% do depósito a ser usado para abrir uma posição;
- LOT (lote) - tamanho do lote a ser usado para abrir uma posição caso RISK = 0;
- STOPLOSS (SL) - Valor de StopLoss para posições a serem abertas, caso a linha StopLoss não se mova durante a abertura;
- TAKEPROFIT (TP) - Valor de TakeProfit para posições a serem abertas, caso a linha TakeProfit não se mova durante a abertura;
- TRAILINGSTOP (TS) - Tamanho do TrailingStop que irá seguir todas as posições;
- EXPIRATION (expiração) - tempo de expiração do pedido pendente em horas.

Você pode alterar os valores de quaisquer características predefinidas diretamente no código. Por exemplo, caso você geralmente abra posições com volumes de 1,0, 2,0, 5,0, 10,0 ou 50,0 lotes, substitua a linha indicando o tamanho do lote por uma linha deste tipo:

    double LOT[] = { 1.0, 2.0, 5.0, 10.0, 50.0 };

Após você tê-lo compilado e reiniciado, você verá o seguinte:


Caso você queira que 5,0 lotes sejam selecionados por padrão durante a inicialização, substitua "int SELECTED_LOT = 1;" por:

int SELECTED_LOT = 3;

Agora o terceiro lote será selecionado por padrão:


Os valores de qualquer outra característica podem ser alterados da mesma forma. A regra é comum: na matriz, entre chaves, deve haver 5 números separados por vírgulas, e o valor das variáveis SELECIONADAS_*** deve variar entre 1 e 5.

Variáveis externas e inicialização


Agora nós podemos inicializar o nosso provador de estratégias manuais. Vamos abrir a janela do provador, selecionar o vHandsTrade na lista do expert advisor, selecionar um par cambial e um período de tempo, e ativar a modelagem em "cada tick", para que o teste seja o mais realista possível.


Antes de pressionar o botão "iniciar", vamos examinar a janela de propriedades do expert advisor. Deste modo, nós iremos completar o ajuste do expert usando variáveis externas:


Na realidade, o expert possui apenas quatro variáveis externas, tendo herdado outras do arquivo incluído VisualTestingTools.mq4. Todas as variáveis devem ser configuradas para o funcionamento normal e conveniente:
- CommentsCount (contagem de comentários) - a quantidade máxima de mensagens a serem exibidas pelo expert;
- SelectedColor (cor selecionada) - cor do valor selecionado de Risk, Lot, SL, TP, etc.;
- ModifyColor (cor de modificação) - cor do ícone de modificação de pedido a ser usado na modificação manual;
- TrailingColor (cor de trailing) - cor do ícone de modificação de pedido a ser usada no TrailingStop;
- TerminalRows (fileiras do terminal) - quantidade máxima de linhas da aba 'terminal' a serem exibidas. Se você configurar TerminalRows = 0, o terminal não será atualizado;
- HistoryRows (fileiras do histórico) - quantidade máxima de linhas da aba 'histórico da conta' a serem exibidas. Se você configurar HistoryRows = 0, o histórico da conta não será atualizado;
- BigText (texto grande) - utilize caso queira aumentar o tamanho da fonte;
- SignalPoints (pontos de sinal) - a distância em pontos, começando a partir dos campos nos quais Stop Loss, Take Profit e Open Price de pedidos pendentes estarão destacados. Por exemplo, para SignalPoints = 10, a cor do campo Stop Loss irá mudar quando o preço estiver a uma distância de 10 pontos do Stop Loss da sua posição;
- ShowCancelled (mostrar cancelados) - utilize caso você queira ver pedidos cancelados no histórico de transações;
- ShowExpired (mostrar expirados)- utilize caso você queira ver pedidos pendentes expirados no histórico de transações;
- MainColor (cor principal) - cor dos cabeçalhos "terminal" e "histórico da conta", e da linha de informações da conta do terminal (balanço, equidade, etc).
- BuyColor (cor de compra) - cor das informações sobre posições de compra;
- BuyOPColor (cor de compra de preço aberto) - cor do campo Open Price na aba "terminal"; essa cor irá substituir a cor principal quando o preço atual se aproximar do nível aberto de Buy Stop e Buy Limit;
- BuySLColor (cor de compra de stop loss) - na aba "terminal": cor que irá substituir a cor principal quando o preço se aproxima do Stop Loss de posições de compra; para a aba "histórico da conta": cor que irá substituir a cor principal caso a posição de compra tiver sido fechada pelo Stop Loss;
- BuyTPColor (cor de compra de take profit) - semelhante ao BuySLColor, mas aplicado ao Take Profit das posiçõesbr> - SellOPColor (cor de venda de preço aberto), SellSLColor (cor de venda de stop loss) e SellTPColor (cor de venda de take profit) - o mesmo, mas em relação às posições de venda.

Deve-se notar que o expert advisor foi criado para ser usado em um gráfico com fundo de tela preto, e é por isso que muitas das cores padrão são claras. Se você usar um fundo de tela branco, configure cores escuras. É o que eu fiz ao testar o expert para este artigo.

Inicialização


E finalmente nós pressionamos o botão "iniciar". A primeira coisa que vemos no gráfico é a caixa de ferramentas já mencionada:



Ela ajuda a abrir posições, fazer pedidos pendentes e escolher os valores de características predefinidas. Nós estudaremos cada uma das ações listadas anteriormente na seção correspondente. No momento, eu gostaria apenas de dizer que a realização de todas as operações envolvendo a caixa de ferramentas é mais segura no modo de pausa. Qualquer ação será interpretada pelo expert como um comando, e não pode ser cancelada. Como o expert foi feito apenas para testes, esse tipo de imprecisão não lhe causará perdas materiais, mas pode prejudicar os resultados obtidos neste teste trabalhoso e longo.

As janelas "terminal" e "histórico de conta" estão abaixo na tabela. Elas permanecem vazias até que nós comecemos a negociar:


Nós podemos fechar e modificar posições usando a janela "terminal", enquanto a janela "histórico da conta" nos fornece informações.

Abertura de posição

Vamos tentar abrir uma posição. Primeiramente, é necessário definir o tamanho do lote e as distâncias até StopLoss e TakeProfit, pois nós não queremos perder tempo com modificações subsequentes.

Como mencionado anteriormente, os valores são configurados através do uso da caixa de ferramentas: Nós devemos selecionar o objeto contendo o valor desejado e movê-lo para qualquer ponto da tela. Qualquer quantidade de objetos pode ser movida simultaneamente, ou seja, se quisermos configurar o tamanho do lote como 1 e o TakeProfit como 100, nós temos que carregar os valores correspondentes até um ponto aleatório:


Agora pressione F12: o próximo tick chega, e o expert advisor verifica os valores selecionados:


Ao abrir uma posição, o expert irá usar o valor selecionado da característica:
- o tamanho do lote é calculado de acordo com a seguinte fórmula:Margem livre * Risk * 0.01 * alavancagem/ tamanho do contrato.Caso Risk=0,o valor de lote selecionado é usado;
-
a distância até o Stop Loss é definida pela linha correspondente (a ser descrita abaixo). Caso a linha de StopLoss não tiver se movido, o valor selecionado de SL será usado;
- a distância até o Take Profit é definida pela linha correspondente. Caso a linha do TakeProfit não tiver se movido, o valor selecionado de TP será usado;
- tempo de expiração (apenas para pedidos pendentes) - o valor selecionado de Exp será usado.

Posições são abertas de forma bastante simples - basta arrastar a llinha correspondente ao gráfico. Há 3 linhas para cada tipo de pedido:<
- Linha OpenPrice (sólida para posições de compra e venda, tracejada para pedidos pendentes) fica no centro, entre as linhas de Stop Loss e Take Profit;
- Linha Stop Loss (de ponto e traço) fica localizada abaixo da linha de OpenPrice para posições de compra e acima dela para posições de venda;
- Linha Take Profit (tracejada) - acima para posições de compra, abaixo para posições de venda.

Pedidos pendentes feitos acima do preço atual (Buy Stop e Sell Limit) estão na fileira superior. Aqueles a serem feitos abaixo do preço (Buy Limit e Sell Stop), na fileira de baixo.

Então, caso você queira abrir uma posição de compra com os valores selecionados de Stop Loss e Take Profit (atualmente, 50 e 100, respectivamente), simplesmente arraste a linha aberta de compra da posição ao gráfico:


Em seguida, pressione F12 e admire os resultados:


Como as posições de compra e venda são abertas apenas a preços atuais, não é preciso colocar a linha exatamente sobre o preço: o expert irá substituir os valores apropriados por si só. Mas é muito importante especificar os preços corretos para pedidos pendentes, ou o pedido não será feito.

Vamos agora configurar o pedido de Sell Stop:
- tamanho do lote - 10% do depósito;
- Open Price e Stop Loss a serem configurados manualmente;
- Take Profit desativado;
- tempo de expiração de 30 minutos (0,5 hora).

Vamos pegar todos os objetos necessários e colocá-los no gráfico:


Pressione F12 e veja:


Tudo parece estar bem.

Fechamento de pedido


O fechamento de posições e a deleção de pedidos pendentes são tarefas muito mais simples. Tudo o que temos que fazer é selecionar o bilhete do pedido a ser fechado e movê-lo:


O resultado não irá demorar: o expert já terá fechado a posição quando o próximo tick chegar:


Pedidos pendentes serão deletados do mesmo modo.

Modificação de Posição


O controle da modificação de pedidos combina elementos da abertura e fechamento de posições: Para selecionar uma característica a ser alterada (Open Price, Stop Loss ou Take Profit), é necessário mover o campo correspondente.

Após a chegada do próximo tick, o expert advisor irá criar a linha modificadora que irá auxiliar na alteração do valor da característica correspondente:


Após termos movido a linha para a sua nova posição, nós pressionamos F12 e vemos o resultado:


Caso você queira deletar permanentemente o Stop Loss ou o Take Profit, simplesmente delete o campo correspondente:




Após a deleção do campo Open Price, é possível fechar a posição (deletar o pedido). Alguns traders podem considerar esse método mais conveniente.

Não há limitações em relação à quantidade de parâmetros a serem modificados simultaneamente: você pode até mesmo modificar todas as posições durante um único tick.

Conclusão

Após a leitura deste artigo, você verá que não é preciso ser um programador para testar a sua estratégia em relação aos dados históricos. Usando o modo de teste manual, você pode negociar manualmente nos dados históricos.

O expert advisor, a biblioteca e os indicadores apresentados no artigo permitem a simulação do terminal de negociação real.

No fim do meu artigo, eu gostaria de lhe lembrar que o expert advisor não foi feito para negociações reais. Não confie o seu dinheiro a um programa de teste.

Para simplificar o controle de pedidos no modo em tempo real, o conjunto online AutoGraf foi criado. Foi este conjunto que produziu algumas ideias e partes de código para o presente artigo (cortesia do seu criador). Muito obrigado ao seu criador pelo apoio!