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
Visualizações:
112
Avaliação:
(36)
Publicado:
2025.04.04 10:53
\MQL5\Experts\fxsaber\ \MQL5\Include\fxsaber\MultiTester\
Freelance MQL5 Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

Às vezes, você precisa executar o Expert Advisor em vários símbolos. Para isso, há um modo "Todos os símbolos selecionados na janela Market Watch" no testador MT5. Isso permite que você execute as mesmas configurações do EA em diferentes símbolos.


Mas, às vezes, você precisa fazer muitas execuções diferentes do MT5-tester. Essa biblioteca permite que você faça isso.


Recursos.

Você pode definir qualquer número de combinações de símbolos, períodos de tempo e intervalos. E realizar não apenas execuções únicas nelas, mas também otimização, inclusive para frente.


Cenários.

  • Pesquise em quais símbolos e/ou intervalos e/ou períodos de tempo o TS apresenta bons resultados.
  • Realização de otimizações em intervalos consecutivos para avaliar as perspectivas de otimização automática do TS.


Uso.

Configuramos o MT5-Tester conforme nossa necessidade.

A imagem mostra que a otimização será realizada por força bruta total em ticks reais em um determinado intervalo.


Crie uma lista das otimizações necessárias. Por exemplo, você pode executar um Expert Advisor a partir da entrega dessa biblioteca.

Com as configurações mostradas na figura, ele executará a otimização em todos os símbolos do Market Watch e, para cada símbolo, otimizará nos períodos de tempo M1 e M15.


O resultado será o seguinte


E agora você pode ver com segurança os resultados da otimização usando as ferramentas padrão de teste do MT5.


Programação.

Exemplo 1.

Vamos considerar primeiro um exemplo muito simples.

    #include <fxsaber\MultiTester\MultiTester.mqh> // Várias execuções/otimizações no Tester.
    
    // Essa função é responsável por gerar a lista de tarefas.
    void SetTesterSettings()
    {
      TesterSettings.Add("AUDCAD"); // Execute o AUDCAD com as configurações especificadas no Testador.
      
      TesterSettings.Add("EURUSD", PERIOD_H1); // Execute o EURUSD H1 com as configurações especificadas no testador.
      
      TesterSettings.Add("GBPUSD", PERIOD_M6, D'2019.07.01', D'2019.09.01'); // Execute o GBPUSD M6 no intervalo especificado.
    }

    O resultado da execução desse EA será três chamadas do testador com as configurações lidas no código-fonte.


    Exemplo2.

    Vamos analisar o código-fonte do Expert Advisor, cuja demonstração de inicialização foi dada no início.

    #include <fxsaber\MultiTester\MultiTester.mqh> // Várias execuções/otimizações no Tester.
    
    sinput bool Period_M1 = false;         // Ligar M1
    sinput bool Period_M5 = false;         // Ligar o M5
    sinput bool Period_M15 = false;        // Ligar o M15
    sinput bool  false; // Somente caracteres personalizados
    
    // Essa função é responsável por gerar a lista de tarefas.
    void SetTesterSettings()
    {
      // Pesquisar todos os símbolos do Market Watch.
      for (int i = SymbolsTotal(true) - 1; i >= 0; i--)
      {
        const string Name = SymbolName(i, true);
    
        if (!OnlyCustomSymbols || SymbolInfoInteger(Name, SYMBOL_CUSTOM))
        {
          if (Period_M1)
            TesterSettings.Add(Name, PERIOD_M1); // Se M1 estiver definido, adicione cada caractere com esse TF.
    
          if (Period_M5)
            TesterSettings.Add(Name, PERIOD_M5); // Se M1 estiver definido, adicione cada caractere com esse TF.
    
          if (Period_M15)
            TesterSettings.Add(Name, PERIOD_M15); // Se M15 estiver definido, adicione cada símbolo com esse TF.
    
          if (!Period_M1 && !Period_M5 && !Period_M15) // Se nenhum TF for definido, vamos executar o Expert Advisor no TF.
            TesterSettings.Add(Name);
        }
      }
    }

    O segundo exemplo gera uma lista de tarefas com base nos TFs e símbolos marcados no Market Watch. Novamente, vamos dar uma olhada nos comentários no código-fonte.


    Portanto, tudo o que precisamos fazer é escrever essa string

    #include <fxsaber\MultiTester\MultiTester.mqh> // Várias execuções/otimizações no Tester.


    e escrever apenas uma função que gere tarefas de forma intuitiva.

    // Essa função é responsável por gerar a lista de tarefas.
    void SetTesterSettings()


    Recursos.

    • Requer permissão para usar uma DLL. Várias funções WinAPI do user32.dll são chamadas. Portanto, não é adequado para o Market, a menos que seja contornado.
    • O arquivo MTTester.mqh na entrega contém métodos de controle do MT5-tester, que são convenientes para uso em outros projetos.
    • É possível retomar uma tarefa de um ponto interrompido.

    Traduzido do russo pela MetaQuotes Ltd.
    Publicação original: https://www.mql5.com/ru/code/26132

    Pan PrizMA Sem alavancagem 72 Pan PrizMA Sem alavancagem 72

    Construa uma linha móvel com um polinômio de 4 graus. Extrapola o senoidal e seu axial. As linhas construídas removem um valor em cada barra e é construída uma linha deslizante de valores extrapolados que não é redesenhada.

    MA Tendência 2 MA Tendência 2

    Sistema de negociação pelo indicador iMA (Média Móvel, MA). Desenvolvimento da tendência MA.

    Tela otimizada para saída de texto de gráfico do tipo console Tela otimizada para saída de texto de gráfico do tipo console

    Essa biblioteca permite que você crie telas para enviar facilmente informações de texto para o gráfico na taxa ideal

    Painel de rastreamento de posição manual Painel de rastreamento de posição manual

    Painel baseado na classe CDialog. Trabalhar com o símbolo atual. Exclusão, definição de Take Profit, definição de Breakeven em um grupo de posições