ライブラリ: マルチテスター - ページ 34

 

こんにちは、@Stefan Marjoramです

ファイルから文字列配列に設定を読み込むために、このドラフト関数を追加することができます。

#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

そしてOnInit()で次のように使います。

int OnInit() {
   string Settings[];

   LoadSettings("MySettings.ini", Settings);

   /* 読み取りチェック用
 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 #:

セットファイルを20個追加する必要がある

取引、自動取引システム、取引戦略のテストに関するフォーラム

MetaTrader 5ビルド3550の新バージョン:改善と修正

fxsaber, 2023.05.23 00:58

多くのini注文を連続して実行できるようになりました

  1. 必要な ini ファイルをFilesYourName フォルダに置きます。
  2. ターミナルでValidateを起動し、フォルダ名YourNameを 指定する。
iniタスクが順次起動する。

必要なiniファイルを20個作成し、上記のように実行する。

 

バグ

何もないところでアレルギー発作が起きる。

何が原因でしょうか?

 
EgorKim #:

人里離れた場所にあるアレルギーだ。

原因は何だろう?

スタートボタンを手で押していませんか?

 
fxsaber #:
スタートボタンは手で操作するものですか?

はい。

私はこのコードしか使いません

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

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

私はこのコードしか使わない

更新

 
MTTesterが更新されました。
 
fxsaber #:
MTTesterがアップデートされた。

再び。

 
MTTester.mqhを更新しました。
 
EgorKim #:

人里離れた場所にあるアレルギーだ。

テストご協力ありがとうございました!MTTester.mqhを更新しました。