Библиотеки: MultiTester - страница 34

 

Hi, @Stefan Marjoram

You can add this draft function for reading settings from file to string array.

#define ARRAY_APPEND(array, value)                  \
   ArrayResize(array, ArraySize(array) + 1, 128);   \
   array[ArraySize(array) - 1] = value;

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void LoadSettings(string filename, string &settings[]) {
   int f = FileOpen(filename, FILE_READ | FILE_TXT | FILE_ANSI);

   if(f) {
      string setting = "";
      string s;
      while(!FileIsEnding(f)) {
         s = FileReadString(f);
         StringTrimRight(s);
         StringTrimLeft(s);
         if(s == "[Tester]") {
            if(setting != "") {
               ARRAY_APPEND(settings, setting);
               setting = "";
            }

         }
         if(s != "" && StringSubstr(s, 0, 2) != "//") {
            setting += s + "\n";            
         }
      }

      if(setting != "") {
         ARRAY_APPEND(settings, setting);
      }
      FileClose(f);
   } else {
      PrintFormat("Error open file: %s", filename);
   }
}

#undef ARRAY_APPEND

And use it in OnInit() like this

int OnInit() {
   string Settings[];

   LoadSettings("MySettings.ini", Settings);

   /* For check reading
   for(int i = 0; i < ArraySize(Settings); i++) {
      PrintFormat("------------ Settings[%d]: --------------", i);
      Print(Settings[i]);
   }
   */

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

   return INIT_SUCCEEDED;
}
 
Stefan Marjoram #:

I need to add 20 set files

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Новая версия платформы MetaTrader 5 build 3550: улучшения и исправления

fxsaber, 2023.05.23 00:58

Validate умеет запускать последовательно много ini-задайний

  1. В папку Files\YourName поместить нужные ini-файлы.
  2. В Терминале запустить Validate, где указать имя папки - YourName.
Будут последовательно запущены ini-задания.

Создайте 20 нужных ini-файлов и сделайте, как выше написано.

 

баг

На ровном месте сыпет алертами.

В чем может быть причина ?

 
EgorKim #:

На ровном месте сыпет алертами.

В чем может быть причина ?

Кнопка Start руками нажимается?

 
fxsaber #:
Кнопка Start руками нажимается?

Да. 

Код этот только использую

   if(MTTESTER::IsReady())
     {
      Sleep(200);
     }

   if(MTTESTER::ClickStart())
     {
      Sleep(200);
     }
 
EgorKim #:

Код этот только использую

Обновил.

 
MTTester обновлен.
 
fxsaber #:
MTTester обновлен.

Снова.

 
MTTester.mqh обновлен.
 
EgorKim #:

На ровном месте сыпет алертами.

Благодарю за помощь в тестировании! Обновленный MTTester.mqh выложил.

Причина обращения: