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
Expert Advisors

SessionReopenEA - Experte für den MetaTrader 5

Gianluca Gangemi
Gianluca Gangemi
  • MQL5 / MetaTrader 5 developer in  Freelance
  • Italien
  • 591
MQL5-Entwickler, taetig in der MetaTrader-5-Automatisierung: Expert Advisors, Risikokontrolle und Forschungs-Pipelines von MT5 nach Python.
| German English Русский 中文 Español 日本語 Português 한국어 Français Italiano Türkçe
Ansichten:
13
Rating:
(4)
Veröffentlicht:
MQL5 Freelance Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance


Gold unterliegt an der CME einer täglichen Wartungspause. In der ersten Handelsstunde nach dieser Pause steigt der Kurs stärker, als es durch den Zufall zu erklären wäre, und dies gilt für jedes Kalenderjahr eines elfjährigen Untersuchungszeitraums – währendder Kurs in jeder anderen Stunde des Tages unverändert bleibt.

Dieser Expert Advisor kauft bei dieser Wiedereröffnung, hält die Position für eine festgelegte Zeit mit einem volatilitätsabhängigen, serverseitigen Stop und führt keine weiteren Aktionen durch. Ein Trade pro Sitzung. Kein Averaging, kein Grid, kein Martingale, keine Recovery.

Die Zahl, und dann die Zahl, nachdem ich festgestellt hatte, dass mein Kostenmodell falsch war

Gemessen über 11 Jahre mit stündlichen Daten, Einstieg bei der Wiedereröffnung und Haltezeit von zwei Stunden:

zu den vom Research berechneten Kosten zu den Kosten, die der Tester ermittelt hat
pro Handel +3,34 Basispunkte +1,60 Basispunkte
t-Statistik 7,40 3,42
Gewinnquote 59,3 % 50,8 %
Gewinnfaktor 1,63 1,30
positive Jahre 11 von 11 10 von 11

Die linke Spalte zeigt, was ich veröffentlicht hätte, wenn ich dort aufgehört hätte, wo die meisten Leute aufhören. Dann zeigte ein Backtest mit Echtzeit-Ticks im MetaTrader-eigenen Strategietester, dass die tatsächlichen Round-Trip-Kosten bei der Wiedereröffnung bei etwa60 Punkten liegenund nicht beiden 19, die meine Analyse ergeben hatte – denn das Spread-Feld des M1-Bars ist eine Zusammenfassung pro Bar und unterschätzt den Wiedereröffnungs-Spread um etwa das Dreifache.

Der Vorteil bleibt nach dieser Korrektur bestehen, wenn auch mit weniger als der Hälfte seiner ursprünglichen Stärke, und die Gewinnquote wird zu einem Münzwurf, der eher durch eine günstige Auszahlung als durch die Häufigkeit der Gewinne bestimmt wird. Die rechte Spalte ist die richtige, und auf ihr basiert dieser EA.

Was es nicht ist

Es ist kein Lebensunterhalt, und die Kopfzeile der Quelldatei weist darauf hin, noch bevor irgendwelche Parameter beschrieben werden. Bei einem Kapital, das für einen Drawdown von 20 % ausgelegt ist, erzielt er etwa+3,3 % pro Jahr bei einem maximalen Drawdown von 4,6 %, einem Sharpe-Koeffizienten von 1,23 und rund 200 Trades pro Jahr – was auch bedeutet, dass etwajedes neunte Jahr negativ ausfällt. Bei 0,01 Lots sind das etwa 130 Währungseinheiten pro Jahr, und diese Zahl gibt diePositionsgröße an, nicht die Strategie.

Ein 2,5-Jahres-Zeitfenster, für sich betrachtet, ergibtt = +1,12 – nicht signifikant. Ein profitabler zweijähriger Backtest dieser Strategie beweist für sich genommen nichts; erst die elfjährige Stichprobe macht den Unterschied aus.

Was das Ergebnis überstanden hat, bevor ich ihm vertraut habe

Jedes dieser Ereignisse hätte das Ergebnis zunichte machen können, und der Grund, warum sie aufgeführt sind, ist, dass ein Ergebnis, das niemand zu widerlegen versucht hat, kein Ergebnis ist:

  • Es handelt sich nicht um eine Kurslücke. Die erfasste Kurslücke über den Bruch hinweg beträgt im Durchschnitt −0,011 – die Bewegung findet beiMarktöffnung statt.
  • Es handelt sich nicht um einen Artefakt der Balkenbildung. Die Rekonstruktion der Stunde aus unabhängig abgerufenen M1-Balken stimmt an allen 73 überlappenden Tagen bis auf 0,0000 mit der H1-Reihe überein.
  • Es handelt sich nicht um Ausreißer. Der um die äußersten 1 % getrimmte Mittelwert liegt bei +0,70 gegenüber +0,75 für die gesamte Stichprobe; der Median beträgt +0,48.
  • Es handelt sich auch nicht um die Spread-Normalisierung, die eine naheliegende Erklärung wäre, da MT5-Balken auf der Geldseite basieren und der Spread bei der Wiedereröffnung breiter ist: Der Spread bleibt über die gesamte Stunde hinweg konstant, sodass er 0 % des Effekts erklärt.
  • Der genaue Reopen-Tick ist nicht erforderlich. Ein Einstieg mit 15 Minuten Verspätung zahlt sich noch aus, 30 Minuten Verspätung ebenfalls, und bei 45 Minuten ist der Effekt nicht mehr vorhanden.
  • Die wöchentliche Wiedereröffnung spielt dabei KEINE Rolle. Der Sonntag weist +1,11 Basispunkte bei t = 0,88 auf – was sich nicht von Rauschen unterscheiden lässt – gegenüber +3,90 Basispunkten und t = 8,32 bei den täglichen Werten. Aus diesem Grund gibt es „InpSkipMonday“, dessen Standardwert „true“ ist.

Eingaben und warum sie so sind, wie sie sind

Eingabe Bedeutung
InpEntryHour Die Serverzeit der Wiedereröffnung. Die Verwendung der Serverzeit ist bewusst gewählt: Die Uhr dieses Brokers richtet sich nach der US-Sommerzeit, sodass die Wiedereröffnung das ganze Jahr über zu einer festen Serverzeit stattfindet, während ein UTC-Trigger zweimal im Jahr um eine Stunde abweichen würde.
InpEntryWindowMin Eintritt nur innerhalb dieser Anzahl von Minuten vor oder nach der vollen Stunde.
InpHoldHours Anzahl der Stunden, die vor dem pünktlichen Schließen gehalten werden soll.
InpSkipMonday Die wöchentliche Wiedereröffnung überspringen. Siehe die oben genannten Zahlen für Sonntag.
InpLots Feste Lot-Größe. Keine Skalierung, niemals.
InpStopAtrMult Stop = dieser Wert × die durchschnittliche stündliche Spanne. Standardwert 2,0, nicht 1,5 wie in der ersten Version – siehe unten.
InpRangeBars H1-Bars in der Einheit der mittleren Spanne. 480 entsprechen etwa 20 Handelstagen.
InpMaxSpreadPts Verzichte auf den Einstieg, wenn der Spread schlechter als dieser Wert ist.

Zum Stop-Multiplikator: Bei den korrigierten Kosten ergibt 1,5× +1,60 Basispunkte (t 3,42), während 2,0× +1,91 (t 4,07) ergibt und bei 1,3 % der Trades statt bei 2,6 % erreicht wird. Ein noch größerer Spread führt weiterhin zu einer Verbesserung – und der Stop bleibt bestehen, denn „den Stop entfernen und der Backtest verbessert sich“ ist genau die Argumentation, die ein Martingale-System profitabel erscheinen lässt. Der Stop begrenzt ein Extremereignis; der zeitliche Ausstieg begrenzt den Rest.

Testen Sie es, bevor Sie irgendetwas von dem oben Gesagten glauben

Und testen Sie es mitjedem Tick auf Basis realer Ticks. Bei einem anderen Code von mir ergaben dieselben Regeln im selben Zeitraum −15.627 bei einer Modellierung mit 1-Minuten-Bars und +79.000 bei realen Ticks. Ein Backtest, der seinen Modellierungsmodus nicht angibt, verrät Ihnen nicht, was er gemessen hat.

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

Any Indicator Alert - alerts, push notifications and multi-timeframe for any custom indicator, no source code needed Any Indicator Alert - alerts, push notifications and multi-timeframe for any custom indicator, no source code needed

Fügen Sie es einem Chart hinzu, geben Sie den Namen eines beliebigen benutzerdefinierten Indikators ein, und es benachrichtigt Sie anhand der Indikator-eigenen Puffer – per Popup, Ton, Push-Benachrichtigung auf Ihrem Smartphone oder per E-Mail. Es liest den Indikator über iCustom aus, sodass kein Quellcode erforderlich ist: Eine kompilierte .ex5-Datei, die Sie heruntergeladen haben, reicht aus. Es kann diesen Indikator auch aus einem höheren Zeitrahmen auslesen und überprüft geschlossene Balken erneut, um Ihnen mitzuteilen, ob der Indikator sich neu berechnet oder lediglich verzögert. Das Tool öffnet sich im EXPLORE-Modus, der alle Puffer des Indikators sowie deren jeweilige Inhalte auflistet, denn die Frage „Welcher Puffer enthält das Signal?“ ist der Grund, warum die meisten Nutzer iCustom gar nicht erst verwenden.

SuperTrend TV EA SuperTrend TV EA

Ein Expert Advisor, der den SuperTrend-TV-Indikator über iCustom ausschließlich bei geschlossenen Kerzen handelt und zusammen mit einem Audit geliefert wird, das belegt, dass jeder Trade einem Signal entspricht und kein Signal übersehen wurde

Trade Excursion Report: MFE and MAE of every closed trade, to CSV 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.

CGoldSymbol - find the broker's gold and size the position correctly on it 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.