無料でロボットをダウンロードする方法を見る
Facebook上で私たちを見つけてください。
私たちのファンページに参加してください
興味深いスクリプト?
それではリンクにそれを投稿してください。-
他の人にそれを評価してもらいます
記事を気に入りましたか?MetaTrader 5ターミナルの中でそれを試してみてください。
ビュー:
54
評価:
(36)
パブリッシュ済み:
2025.04.04 10:53
\MQL5\Experts\fxsaber\ \MQL5\Include\fxsaber\MultiTester\
String.mqh (1.29 KB) ビュー
Task.mqh (7.66 KB) ビュー
MTTester.mqh (120.02 KB) ビュー
MQL5フリーランス このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動

複数のシンボルでExpert Advisorを実行する必要がある場合があります。この目的のために、MT5-testerには「Market Watchウィンドウで選択されているすべてのシンボル」というモードがあります。これにより、同じEA設定を異なるシンボルで実行することができます。


しかし、時にはMT5-testerを何度も実行する必要があります。このライブラリを使えば、それが可能になります。


特徴

シンボル、タイムフレーム、インターバルの組み合わせをいくつでも設定できます。また、単体での実行だけでなく、順張りを含む最適化も行うことができます。


シナリオ

  • どのシンボル、インターバル、タイムフレームでTSが良い結果を示すかを調査。
  • TSの自動最適化の見込みを評価するために、連続したインターバルで最適化を実行すること。



必要に応じてMT5-Testerを設定します。

この図は、ある間隔で実際のティックに対してフル・ブルート・フォースで最適化が実行されることを示しています。


必要な最適化のリストを作成します。例えば、このライブラリの配信からExpert Advisorを実行することができます。

図のように設定すると、Market Watch のすべてのシンボルに対して最適化が実行され、各シンボルに対して M1 と M15 のタイムフレームで最適化が実行されます。


結果はこのようになります。


これで、標準的なMT5テスターツールを使用して、最適化の結果を安全に見ることができます。



例1.

まず、非常に単純な例を考えてみましょう。

    #include <fxsaber\MultiTester\MultiTester.mqh> // テスターで複数回実行/最適化。
    
    // この関数はタスクリストの生成を担当する。.
    void SetTesterSettings()
    {
      TesterSettings.Add("AUDCAD"); // テスターで指定された設定で AUDCAD を実行します。
      
      TesterSettings.Add("EURUSD", PERIOD_H1); // Tester で指定した設定で EURUSD H1 を実行。
      
      TesterSettings.Add("GBPUSD", PERIOD_M6, D'2019.07.01', D'2019.09.01'); // 指定された間隔でGBPUSD M6を実行する。
    }

    このEAを実行した結果、ソースコードで読み込まれた設定でテスターが3回呼び出されます。


    例2.

    エキスパートアドバイザーのソースコードを分析してみましょう。

    #include <fxsaber\MultiTester\MultiTester.mqh> // テスターでの複数回の実行/最適化.
    
    sinput bool Period_M1 = false;         // M1のスイッチを入れる
    sinput bool Period_M5 = false;         // M5のスイッチオン
    sinput bool Period_M15 = false;        // M15のスイッチオン
    sinput bool  false; // カスタム文字のみ
    
    // この関数はタスクリストを生成する。
    void SetTesterSettings()
    {
      // マーケット・ウォッチから全シンボルを検索する。
      for (int i = SymbolsTotal(true) - 1; i >= 0; i--)
      {
        const string Name = SymbolName(i, true);
    
        if (!OnlyCustomSymbols || SymbolInfoInteger(Name, SYMBOL_CUSTOM))
        {
          if (Period_M1)
            TesterSettings.Add(Name, PERIOD_M1); // M1が設定されている場合、このTFで各文字を追加する。
    
          if (Period_M5)
            TesterSettings.Add(Name, PERIOD_M5); // M1が設定されている場合、このTFで各文字を追加する。
    
          if (Period_M15)
            TesterSettings.Add(Name, PERIOD_M15); // M15 が設定されている場合、各シンボルをこの TF で追加する。
    
          if (!Period_M1 && !Period_M5 && !Period_M15) // TFが設定されていない場合は、TFでExpert Advisorを実行しましょう。
            TesterSettings.Add(Name);
        }
      }
    }

    つ目の例では、Market Watch でマークされた TF とシンボルに基づいて、タスクのリストを生成します。ここでもソースコードのコメントを見てみよう。


    つまり、必要なのは、この文字列

    #include <fxsaber\MultiTester\MultiTester.mqh> // テスターで複数回実行/最適化。


    を書き、直感的な方法でタスクを生成する関数を1つだけ書けばよい。

    // この関数はタスクリストを生成する。
    void SetTesterSettings()


    機能。

    • DLLの使用許可が必要user32.dllのいくつかのWinAPI関数が呼び出される。そのため、バイパス しない限りマーケットには適さない。
    • 納品物のMTTester.mqh ファイルにはMT5-testerコントロールのメソッドが含まれており、他のプロジェクトで使用するのに便利です。
    • 中断した場所からタスクを再開することが可能です。

    MetaQuotes Ltdによってロシア語から翻訳されました。
    元のコード: https://www.mql5.com/ru/code/26132

    パン・プリズマNo.72 パン・プリズマNo.72

    4度の多項式で移動線を構成する。正弦波とその軸を外挿する。構築された線は、各バーで1つの値を削除し、再描画されない外挿値のスライディング線が構築される。

    MAトレンド2 MAトレンド2

    iMAインジケータ(移動平均、MA)による取引システム。MAトレンドの展開

    コンソール・タイプのチャート・テキスト出力に最適化された表示 コンソール・タイプのチャート・テキスト出力に最適化された表示

    このライブラリを使用すると、テキスト情報を最適な速度でチャートに出力するディスプレイを簡単に作成できます。

    手動ポジション追跡パネル 手動ポジション追跡パネル

    CDialogクラスをベースにしたパネル。現在のシンボルでの作業。ポジショングループの削除、利益確定、ブレークイーブンの設定