Librerie: MultiTester - pagina 33

 
Salve, molto utile, avete anche un tester di portafoglio, dove è possibile aggiungere i report in un unico strumento, anch'esso molto utile, ma ho un'idea - non state pensando di combinare questi due strumenti, e fare un ottimizzatore di portafoglio automatico? In modo che i risultati dell'ottimizzazione vengano valutati immediatamente come parte del portafoglio con gli stessi risultati, in modo che non ci sia correlazione con i drawdown e così via, con la funzione di obiettivo dell'intero portafoglio in base al fattore di Sharpe o di recupero, e filtri aggiuntivi, ad esempio in base al numero di operazioni. Si ridurrebbero di molto il lavoro manuale e il tempo, visto che ora i risultati dell'ottimizzazione devono essere combinati manualmente in un portafoglio, e quando ci sono centinaia di portafogli....
 
Come ottenere i parametri di input di una specifica esecuzione da questa libreria? TESTERCACHE Cache; input di Cache[i]
 

Ciao!

Lo scorso dicembre ho utilizzato la vostra libreria e ho eseguito l'ottimizzazione su oltre 100 caratteri personalizzati.

Oggi ho provato ad eseguirla di nuovo, ma l'unico errore nel log del tester è "l'ottimizzazione non può essere avviata". Ho aggiornato la libreria.

Ho provato a eseguire su simboli diversi, ho provato a eseguire il vostro MultiTester_example, ho provato diverse build di Metatrader 5, diverse impostazioni di ottimizzazione, ho provato a eseguire su un normale Expert Advisor a media mobile, ma ancora si verifica questo errore, non ho trovato nessun log più dettagliato. Potreste dirmi se qualcuno ha avuto un problema simile? Come si può risolvere?

 
Jekamajor #:

l'unico errore nel log del tester è "l'ottimizzazione non può essere avviata".

Qual è la risposta all'avvio manuale dell'ottimizzazione?
 
fxsaber #:
Qual è la risposta all'esecuzione manuale dell'ottimizzazione?


L'ottimizzazione manuale viene avviata, eseguita e terminata senza errori. Schermata dei log. In alto il lancio dell'ottimizzazione con la semplice media mobile, in basso il lancio con gli stessi parametri ma attraverso la libreria.

 
Jekamajor #:

di seguito è riportato il lancio con gli stessi parametri ma attraverso la libreria.

Perché questo Expert Advisor viene eseguito nel Tester stesso? Viene lanciato sul grafico del Terminale, non sul Tester.

 
fxsaber #:

Perché questo Expert Advisor viene eseguito nel Tester stesso? Viene lanciato sul grafico del Terminale, non sul Tester.

Sì, infatti! Ho dimenticato come lanciarlo da un anno. Trascinandolo sul grafico si avvia e funziona. Grazie mille per l'aiuto!
 
Si prega di pubblicare un esempio di come scrivere il codice per più ottimizzazioni sequenziali che accettano parametri di input diversi.
 
Soroush Kheradmand #:
Si prega di pubblicare un esempio di come scrivere il codice per più ottimizzazioni sequenziali che accettano parametri di input diversi.

#include <fxsaber\MultiTester\MTTester.mqh>    // https://www.mql5.com/it/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]);
}

Le impostazioni del tester vengono salvate tramite CTRL+C/V. È possibile salvarle in file separati e poi riempire l'array Settings[] nel sorgente di cui sopra con i dati di questi file.

 

Esiste un modo semplice per trasformare i dati in un array? Devo aggiungere 20 file di set, ciascuno di 108 righe, quindi 2160 righe da aggiungere " " + manualmente per renderli un array?

Caricare personalmente i file di set sarebbe l'opzione che preferirei, "D:/\MT5Tester2\MQL5\Profiles\Tester\MTester\MT5 v1.14 bat XU BB+ENV+RSI.set" ecc. ecc. ma sono un comune mortale e non so come codificare nessuna di queste cose. Il vostro EA è molto bello, ma cavolo :D

#include <fxsaber\MultiTester\MTTester.mqh>    // https://www.mql5.com/it/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

                        // set successivo
                        [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
Множественные прогоны/оптимизации в Тестере.