Bibliothèque: MultiTester - page 11

 

Il est parfois nécessaire de nettoyer le dossier Tester. Par exemple, la taille d'un fichier opt modeste est d'environ 2 Mo. Si 10K optimisations sont effectuées, cela représente déjà 20 Go. 10K caractères - de même.

Vous pouvez rencontrer un dossier trop volumineux.

 

J'ai essayé d'écrire ces lignes dans mon EA et l'exemple comme"Moving Average", mon but est d'optimiser tous mes symboles de surveillance du marché mais j'ai obtenu la réponse suivante, j'apprécierais de l'aide à ce sujet.


#include <fxsaber\MultiTester\MultiTester.mqh>

et

void SetTesterSettings()


 
herrcrowley:

J'ai essayé d'écrire ces lignes dans mon EA et mon exemple en tant que "Moving Average", mon but est d'optimiser tous mes symboles de surveillance du marché mais j'ai obtenu la réponse suivante, j'apprécierais de l'aide à ce sujet.

Configurez votre EA dans le Tester. Puis lancez MultiTester_Example dans le Terminal.

 

Encore une fois, bonjour,

Merci beaucoup pour vos conseils, maintenant quand je teste avec "customs symbols" sur true, multitester ne fonctionne pas et sur false ne teste que le symbole actuel à tester.


 
herrcrowley:

Merci beaucoup pour vos conseils, maintenant quand je teste avec "customs symbols" sur true, multitester ne fonctionne pas et sur false ne teste que le symbole actuel à tester.

Malheureusement, la barrière de la langue ou un autre obstacle ne me permet pas de comprendre ce qui ne va pas.

 

Pour une raison inconnue, plusieurs tests déchargent le script. Cela ne se produit pas toujours, parfois plus tôt, parfois plus tard. Cela vient de se produire à l'itération 413, par exemple. IsStopped est défini à true et le script se décharge, ce qui fait échouer tout le travail au milieu de l'affaire. Il n'y a pas de message d'erreur. Les messages de débogage montrent que cela se produit après Sleep(100) après SendMessageW(Handle, WM_COMMAND, ID_EDIT_PASTE, 0) ;

dans l'appel de static bool SetSettings( const string Str )

Vous trouverez ci-dessous le jeu minimum avec lequel vous pouvez jouer. Mais je soupçonne qu'il s'agit de MetaTrader après tout. Build 2245, mais c'est la même chose sur le dernier build 2253. La build 2190 l'a aussi, peut-être même avant.

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:

Le minimum requis pour la lecture est indiqué ci-dessous.

Pas de lecture. Les 1000 tâches fonctionnent. Mais vous devez avoir coché la case d'ouverture automatique des graphiques de backtest, puisque vous fermez les graphiques par code. J'ai désactivé cette option. C'est peut-être la raison.

 
fxsaber:

l'ouverture automatique du graphique de backtest est cochée.

Je vais vous poser une question plus compliquée. Où se trouve cette case à cocher ? Je ne l'ai pas trouvée dans MT5.

 
traveller00:

Cette question va être un peu plus longue. Où se trouve cette case à cocher ? Je ne l'ai pas trouvée dans MT5.

 
traveller00:

Votre script doit suspendre le terminal si vous essayez de le supprimer.