Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Telegram!
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
Bibliotheken

Сode, der Bilanz- und Eigenkapitaltabellen aufzeichnet und zusätzliche Optimierungskriterien berechnet - Bibliothek für den MetaTrader 5

Ansichten:
18
Rating:
(5)
Veröffentlicht:
MQL5 Freelance Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Ich habe beschlossen, den Code aus einem großen Projekt in einer separaten Bibliothek zu teilen.

Wenn Sie Zugriff auf den Code des Expert Advisors haben, können Sie Balance- und Equity-Diagramme speichern und zusätzliche Optimierungskriterien berechnen, indem Sie zusätzlichen Code aus dieser Bibliothek hinzufügen.

Laden Sie die Datei Advanced Optimization Report Saver.mqh vom angehängten Link herunter und speichern Sie sie im Terminal-Ordner \MQL5\Include\

Fügen Sie den Code hinzu, der die heruntergeladene Datei verbindet: (Sie können ihn unter der letzten Zeile Ihres Expert Advisor-Codes oder an einer anderen Stelle hinzufügen)

#include <Advanced Optimization Report Saver.mqh>

Fügen Sie dann die Aufrufe der exportierten Funktionen zu den bestehenden Funktionen in Ihrem Expert Advisor hinzu: (wenn es keine Funktionen gibt, fügen Sie sie hinzu)

void OnTick(){
   //... Ihr Code
   
   //Bilanz- und Eigenkapitaltabellen speichern
   save_OnTick(TimeCurrent(), AccountInfoDouble(ACCOUNT_BALANCE), AccountInfoDouble(ACCOUNT_EQUITY));
}

void OnTesterInit()  {
   //... Ihr Code

   save_OnTesterInit();//print to chart "Dieses Fenster nicht schließen, bevor die Optimierung abgeschlossen ist!"
}
void OnTesterDeinit(){
   //... Ihr Code

    save_OnTesterDeinit();// Rahmen holen
}

double OnTester(){
   //... Ihr Code

   //Speichern Sie alle benutzerdefinierten Werte:
   double AvgPips=0;
   save_Add( AvgPips, 2, "Custom 1", true);//Wert, Ziffern, Name, sort_min_to_max
   save_Add( TesterStatistics( STAT_PROFIT ), 2, "Custom 2");
   double Custom = 0;//Ihre individuelle Fitness
   saveCharts(Custom);//save final equity, alle Geschäfte...
   return Custom;
}

Mit den save_Add-Funktionen können Sie Ihre eigenen Kriterien hinzufügen, die Sie in Ihren Bericht aufnehmen möchten:

   save_Add( AvgPips, 2, "Custom 1", true);//Wert, Ziffern, Name, sort_min_to_max
   save_Add( TesterStatistics( STAT_PROFIT ), 2, "Custom 2");


Fügen wir zum Beispiel diesen Code dem Expert Advisor für gleitenden Durchschnitt aus dem Ordner Examples (...\MQL5\Experts\Examples\Moving Average\MovingAverage.mq5) hinzu. Kopieren Sie zunächst den ursprünglichen Expert Advisor und nennen Sie ihn Moving Average Charts.mq5. Fügen Sie nun den Code aus der obigen Anleitung hinzu.

Die Änderungen befinden sich nur ganz am Ende des Codes, beginnend mit der Funktion OnTick() nach der Zeile CheckForOpen();:

void OnTick(void)
  {
//---
   if(SelectPosition())
      CheckForClose();
   else
      CheckForOpen();
   //Bilanz- und Eigenkapitaltabellen speichern
   save_OnTick (TimeCurrent(), AccountInfoDouble( ACCOUNT_BALANCE), AccountInfoDouble( ACCOUNT_EQUITY));
  }

void OnTesterInit()  {
   //... Ihr Code

   save_OnTesterInit();//print to chart "Dieses Fenster nicht schließen, bevor die Optimierung abgeschlossen ist!"
}
void OnTesterDeinit(){
   //... Ihr Code

    save_OnTesterDeinit();// Rahmen holen
}

double OnTester(){
   //... Ihr Code

   //Speichern Sie alle benutzerdefinierten Werte:
   double AvgPips=0;
   save_Add( AvgPips, 2, "Custom 1", true);//Wert, Ziffern, Name, sort_min_to_max
   save_Add( TesterStatistics( STAT_PROFIT ), 2, "Custom 2");
   double Custom = 0;//Ihre individuelle Fitness
   saveCharts(Custom);//save final equity, alle Geschäfte...
   return Custom;
}

#include <Advanced Optimization Report Saver.mqh>

Wie Sie sehen können, ist es ganz einfach und dauert nur ein paar Minuten.

Danach können Sie die Optimierung durchführen:

Der letzte Screenshot zeigt, dass der verbundene Code 2 Parameter hinzugefügt hat:

  1. Statistik speichern - aktiviert oder deaktiviert die Sammlung von Statistiken
  2. Pixels in balance and equity charts - gibt die Anzahl der Pixel in der Breite der Mini-Diagramme an.

Sobald die Optimierung abgeschlossen ist, können Sie einen Bericht erstellen (mit einem Programm, das die gespeicherten Frames analysiert) und Folgendes sehen:

100 Zeilen mit MovingPeriod


10 Zeilen mit MovingShift



Wenn es mehr als 20 Zeilen gibt, werden nur 3 horizontale Zeilen mit Durchschnittswerten angezeigt: 3 oben und 3 unten.

100 Zeilen sind schwer zu erkennen, daher müssen Sie ihre Anzahl reduzieren.
Sie können Eingabevariablen nicht mit dem gleichen Schritt, sondern mit einer Skala durch einen Enumerator (Aufzählung) verwenden, z. B.: 1,2,3,5,7,10,15,20,30,50,70,100 - es wird nur 12 Zeilen statt 100 geben.

enum nums1 {__0=0, __1=1, __2=2, __3=3, __5=5, __7=7, __10=10, __15=15, __20=20, __30=30, __50=50, __70=70, __100=100, __150=150, __200=200, __300=300, __500=500};
input nums1 MovingPeriod = 10; // Gleitender Durchschnittszeitraum
Sie können die Enum-Version des Expert Advisors aus den angehängten Dateien herunterladen.

Anstelle von 1000 Optimierungsdurchläufen wird es 120 geben, und die Berechnungszeit wird ~8-mal schneller sein, und die Dateigröße wird ~8-mal kleiner sein.
Das Ergebnis ist besser sichtbar:


Das Ergebnis mit MovingPeriod = 15 sticht sofort ins Auge, mit der höchsten Durchschnittslinie und dem höchsten Maximum.
Wie so oft sind jedoch die besten Ergebnisse im Backtest nicht die besten im Forward-Test.
Ihr Programm, das gespeicherte Frames analysiert, kann Charts wie dieses anzeigen:

Und zusätzliche Kriterien wie diese:

Wenn Sie einen Code für andere interessante Kriterien haben, können Sie diese zur Aufnahme in die Bibliothek vorschlagen.


Aktualisierungen:

  1. 2026-02-02: Unterstützung für UTF-Zeichen in Namen für benutzerdefinierte Kriterien wurde hinzugefügt.

Übersetzt aus dem Englischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/en/code/68706

EA Duplicate Detector EA Duplicate Detector

Erlauben Sie dem EA, anhand von Bedingungen zu bestimmen, ob es doppelte EAs auf dem Chart gibt.

Project Template Generator Project Template Generator

Dieses Skript dient als praktisches Beispiel dafür, wie Entwickler mit Hilfe von MQL5 programmatisch mit Dateien arbeiten können. Eines der Hauptziele ist die Demonstration einer effektiven Organisation von Projektdateien, die für Entwickler, die an großen Systemen arbeiten oder portable, in sich geschlossene Projekte erstellen wollen, unerlässlich ist. Das Konzept kann weiter ausgebaut und mit zusätzlichen Ideen verfeinert werden, um fortgeschrittenere Entwicklungsabläufe zu unterstützen.

Binary tradng based on candle colors Binary tradng based on candle colors

Eine einfache binäre Handelsstrategie, die Kerzenfarben zählt.

Accelerator Oszillator (AC) Accelerator Oszillator (AC)

Der Acceleration/Deceleration Indikator (AC) misst die Beschleunigung und Verlangsamung des aktuellen Marktimpulses, der Kraft der Kursbewegung.