Diskussion zum Artikel "Optimierung und Optimierung des Roh-Codes zur Verbesserung der Backtest-Ergebnisse"
Bitte klären Sie mich darüber auf, wie CTick und PTick funktionieren. Ich sehe, dass beide zusammen mit Includes deklariert sind, aber keiner von beiden wird an anderer Stelle im Code erwähnt. Mit anderen Worten, was verfolgt CTick; und was verfolgt PTick?
(Ich kann in der MQ-Dokumentation nichts finden).
The pursuit of reliable back-test results in algorithmic trading hinges not only on robust strategy logic but also on the efficiency and precision of the underlying code. Raw code optimization and tweaking are critical to ensuring that Expert Advisors (EAs) perform as intended, minimizing computational overhead while maximizing execution accuracy. Poorly optimized code can distort back-test outcomes through delayed order execution, incorrect signal detection, or resource exhaustion—issues that mask a strategy’s true potential.
Während des Strategieentwicklungsprozesses werden wir mehrere wichtige Schritte unternehmen, um sicherzustellen, dass der EA sowohl funktional als auch technisch solide ist. Wir beginnen mit dem Hinzufügen von benutzerdefinierten Hilfsfunktionen und wiederverwendbaren Logikblöcken, um Vorgänge zu rationalisieren und sich wiederholenden Code zu vermeiden. Dann werden wir gut strukturierte Variablen und Konstanten einführen, die die Lesbarkeit des Codes verbessern und die Anpassung der Parameter vereinfachen. Diese grundlegenden Optimierungen helfen bei der Pflege des Codes und verbessern die Gesamtausführungszeit bei umfangreichen Backtests oder Tests mit mehreren Symbolen.
Ein weiterer wichtiger Bereich, in dem Verbesserungen vorgenommen wurden, ist die effizientere Nutzung von technischen Indikatoren. Anstatt die Indikatoren bei jedem Tick oder Balken blind zu berechnen, werden wir eine intelligentere Aktualisierungslogik implementieren, um Last und Verzögerung zu reduzieren. Wir werden auch mit verschiedenen Indikatorenkombinationen experimentieren, um eine bessere Entscheidungsfindung in der EA-Logik zu unterstützen. Durch die Kombination von struktureller Code-Verfeinerung, leistungsbewussten Funktionen und Indikator-Optimierung können wir sowohl die Qualität als auch die Geschwindigkeit von Backtests drastisch verbessern - und kommen so einer konsistent profitablen und einsetzbaren Strategie näher.
Ich möchte niemandem zu nahe treten, aber ich muss sagen, dass dieser Artikel ein Fehlschlag ist. Hier oben ist die Einleitung, mit einer Menge starker Behauptungen und , die der Autor alle nicht umgesetzt hat.
Meine ursprüngliche Absicht war es, die Probleme mit dem Code zu zeigen, aber sie sind so viel ... so werde ich nur Punkt 2.
double sl_distance = StopLoss * point; double tp_distance = TakeProfit * point; double sl = (tradeType == ORDER_TYPE_BUY) ? price - sl_distance : price + sl_distance; double tp = (tradeType == ORDER_TYPE_BUY) ? price + tp_distance : price - tp_distance; trade.PositionOpen(_Symbol, tradeType, In_Lot, price, sl, tp, NULL);
Robuster Code? Wo wird die Fehlerprüfung durchgeführt? Die Eingaben werden so verwendet, wie sie sind, ohne jegliche Prüfung, die Stoplevels werden nicht geprüft, die Marge wird nicht geprüft, die Handelsanforderung wird nicht geprüft...
// Auf bullische Muster prüfen for (int j = i; j >= i - min_bullish_count + 1; j--) { if (iClose(symbol, timeframe, j) > iOpen(symbol, timeframe, j)) { bullish_count++; first_bullish_low = getLow(5); } else break; }
Leistung ? Verwendung von iClose/iOpen Kerze für Kerze ? Diese Funktionen sind die langsamsten im Umgang mit Daten.
Außerdem scheint die Funktion getLow(5) ein Fehler zu sein. Ich habe es nicht weiter geprüft.
Ich werde mich nicht über den Handelsalgorithmus selbst äußern, ich habe nur festgestellt, wie der Autor bequem einen kurzen Zeitraum in der Geschichte ausgewählt hat, in dem der EA gute Ergebnisse liefert.
Dieser Artikel ist sehr schlecht.
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Neuer Artikel Optimierung und Optimierung des Roh-Codes zur Verbesserung der Backtest-Ergebnisse :
Die Entwicklung unserer algorithmischen Handelsstrategie beginnt mit einem strukturierten, methodischen Ansatz zur Mustererkennung und Signalvalidierung. Die Strategie basiert auf einem Kerzen-basierten Rahmen, der entwickelt wurde, um Umkehrszenarien mit hoher Wahrscheinlichkeit zu identifizieren. Bei Kaufpositionen erkennt die Logik systematisch drei aufeinanderfolgende Aufwärtskerzen, gefolgt von einer oder zwei korrigierenden Abwärtskerzen, die in einer bestätigenden Aufwärtskerze bei Index 1 (dem zuletzt geschlossenen Balken) gipfeln.
Umgekehrt werden Verkaufspositionen durch ein umgekehrtes Muster ausgelöst: drei aufeinanderfolgende Abwärtskerzen, gefolgt von einer oder zwei Aufwärts-Retracement-Kerzen und abgeschlossen durch eine bestätigende Abwärtskerze bei Index 1. Diese Konfiguration stellt sicher, dass die Signale nur bei der Bildung eines neuen Balkens validiert werden, sodass sich die Ausführung an der bestätigten Preisbewegung und nicht an den Schwankungen innerhalb des Balkens orientiert.
Um diese Logik in die Tat umzusetzen, wird die Architektur der Strategie dem modularen Code-Design und der Recheneffizienz Priorität einräumen. Zunächst werden Hilfsfunktionen implementiert, um sich wiederholende Aufgaben zu abstrahieren, wie z. B. die Klassifizierung von Kerzen (Auf-/Abwärts-Bestimmung) und die Sequenzvalidierung (Überprüfung aufeinanderfolgender Kerzenmuster). Diese Funktionen nutzen die nativen Preisdatenzugriffsmethoden von MQL5, einschließlich „iOpen()“ und „iClose()“, und minimieren gleichzeitig redundante Berechnungen durch statisches Variablen-Caching.
Autor: Hlomohang John Borotho