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
OHLC Reality Check - at what stop distance does your backtest start lying? - Skript für den MetaTrader 5
- Ansichten:
- 9
- Rating:
- Veröffentlicht:
-
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance
Jeder Backtest mit 1-Minuten-OHLC-Daten geht von einer stillschweigenden Annahme aus: dass der Kurs innerhalb eines Balkens bei einem bullischen Balken den Verlauf „Eröffnung – Tiefstkurs – Höchstkurs – Schlusskurs“ und bei einem bärischen Balken den Verlauf „Eröffnung – Höchstkurs – Tiefstkurs – Schlusskurs“ nimmt. Es muss von etwas ausgegangen werden, da OHLC-Daten den Kursverlauf nicht erfassen. Echte Ticks tun dies hingegen.
Diese Annahme spielt nur dann eine Rolle, wenn die Kerze, die einen Trade schließt, sowohl den Stop als auch das Ziel berührt. Dann entscheidet die Order darüber, ob der Trade ein Gewinn oder ein Verlust war, und der Tester muss raten. Dieses Skript misst, wie oft die Vermutung falsch ist.
So funktioniert es: Bei jedem M1-Balken eröffnet es einen virtuellen Trade mit zwei Begrenzungsniveaus – eines über dem Eröffnungskurs des Balkens, eines darunter, beide im gleichen Abstand – und bewegt sich vorwärts, bis der Kurs eines davon erreicht. Wenn der schließende Balken nur ein Niveau berührt hat, gab es nichts zu entscheiden. Berührte er beide, vergleicht das Skript die Annahme des Testers mit dem tatsächlichen Verlauf der Ticks in dieser Minute.
Das Ergebnis hängt vollständig davon ab, wie breit die Spanne ist; daher durchläuft das Skript verschiedene Abstände und zeichnet die Kurve auf. Bei XAUUSD, über 30 Tage und 27.844 virtuelle Trades:
- 20-Punkte-Stop – 62,6 % der Trades waren umstritten, 23,84 % wurden falsch aufgelöst
- 50-Punkte-Stop – 30,1 % strittig, 8,25 % falsch
- 100-Punkte-Stop – 8,9 % wurden angefochten, 1,66 % falsch
- 200-Punkte-Stop – 1,5 % wurden angefochten, 0,18 % waren falsch
- 500-Punkte-Stop – 0,1 % angefochten, 0,00 % falsch
- 1.000-Punkte-Stop – keine angefochtenen Trades, keine falschen Trades
„Umstritten“ bedeutet, dass der Balken, der den Handel schloss, beide Niveaus berührte, sodass die Order über das Ergebnis entschied. „Falsch“ ist der Anteil aller abgeschlossenen Trades, bei denen die vom Tester angenommene Order das Gegenteil dessen war, was die Ticks taten – ein Gewinn, der als Verlust verbucht wurde, oder umgekehrt.
Die ehrliche Schlussfolgerung lautet also nicht „OHLC lügt immer“ oder „OHLC ist in Ordnung“. Die Ungenauigkeit hat eine Schwelle, diese Schwelle ist symbolabhängig, und man kann sie in elf Sekunden messen, anstatt darüber zu streiten.
Eingaben: InpSymbol (leer = das Chart-Symbol), InpDays, InpBrackets (die zu durchlaufenden Stop-Abstände in Punkten), InpHorizonBars (wie lange ein Trade offen bleiben darf, bevor er als ungelöst gilt), InpStepBars (alle N Bars einen Trade eröffnen; diesen Wert auf langsameren Rechnern erhöhen) und InpWriteCSV, das jeden falsch aufgelösten Trade mit seinem Einstiegszeitpunkt, seiner Schlussbar, der Modellprognose und den tatsächlichen Ticks auflistet, sodass Sie einzelne Fälle überprüfen können.
Das Programm liest ausschließlich historische Daten aus. Es platziert niemals eine Order und greift niemals in eine offene Position ein.
Erfordert echte Tick-Historien für das Symbol – laden Sie diese zunächst im Symbolfenster herunter, da die strittigen Trades sonst nicht geklärt werden können.

Übersetzt aus dem Englischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/en/code/77063
CGoldSymbol - find the broker's gold and size the position correctly on it
Erkennt das „Gold“-Symbol, unabhängig davon, wie der Broker es bezeichnet, liest die Kontraktspezifikation aus dem Terminal aus, anstatt sie anzunehmen, und rechnet ein Risiko in Kontowährung in eine für diesen Broker korrekte Lotgröße um.
Trade Excursion Report: MFE and MAE of every closed trade, to CSV
Exportiert pro geschlossenem Trade eine CSV-Zeile mit den Zahlen, die in einem Kontoauszug nicht enthalten sind: den höchsten nicht realisierten Gewinn, den der Trade erzielte (MFE), den höchsten nicht realisierten Verlust, den er überstanden hat (MAE), wie viel vom MFE tatsächlich erzielt wurde, über wie viele Kerzen sich der Trade erstreckte und wie lange er gehalten wurde. Es handelt sich um dieselben Kennzahlen wie beim „Trade Excursion“-Indikator, die jedoch in eine Datei geschrieben statt in ein Diagramm eingezeichnet werden, da die Fragen, die sich in Bezug auf diese Daten stellen, nicht anhand eines Diagramms beantwortet werden können: Hängt die Erfassungsquote von der Einstiegszeit ab? Sind die Trades, die ich vorzeitig schließe, diejenigen, die ich am längsten halte? Erreichen Verlusttrades an Montagen einen anderen MAE-Wert als an Freitagen? Sobald die CSV-Datei vorliegt, sind diese Informationen nur eine Pivot-Tabelle entfernt. Die Ausgabe erfolgt semikolonsepariert mit einer Kopfzeile im Format MQL5\Files; sie lässt sich in jeder Tabellenkalkulation öffnen. Messbeschränkung: Die Ausschläge werden anhand der Höchst- und Tiefststände der Kerzen im gewählten Zeitrahmen ermittelt; der Verlauf innerhalb einer Kerze ist unbekannt. Die Spalte „Kerzen“ gibt die Auflösung jedes einzelnen Handels an, und in der Zusammenfassung werden Ein-Kerzen-Handel separat gezählt, anstatt sie zu mitteln.
Accumulation/Distribution
Der Accumulation/Distribution Indikator wird aus Änderung von Preis und Volumen bestimmt.
Accelerator Oszillator (AC)
Der Acceleration/Deceleration Indikator (AC) misst die Beschleunigung und Verlangsamung des aktuellen Marktimpulses, der Kraft der Kursbewegung.