Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Telegram!
Participe de nossa página de fãs
Script interessante?
Coloque um link para ele, e permita que outras pessoas também o avaliem
Você gostou do script?
Avalie seu funcionamento no terminal MetaTrader 5
Bibliotecas

Modo que registra gráficos de equilíbrio e patrimônio e calcula critérios de otimização adicionais - biblioteca para MetaTrader 5

Visualizações:
26
Avaliação:
(5)
Publicado:
Freelance MQL5 Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

Decidicompartilhar o código de um grandeprojeto projetado em uma biblioteca separada.

Se você tiver acesso ao código do Expert Advisor, poderá salvar gráficos de saldo e patrimônio e calcular critérios de otimização adicionais adicionando código adicional dessa biblioteca.

Baixe o arquivo Advanced Optimization Report Saver.mqh do link anexo e salve-o na pasta \MQL5\Include\ do terminal

Adicione o código que conecta o arquivo baixado: (você pode adicioná-lo abaixo da última linha do código do Expert Advisor ou em qualquer outro lugar)

#include <Advanced Optimization Report Saver.mqh>

Em seguida, você precisa adicionar chamadas às funções exportadas para as funções existentes em seu Expert Advisor: (se não houver funções, adicione-as)

void OnTick(){
   //... seu código
   
   //Salvar gráficos de saldo e patrimônio líquido
   save_OnTick(TimeCurrent(), AccountInfoDouble(ACCOUNT_BALANCE), AccountInfoDouble(ACCOUNT_EQUITY));
}

void OnTesterInit()  {
   //... seu código

   save_OnTesterInit();//imprima no gráfico "Não feche esta janela até que a otimização esteja concluída!"
}
void OnTesterDeinit(){
   //... seu código

    save_OnTesterDeinit();// obter quadros
}

double OnTester(){
   //... seu código

   //salvar quaisquer valores personalizados:
   double AvgPips=0;
   save_Add( AvgPips, 2, "Custom 1", true);//valor, dígitos, nome, sort_min_to_max
   save_Add( TesterStatistics( STAT_PROFIT ), 2, "Custom 2");
   double Custom = 0;//seu condicionamento físico personalizado
   saveCharts(Custom);/guardar o patrimônio final, todos os negócios...
   return Custom;
}

As funções save_Add permitem que você adicione seus próprios critérios que deseja incluir no relatório :

   save_Add( AvgPips, 2, "Custom 1", true);//valor, dígitos, nome, sort_min_to_max
   save_Add( TesterStatistics( STAT_PROFIT ), 2, "Custom 2");


Por exemplo, vamos adicionar esse código ao Expert Advisor Moving Average da pasta Examples (...\MQL5\Experts\Examples\Moving Average\MovingAverage.mq5). Primeiro, copie o Expert Advisor original e nomeie-o como Moving Average Charts.mq5. Agora, adicione o código das instruções acima a ele.

As alterações estão apenas no final do código, começando na função OnTick() após a linha CheckForOpen();:

void OnTick(void)
  {
//---
   if(SelectPosition())
      CheckForClose();
   else
      CheckForOpen();
   //Salvar gráficos de saldo e patrimônio líquido
   save_OnTick (TimeCurrent(), AccountInfoDouble( ACCOUNT_BALANCE), AccountInfoDouble( ACCOUNT_EQUITY));
  }

void OnTesterInit()  {
   //... seu código

   save_OnTesterInit();//imprima no gráfico "Não feche esta janela até que a otimização esteja concluída!"
}
void OnTesterDeinit(){
   //... seu código

    save_OnTesterDeinit();// obter quadros
}

double OnTester(){
   //... seu código

   //salvar quaisquer valores personalizados:
   double AvgPips=0;
   save_Add( AvgPips, 2, "Custom 1", true);//valor, dígitos, nome, sort_min_to_max
   save_Add( TesterStatistics( STAT_PROFIT ), 2, "Custom 2");
   double Custom = 0;//seu condicionamento físico personalizado
   saveCharts(Custom);/guardar o patrimônio final, todos os negócios...
   return Custom;
}

#include <Advanced Optimization Report Saver.mqh>

Como você pode ver, é bastante simples e leva apenas alguns minutos.

Depois disso, você pode executar a otimização:

A última captura de tela mostra que o código conectado adicionou 2 parâmetros:

  1. Salvar estatísticas - ativa ou desativa a coleta de estatísticas
  2. Pixels em gráficos de equilíbrio e patrimônio líquido - especifica o número de pixels na largura dos minigráficos.

Quando a otimização estiver concluída, você poderá criar um relatório (usando um programa que analisa os quadros salvos) e ver o seguinte:

100 linhas com MovingPeriod


10 linhas com MovingShift



Se houver mais de 20 linhas, serão exibidas apenas 3 linhas horizontais de valores médios: 3 na parte superior e 3 na parte inferior.

100 linhas são difíceis de perceber, portanto, é necessário reduzir seu número.
Você pode usar variáveis de entrada não com a mesma etapa, mas com uma escala por meio de um enumerador (enum), por exemplo: 1,2,3,5,7,10,15,20,30,50,70,100 - haverá apenas 12 linhas em vez de 100.

enum nums1 {__0=0, __1=1, __2=2, __3=3, __5=5, __7=7, __10=10, __15=15, __20=20, __30=30, __50=50, __70=70, __100=100, __150=150, __200=200, __300=300, __500=500};
input nums1 MovingPeriod = 10; // Período de média móvel
Você pode fazer o download da versão enum do Expert Advisor nos arquivos anexados.

Em vez de 1000 passagens de otimização, haverá 120, e o tempo de cálculo será ~8 vezes mais rápido e o tamanho do arquivo será ~8 vezes menor.
O resultado é mais visível:


O resultado com MovingPeriod = 15 se destaca imediatamente, com a linha média mais alta e a máxima mais alta.
No entanto, como costuma acontecer, os melhores resultados no backtest não são os melhores no teste avançado.
Seu programa que analisa os quadros salvos pode exibir gráficos como este:

E critérios adicionais como este:

Se você tiver um código para outros critérios interessantes, poderá sugeri-los para serem adicionados à biblioteca.


Atualizações:

  1. 2026-02-02: Adicionado suporte a caracteres UTF em nomes de critérios personalizados.

Traduzido do inglês pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/en/code/68706

EA Duplicate Detector EA Duplicate Detector

Permitir que o EA determine se há EAs duplicados no gráfico com base em condições.

Project Template Generator Project Template Generator

Esse script serve como um exemplo prático de como os desenvolvedores podem trabalhar programaticamente com arquivos usando MQL5. Um de seus principais objetivos é demonstrar a organização eficaz de arquivos de projeto, o que é essencial para os desenvolvedores que trabalham em sistemas de grande escala ou que desejam criar projetos portáteis e independentes. O conceito pode ser expandido e refinado com ideias adicionais para dar suporte a fluxos de trabalho de desenvolvimento mais avançados.

Binary tradng based on candle colors Binary tradng based on candle colors

Uma estratégia simples de negociação binária que conta as cores das velas.

Accelerator Oscillator (AC) Accelerator Oscillator (AC)

O Indicador Acceleration/Deceleration (Aceleração/Desaceleração ou AC) mede a aceleração e a desaceleração da força motriz atual do mercado.