Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Twitter!
und werden Sie Mitglied unserer Fangruppe
Interessantes Skript?
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Hat Ihnen das Skript gefallen?
Bewerten Sie es im Terminal MetaTrader 5
Ansichten:
51
Rating:
(36)
Veröffentlicht:
2025.04.04 10:53
\MQL5\Experts\fxsaber\ \MQL5\Include\fxsaber\MultiTester\
Settings.mqh (1.35 KB) ansehen
String.mqh (1.29 KB) ansehen
Task.mqh (7.66 KB) ansehen
MTTester.mqh (120.02 KB) ansehen
MQL5 Freelance Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Es kann vorkommen, dass Sie den Expert Advisor auf mehrere Symbole anwenden müssen. Zu diesem Zweck gibt es im MT5-Tester einen Modus "Alle im Market Watch-Fenster ausgewählten Symbole". Damit können Sie die gleichen EA-Einstellungen auf verschiedenen Symbolen ausführen.


Aber manchmal müssen Sie viele verschiedene Durchläufe des MT5-Testers machen. Mit dieser Bibliothek können Sie das tun.


Merkmale.

Sie können eine beliebige Anzahl von Kombinationen von Symbolen, Zeitrahmen und Intervallen einstellen. Und Sie können nicht nur einzelne Läufe durchführen, sondern auch Optimierungen, einschließlich Forward.


Szenarien.

  • Recherchieren Sie, auf welchen Symbolen und/oder Intervallen und/oder Zeitrahmen der TS gute Ergebnisse zeigt.
  • Durchführung von Optimierungen in aufeinanderfolgenden Intervallen, um die Auto-Optimierungsmöglichkeiten des TS zu bewerten.


Verwendung.

Wir konfigurieren MT5-Tester so, wie wir es brauchen.

Das Bild zeigt, dass die Optimierung durch volle Brute-Force-Methode auf realen Ticks in einem bestimmten Intervall durchgeführt wird.


Erstellen Sie eine Liste der gewünschten Optimierungen. Sie können zum Beispiel einen Expert Advisor aus dieser Bibliothek ausführen.

Mit den in der Abbildung gezeigten Einstellungen wird die Optimierung für alle Symbole aus dem Market Watch durchgeführt, und für jedes Symbol wird eine Optimierung für die Zeitrahmen M1 und M15 durchgeführt.


Das Ergebnis sieht wie folgt aus


Und jetzt können Sie die Ergebnisse der Optimierung mit den Standard-Tools des MT5-Testers sicher sehen.


Programmierung.

Beispiel 1.

Lassen Sie uns zunächst ein sehr einfaches Beispiel betrachten.

    #include <fxsaber\MultiTester\MultiTester.mqh> // Mehrere Durchläufe/Optimierungen im Tester.
    
    // Diese Funktion ist für die Erstellung der Aufgabenliste zuständig.
    void SetTesterSettings()
    {
      TesterSettings.Add("AUDCAD"); // Führen Sie AUDCAD mit den im Tester angegebenen Einstellungen aus.
      
      TesterSettings.Add("EURUSD", PERIOD_H1); // Führen Sie EURUSD H1 mit den im Tester angegebenen Einstellungen aus.
      
      TesterSettings.Add("GBPUSD", PERIOD_M6, D'2019.07.01', D'2019.09.01'); // Führen Sie GBPUSD M6 in dem angegebenen Intervall aus.
    }

    Das Ergebnis der Ausführung dieses EA sind drei Aufrufe des Testers mit den Einstellungen, die im Quellcode gelesen werden.


    Beispiel2.

    Analysieren wir den Quellcode des Expert Advisors, dessen Start am Anfang demonstriert wurde.

    #include <fxsaber\MultiTester\MultiTester.mqh> // Mehrere Durchläufe/Optimierungen im Tester.
    
    sinput bool Period_M1 = false;         // M1 einschalten
    sinput bool Period_M5 = false;         // M5 einschalten
    sinput bool Period_M15 = false;        // M15 einschalten
    sinput bool  false; // Nur benutzerdefinierte Zeichen
    
    // Diese Funktion ist für die Erstellung der Aufgabenliste zuständig.
    void SetTesterSettings()
    {
      // Suche nach allen Symbolen in der Marktübersicht.
      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); // Wenn M1 gesetzt ist, jedes Zeichen mit dieser TF hinzufügen.
    
          if (Period_M5)
            TesterSettings.Add(Name, PERIOD_M5); // Wenn M1 gesetzt ist, jedes Zeichen mit dieser TF hinzufügen.
    
          if (Period_M15)
            TesterSettings.Add(Name, PERIOD_M15); // Wenn M15 gesetzt ist, jedes Symbol mit dieser TF hinzufügen.
    
          if (!Period_M1 && !Period_M5 && !Period_M15) // Wenn kein TF gesetzt ist, lassen wir den Expert Advisor auf dem TF laufen.
            TesterSettings.Add(Name);
        }
      }
    }

    Das zweite Beispiel generiert eine Liste von Aufgaben auf der Grundlage der markierten TFs und Symbole im Market Watch. Schauen wir uns wieder die Kommentare im Quellcode an.


    Alles, was wir tun müssen, ist, diesen String zu schreiben

    #include <fxsaber\MultiTester\MultiTester.mqh> // Mehrere Durchläufe/Optimierungen im Tester.


    und nur eine Funktion zu schreiben, die Aufgaben auf intuitive Weise generiert.

    // Diese Funktion ist für die Erstellung der Aufgabenliste zuständig.
    void SetTesterSettings()


    Funktionen.

    • Erfordert die Erlaubnis zur Verwendung einer DLL. Mehrere WinAPI-Funktionen von user32.dll werden aufgerufen. Daher nicht für Market geeignet, es sei denn, sie werden umgangen.
    • Die mitgelieferte Datei MTTester.mqh enthält Methoden der MT5-Tester-Verwaltung, die sich auch in anderen Projekten verwenden lassen.
    • Es ist möglich, eine Aufgabe von einer unterbrochenen Stelle wieder aufzunehmen.

    Übersetzt aus dem Russischen von MetaQuotes Ltd.
    Originalpublikation: https://www.mql5.com/ru/code/26132

    Pan PrizMA No leverage 72 Pan PrizMA No leverage 72

    Konstruiert eine bewegliche Linie mit einem Polynom von 4 Grad. Extrapoliert die Sinuskurve und ihre Achse. Die konstruierten Linien entfernen bei jedem Balken einen Wert und es wird eine gleitende Linie aus extrapolierten Werten konstruiert, die nicht neu gezeichnet wird.

    MA Trend 2 MA Trend 2

    Handelssystem mit dem Indikator iMA (Gleitender Durchschnitt, MA). Entwicklung des MA-Trends.

    Optimierte Anzeige für konsolenartige Diagrammtextausgabe Optimierte Anzeige für konsolenartige Diagrammtextausgabe

    Mit dieser Bibliothek können Sie Anzeigen erstellen, um Textinformationen mit der optimalen Geschwindigkeit auf dem Diagramm auszugeben

    Panel für manuelle Positionsverfolgung Panel für manuelle Positionsverfolgung

    Panel basierend auf der Klasse CDialog. Arbeit am aktuellen Symbol. Löschen, Einstellen von Take Profit, Einstellen von Breakeven für eine Gruppe von Positionen