und werden Sie Mitglied unserer Fangruppe
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Bewerten Sie es im Terminal MetaTrader 5
Сode, der Bilanz- und Eigenkapitaltabellen aufzeichnet und zusätzliche Optimierungskriterien berechnet - Bibliothek für den MetaTrader 5
- Ansichten:
- 18
- Rating:
- Veröffentlicht:
-
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:
- Statistik speichern - aktiviert oder deaktiviert die Sammlung von Statistiken
- 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 DurchschnittszeitraumSie 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:
- 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
Erlauben Sie dem EA, anhand von Bedingungen zu bestimmen, ob es doppelte EAs auf dem Chart gibt.
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
Eine einfache binäre Handelsstrategie, die Kerzenfarben zählt.
Accelerator Oszillator (AC)
Der Acceleration/Deceleration Indikator (AC) misst die Beschleunigung und Verlangsamung des aktuellen Marktimpulses, der Kraft der Kursbewegung.


