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
Position sizing from risk, using the broker's own tick value and volume step - Bibliothek für den MetaTrader 5
- Ansichten:
- 8
- Rating:
- Veröffentlicht:
-
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance
Jeder Lotgrößenrechner, der davon ausgeht, dass ein Pip zehn Dollar wert ist, liegt falsch – bei Gold, bei Indizes, bei JPY-Crosses und bei jedem Konto, das nicht auf USD lautet – und genau dort macht sich eine überdimensionierte Position negativ bemerkbar. Dieser Header führt die Berechnung stattdessen auf der Grundlage der Werte durch, die der Server tatsächlich für das jeweilige Symbol veröffentlicht.
Funktionsweise 
CalcLots() nimmt einen Risikobetrag in Kontowährung, einen Einstiegskurs und einen Stop-Kurs entgegen und gibt das zu handelnde Volumen zusammen mit dem tatsächlichen Risiko dieses Volumens zurück, nachdem die Einschränkungen des Brokers berücksichtigt wurden.
- Das Volumen wird stets ABWÄRTS auf die Volumenschritte des Brokersabgerundet. Ein Aufrunden würde stillschweigend ein höheres Risiko bedeuten, als Sie verlangt haben – und genau das darf eine Routine zur Positionsgrößenberechnung niemals tun.
- Wenn das angeforderte Risiko kleiner als das Mindestlot ist, wird nicht so getan, als ob. Die Funktion gibt das Minimum zurück, setzt `clamped_min` und meldet das Risiko, das die Position tatsächlich birgt – das größer sein wird als die Anfrage.
- Sie ist plattformunabhängig. Der Stop kann oberhalb oder unterhalb des Einstiegspreises liegen.
Außerdem gibt sie den Stop-Abstand in Punkten und den Wert von einem Punkt pro 1,00 Lot zurück, sodass ein Aufrufer die Berechnung anzeigen kann, anstatt nur eine Zahl zu erhalten.
Warum die Mathematik in einer separaten Header-Datei steht
Calc.mqh enthält keinen Terminal-Zustand. Es nimmt eine SymbolSpec-Struktur entgegen – Punkt, Tick-Größe, Tick-Wert, Volumen-Min/Max/Schrittweite, Stellenanzahl –, sodass die gesamte Logik zur Positionsgrößenbestimmung offline anhand synthetischer Instrumente ausgeführt werden kann.
SpecFromSymbol() ist die einzige Schnittstelle zu Live-Daten. Es liest zuerst SYMBOL_TRADE_TICK_VALUE_LOSS aus, da dies der Wert ist, den der Server verwendet, wenn sich ein Handel zu Ihren Ungunsten entwickelt – genau die Seite, auf der ein Stop-Loss angesiedelt ist; bei Brokern, die die Verlustvariante auf Null setzen, greift es auf SYMBOL_TRADE_TICK_VALUE zurück.
Erst diese Trennung macht das beigefügte Testskript überhaupt erst möglich.
Das Testskript
„RiskLotCalculatorTests.mq5“ läuft auf jedem Chart, ohne Brokerverbindung und ohne Historien. Es testet 41 Fälle: Rundung bei Volumen-Schritten, beide Begrenzungen und deren Flags, Skalierung des Punktwerts, wenn sich die Tick-Größe von der Punktgröße unterscheidet, eine 5-stellige Hauptwährung, Gold, einen Index mit einem Lot-Schritt von 0,1, beide Handelsrichtungen sowie jeden Ablehnungspfad – Nullrisiko, negatives Risiko, einen am Einstieg platzierten Stop und fehlende Tick-Daten.
Ziehen Sie die Datei auf ein Chart und lesen Sie die Registerkarte „Experts“. Das Ergebnis lautet „ALL PASS“, bestanden=41, nicht bestanden=0.
Beide Dateien sind in sich geschlossen: Legen Sie sie in denselben Ordner, und das Testskript wird unverändert kompiliert.
Übersetzt aus dem Englischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/en/code/77488
RiskPilot Pro – „Drag-to-Trade“-Risikodashboard mit Break-Even, Trailing und täglichem Verlustschutz
Ziehen Sie Ihren Stop-Loss an die gewünschte Stelle, klicken Sie auf „Kaufen“ oder „Verkaufen“, und die Lotgröße ist bereits korrekt eingestellt – ganz ohne Taschenrechner und ohne Tabellenkalkulation. Das System verwaltet Break-Even- und Trailing-Stop-Aufträge und beendet den Handel für den Tag, sobald Sie Ihr Verlustlimit erreicht haben.
Spread-Monitor
Spread Monitor – ein einfacher Informationsindikator für MetaTrader 5.
Contract Sizer: ladder, floor and a breaker that survives a deposit
Drei Schutzmechanismen zur Positionsgrößenbestimmung, die unterschiedlich funktionieren; ihre Verwechslung ist der Grund, warum so viele Konten leergeräumt werden: - Ladder: ein Kontrakt pro X des Guthabens, wird immer als Obergrenze (CAP) angewendet, auch bei manueller Lot-Größenbestimmung; - Floor: Unterhalb des Mindestkapitals wird nicht gehandelt; eine neue Einzahlung ist erforderlich; - Breaker: Stoppt bei X % unterhalb des Höchststands, unabhängig von der Kontogröße, und wird nicht automatisch zurückgesetzt. Was diese Bibliothek löst und fast keine andere: Eine Einzahlung ist kein Gewinn, und eine Auszahlung ist kein Verlust. Der Breaker misst den Rückgang im Verhältnis zum Höchststand des Kontostands. Ohne entsprechende Maßnahmen hebt eine Einzahlung, die WÄHREND eines Drawdowns getätigt wird, sowohl den Kontostand als auch den Höchststand an, und der Schutz erkennt den Rückgang genau dann nicht mehr, wenn er helfen würde. Hier verschieben Ein- und Auszahlungen den Höchststand um denselben Betrag. Der Höchststand wird in einer Datei gespeichert: Ein Breaker, der den Höchststand beim Neustart des Terminals vergisst, ist kein Breaker. Die Demo simuliert eine Einzahlung am Tiefpunkt eines Drawdowns. Führen Sie sie mit aktivierter und deaktivierter Einzahlung aus und vergleichen Sie die Spalte „Rückgang“.
Accelerator Oszillator (AC)
Der Acceleration/Deceleration Indikator (AC) misst die Beschleunigung und Verlangsamung des aktuellen Marktimpulses, der Kraft der Kursbewegung.