Librerie: MultiTester - pagina 11

 

A volte è necessario pulire la cartella Tester. Ad esempio, un file opt di dimensioni modeste è di ~ 2Mb. Se vengono eseguite 10K ottimizzazioni, la dimensione è già di 20 Gb. 10K caratteri - allo stesso modo.

Può capitare che una cartella sia troppo gonfia.

 

Ho provato a scrivere queste righe nel mio EA e nell'esempio"Moving Average", il mio scopo è quello di ottimizzare tutti i miei simboli di market watch ma ho ottenuto la seguente risposta, apprezzerei un po' di aiuto in questo senso.


#include <fxsaber\MultiTester\MultiTester.mqh>

e

void SetTesterSettings()


 
herrcrowley:

Ho provato a scrivere queste righe nel mio EA e nell'esempio "Moving Average", il mio scopo è quello di ottimizzare tutti i miei simboli di market watch ma ho ottenuto la seguente risposta, apprezzerei un po' di aiuto.

Configurate il vostro EA nel Tester. Quindi eseguire MultiTester_Example nel Terminale.

 

Ciao di nuovo,

grazie mille per il tuo consiglio, ora quando faccio il test con "simboli doganali" su true, multitester non funziona e su false testa solo il simbolo effettivo da testare.


 
herrcrowley:

Grazie mille per il tuo consiglio, ora quando faccio il test con "simboli doganali" su true, multitester non funziona e su false testa solo il simbolo effettivo da testare.

Purtroppo la barriera linguistica o altri ostacoli non mi permettono di capire cosa c'è che non va.

 

Per qualche ragione sconosciuta, più esecuzioni di test scaricano lo script. Non succede sempre, a volte prima, a volte dopo. Ad esempio, è successo all'iterazione 413. IsStopped è impostato su true e lo script si scarica, mandando all'aria l'intero lavoro nel bel mezzo del caso. Non ci sono messaggi di errore. I messaggi di debug mostrano che ciò avviene dopo Sleep(100) dopo SendMessageW(Handle, WM_COMMAND, ID_EDIT_PASTE, 0);

nella chiamata al comando statico bool SetSettings( const string Str )

Di seguito è riportato il set minimo con cui giocare. Ma sospetto che sia MetaTrader, dopo tutto. Build 2245, ma è lo stesso anche nell'ultima build 2253. Anche la build 2190 lo presenta, forse anche prima.

bool CloseAllOtherCharts()
{
  bool Res=false;
  for (long Chart = ::ChartFirst(); Chart != -1; Chart = ::ChartNext(Chart))
  {
    if(Chart != ::ChartID())
      Res |= ::ChartClose(Chart);
  }
  return Res;
}

void StartTest(string SymbName)
{
    string TesterInput = "[Tester]"+
                         "\nExpert=ChanRet"+
                         "\nSymbol="+SymbName+
                         "\nPeriod=M1"+
                         "\nOptimization=0"+
                         "\nModel=4"+
                         "\nFromDate=01.09.2019"+
                         "\nToDate=01.12.2019"+
                         "\nForwardMode=0"+
                         "\nDeposit=10000000"+
                         "\nCurrency=RUR"+
                         "\nProfitInPips=1"+
                         "\nLeverage=100"+
                         "\nExecutionMode=0"+
                         "\nOptimizationCriterion=6"+
                         "\nVisual=0";
    MTTESTER::SetSettings2(TesterInput);
    MTTESTER::ClickStart();
    while(!MTTESTER::IsReady() && !IsStopped())
      Sleep(100);
    CloseAllOtherCharts();
}

void OnStart()
{
  for(int i=0;i!=1000 && !IsStopped();++i)
  {
    StartTest("AFLT-12.19");
    StartTest("ALRS-12.19");
    Print((string)i);
  }
}
Документация по MQL5: Константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки компиляции
Документация по MQL5: Константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки компиляции
  • www.mql5.com
Импортируемая функция не может иметь такого параметра (нельзя передавать указатель, класс или структуру, содержащую динамический массив, указатель, класс и т.д.) Недопустимый возвращаемый тип. Например, такая ошибка будет...
 
traveller00:

Di seguito è riportato il set minimo per la riproduzione.

Nessuna riproduzione. Tutte le 1000 operazioni funzionano. Ma è necessario che sia selezionata la casella di controllo per l'apertura automatica dei grafici di backtest, poiché si chiudono i grafici tramite codice. Io ho disattivato questa opzione. Forse è questo il motivo.

 
fxsaber:

l'apertura automatica del grafico di backtest è spuntata.

Vi farò una domanda più banale. Dove si trova questa casella di spunta? Non sono riuscito a trovarla in MT5.

 
traveller00:

Questa sarà una domanda più debole. Dove si trova questa casella di spunta? Non sono riuscito a trovarla nella MT5.

 
traveller00:

Lo script dovrebbe sospendere il Terminale se si cerca di rimuoverlo.