Bibliotecas: MultiTester - página 33

 
Olá, muito útil, você também tem um testador de portfólio, onde pode adicionar relatórios em um só, também muito útil, mas tenho uma ideia - você não está planejando combinar essas duas ferramentas e fazer um otimizador de portfólio automático? De modo que os resultados da otimização sejam avaliados imediatamente como parte do portfólio com os mesmos resultados - de modo que não haja correlação nos rebaixamentos e assim por diante, com a função de meta de todo o portfólio por Sharpe ou fator de recuperação, e filtros adicionais, pelo número de negociações, por exemplo. Isso reduziria muito o trabalho manual e o tempo, pois agora os resultados da otimização precisam ser combinados em um portfólio manualmente, e quando há centenas deles....
 
Como obter os parâmetros de entrada de uma execução específica dessa biblioteca? TESTERCACHE Cache; Cache[i] inputs
 

Olá!

Em dezembro passado, executei sua biblioteca e executei a otimização em mais de 100 caracteres personalizados.

Hoje tentei executá-la novamente, mas o único erro no registro do testador é "a otimização não pode ser iniciada". Atualizei a biblioteca.

Tentei executar em símbolos diferentes, tentei executar seu MultiTester_example, tentei diferentes compilações do Metatrader 5, diferentes configurações de otimização, tentei executar em um Expert Advisor de média móvel regular, mas ainda assim esse erro ocorre, não encontrei nenhum registro mais detalhado. Você poderia me dizer se alguém já teve algo parecido com isso? Como isso pode ser corrigido?

 
Jekamajor #:

o único erro no registro do testador é "a otimização não pode ser iniciada".

Qual é a resposta ao iniciar a otimização manualmente?
 
fxsaber #:
Qual é a resposta à execução manual da otimização?


A otimização manual é iniciada, executada e encerrada sem erros. Captura de tela dos registros. Na parte superior está o lançamento da otimização por meio da média móvel simples; abaixo está o lançamento com os mesmos parâmetros, mas por meio da biblioteca.

 
Jekamajor #:

Abaixo está o lançamento com os mesmos parâmetros, mas por meio da biblioteca.

Por que esse Expert Advisor é executado no próprio testador? Ele é lançado no gráfico do Terminal, não no Testador.

 
fxsaber #:

Por que esse Expert Advisor é executado no próprio Tester? Ele é lançado no gráfico do Terminal, não no Testador.

Sim, de fato! Eu me esqueci de como iniciá-lo por um ano. Ao arrastá-lo para o gráfico, ele inicia e funciona. Muito obrigado por sua ajuda!
 
Publique um exemplo de como escrever um código para várias otimizações sequenciais que usam diferentes parâmetros de entrada.
 
Soroush Kheradmand #:
Publique um exemplo de como escrever um código para várias otimizações sequenciais que utilizam diferentes parâmetros de entrada.

#include <fxsaber\MultiTester\MTTester.mqh>    // https://www.mql5.com/pt/code/26132

#define _CS(A) ((!IsStopped()) && (A))
#define  PAUSE 200

void Run( const string Settings )
{
  while (_CS(!MTTESTER::IsReady()))
    Sleep(PAUSE);

  MTTESTER::CloseNotChart();
    
  if (_CS(MTTESTER::SetSettings2(Settings)))
    MTTESTER::ClickStart(false);

  while (_CS(!MTTESTER::IsReady()))
    Sleep(PAUSE);
}

void OnStart()
{
  string Settings[] = {"[Tester]\n" +
                       "Expert=Input_String_Example_Alternative.ex5\n" +
                       "Symbol=EURUSD\n" +
                       "Period=M1\n" +
                       "Optimization=2\n" +
                       "Model=4\n" +
                       "FromDate=2023.01.01\n" +
                       "ToDate=2024.01.01\n" +
                       "ForwardMode=0\n" +
                       "Deposit=1000000000\n" +
                       "Currency=USD\n" +
                       "ProfitInPips=1\n" +
                       "Leverage=100\n" +
                       "ExecutionMode=0\n" +
                       "OptimizationCriterion=6\n" +
                       "[TesterInputs]\n" +
                       "inAmount=1||1||1||10||N\n" +
                       "inCount=2||2||1||20||N\n" +
                       "inPeriod=3||3||1||30||N\n" +
                       "inKoef=4.56||4.56||0.456000||45.600000||N\n" +
                       "inLog=7.89||7.89||0.789000||78.900000||N\n" +
                       "inFlag=true||false||0||true||N"
                      };

  for (uint i = ArraySize(Settings); (bool)i--;)
    Run(Settings[i]);
}

As configurações do testador são salvas por meio de CTRL+C/V. Você pode salvá-las em arquivos separados e, em seguida, preencher a matriz Settings[] na fonte acima com os dados delas.

 

Existe alguma maneira fácil de transformar os dados em uma matriz? Preciso adicionar 20 arquivos de conjunto, cada um com 108 linhas, portanto, 2160 linhas para adicionar " " + manualmente para transformá-los em uma matriz?

Carregar os arquivos de conjunto pessoalmente seria minha opção preferida: "D:/\MT5Tester2\MQL5\Profiles\Tester\MTester\MT5 v1.14 bat XU BB+ENV+RSI.set" etc. etc. etc., mas sou um mero mortal e não sei codificar nada disso.

#include <fxsaber\MultiTester\MTTester.mqh>    // https://www.mql5.com/pt/code/26132

#define _CS(A) ((!IsStopped()) && (A))
#define  PAUSE 200

void Run( const string Settings )
{
  while (_CS(!MTTESTER::IsReady()))
    Sleep(PAUSE);

  MTTESTER::CloseNotChart();
    
  if (_CS(MTTESTER::SetSettings2(Settings)))
    MTTESTER::ClickStart(false);

  while (_CS(!MTTESTER::IsReady()))
    Sleep(PAUSE);
}

void OnStart()
{
  string Settings[] = {[Tester]
                        Expert=MT5 White Rabbit v1.14.ex5
                        Symbol=XAUUSD
                        Period=M5
                        Optimization=2
                        Model=4
                        FromDate=2023.02.01
                        ToDate=2024.10.01
                        ForwardMode=0
                        Deposit=20000
                        Currency=USD
                        ProfitInPips=0
                        Leverage=100
                        ExecutionMode=200
                        OptimizationCriterion=6
                        [TesterInputs]
                        OnTester=------------ On Tester ------------
                        MinTrades=60||120||1||1200||N
                        MaxEquityDrawdown=3.0||20.0||2.000000||200.000000||N
                        CustomMax=------------ Custom Max ------------
                        EA_Expires=2024.12.25
                        Enable_Buy=true||false||0||true||N
                        Enable_Sell=true||false||0||true||N
                        TRADE_TIMES=------------ TIME SETTINGS ------------
                        StartTime_1=1||1||3||10||N
                        Stop_Time_1=9||9||4||21||Y
                        Monday=true||false||0||true||N
                        Tuesday=true||false||0||true||N
                        Wednesday=true||false||0||true||N
                        Thursday=true||false||0||true||N
                        Friday=false||false||0||true||Y
                        Weekend=false||false||0||true||N

                        // próximo conjunto
                        [Tester]
                        Expert=MT5 White Rabbit v1.14.ex5
                        Symbol=XAUUSD
                        Period=M5
                        Optimization=2
                        Model=4
                        FromDate=2023.02.01
                        ToDate=2024.10.01
                        ForwardMode=0
                        Deposit=20000
                        Currency=USD
                        ProfitInPips=0
                        Leverage=100
                        ExecutionMode=200
                        OptimizationCriterion=6
                        [TesterInputs]
                        OnTester=------------ On Tester ------------
                        MinTrades=60||120||1||1200||N
                        MaxEquityDrawdown=3||20.0||2.000000||200.000000||N
                        CustomMax=------------ Custom Max ------------
MultiTester
MultiTester
  • www.mql5.com
Множественные прогоны/оптимизации в Тестере.