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
CGoldSymbol - find the broker's gold and size the position correctly on it - Bibliothek für den MetaTrader 5
- Ansichten:
- 7
- Rating:
- Veröffentlicht:
-
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance
Gold ist das Instrument, bei dem sich Broker so gut wie in nichts einig sind. Das Symbol kann XAUUSD, GOLD, XAUUSD.m, XAUUSDpro oder GOLD# lauten. Ein Kontrakt kann 100 Unzen, 10 Unzen oder eine Unze umfassen. Der Kurs kann zwei oder drei Stellen haben. Ein EA, der seine Lotgröße anhand einer fest programmierten Vorgabe wie „100 Unzen, zwei Stellen“ berechnet, liegt beim nächsten Broker nicht nur geringfügig daneben – er irrt sich um den Faktor zehn, und zwar in die Richtung, die das Konto leert.
Diese Klasse fragt das Terminal ab, anstatt Annahmen zu treffen.
Erkennung. Detect() durchläuft jedes vom Konto angebotene Symbol und bewertet die Namen, sodass XAUUSD gegenüber XAUUSD.m den Vorzug erhält, das wiederum gegenüber einer ungenauen Übereinstimmung den Vorzug erhält, während Silber, Platin und Palladium gänzlich ausgeschlossen werden – XAGUSD darf bei einer Suche nach Gold niemals den Vorzug erhalten. Ein Symbol, das bereits in der Marktübersicht vorhanden ist, erhält einen kleinen Bonus. Falls Ihr Broker etwas Ungewöhnliches verwendet, überspringt Attach("YOURNAME") die Suche.
Spezifikation. ContractSize(), Digits(), Point(), TickSize(), TickValueLoss(), MinLot(), MaxLot(), LotStep(), StopsLevel() und FreezeLevel() stammen direkt aus dem Terminal für das jeweilige Symbol.
Finanzen. LossForDistance(lots, distance) gibt an, was eine gegen Sie gerichtete Kursbewegung in der Kontowährung kostet. LotForRisk(riskMoney, distance) ist das Gegenteil und die entscheidende Funktion: Sie rechnet über SYMBOL_TRADE_TICK_VALUE_LOSS um, sodass sie sowohl bei einem 10-Unzen-Kontrakt als auch bei einem auf Euro lautenden Konto korrekt bleibt, und rundet das Ergebnis dann auf den Volumenschritt des Brokers sowie auf dessen Mindest- und Höchstwert ab. Es gibt Null zurück statt eines stillschweigenden Mindestlots, wenn selbst das kleinste Volumen mehr riskieren würde, als Sie zugelassen haben – ein Fall, den die meisten Codes zur Positionsgrößenbestimmung durch Aufrunden falsch handhaben.
Diagnose. Attach() sammelt Warnungen bei einer Kontraktgröße, die nicht 100 beträgt, bei einer ungewöhnlichen Anzahl von Stellen, bei einem Tick-Wert, den das Terminal als Null meldet, und bei einem Stop-Level ungleich Null. PrintReport() gibt die gesamte Spezifikation mit einem Beispiel aus, was in der Regel der schnellste Weg ist, um herauszufinden, warum sich eine Strategie bei zwei Brokern unterschiedlich verhält.
Auf einem Live-Konto mit einem 100-Unzen-Kontrakt, einem Euro-Guthaben und einem Stop von 1.500 Punkten ergibt 1 % von 10.000 EUR 0,07 Lots, was einem Risiko von 90,42 EUR entspricht. Der gleiche Aufruf bei einem 10-Unzen-Kontrakt ergibt 0,70 Lots und bei einem 1-Unzen-Kontrakt 7,00 Lots. Gleiches Risiko, gleicher Stop, hundertfacher Unterschied im Volumen – genau das ist es, was eine fest codierte Konstante falsch berechnet.
Das Paket enthält „GoldSymbolDemo.mq5“, ein Skript, das das Gold-Symbol erkennt, den Bericht ausgibt und einen Prozentsatz des Guthabens in eine Lotgröße über verschiedene Stop-Abstände umrechnet. Führen Sie es auf einem beliebigen Chart aus, um zu sehen, wie es wirklich um das Gold Ihres eigenen Brokers steht.
Die Klasse eröffnet keine Trades und ändert keine Positionen. Sie beantwortet Fragen.

Übersetzt aus dem Englischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/en/code/77067
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.
SessionReopenEA
Gold unterliegt an der CME einer täglichen Wartungspause. In jedem Kalenderjahr eines 11-jährigen Beobachtungszeitraums steigt der Kurs in der ersten Stunde nach der Pause stärker an, als es durch den Zufall zu erklären wäre – während er in jeder anderen Stunde des Tages unverändert bleibt. Ein Trade pro Sitzung, ein volatilitätsabhängiger serverseitiger Stop, kein Averaging und kein Grid. Dann stellte sich heraus, dass mein Kostenmodell falsch war. Ein Backtest mit Echtzeit-Ticks zeigte, dass die tatsächlichen Round-Trip-Kosten bei der Wiedereröffnung bei etwa 60 Punkten liegen, nicht bei den 19, die meine Untersuchung ergeben hatte – das M1-Bar-Spread-Feld ist eine Zusammenfassung pro Bar und unterschätzt diese Kosten um etwa das Dreifache. Neuauswertung von 11 Jahren mit den korrigierten Kosten: +3,34 Basispunkte, t 7,40, 59,3 % Gewinne -> +1,60 Basispunkte, t 3,42, 50,8 % Gewinne Der Vorteil bleibt bestehen, allerdings mit weniger als der Hälfte seiner ursprünglichen Stärke. Die zweite Zahl ist die tatsächliche. Was es nicht ist: etwa +3,3 % pro Jahr bei einem Drawdown von 4,6 %, wobei etwa jedes neunte Jahr negativ ausfällt. Bei 0,01 Lots sind das ~130 pro Jahr – eine Zahl, die die Positionsgröße misst, nicht die Strategie.
OHLC Reality Check - at what stop distance does your backtest start lying?
Eröffnet bei jedem M1-Bar einen virtuellen Trade mit Bracket-Strategie, führt diesen anhand des tatsächlichen Tick-Verlaufs durch und ermittelt für eine Reihe von Stop-Abständen, wie oft die 1-Minuten-OHLC-Modellierung den Trade falsch bewerten würde.
Accelerator Oszillator (AC)
Der Acceleration/Deceleration Indikator (AC) misst die Beschleunigung und Verlangsamung des aktuellen Marktimpulses, der Kraft der Kursbewegung.