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
- Ansichten:
- 24
- Rating:
- Veröffentlicht:
-
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance
Die Funktion CalculateLot dient der automatischen Berechnung der Handelslosgröße auf der Grundlage von Risikomanagementprinzipien. Sie ermöglicht es einem Händler, den Prozentsatz des Kontostandes anzugeben, den er bei einem Handel zu riskieren bereit ist, und auf dieser Grundlage das optimale Positionsvolumen zu bestimmen.
Syntax
double CalculateLot(double riskPercent, double stopLossPips);
Parameter
Параметр Тип Описание riskPercent double Процент от текущего баланса счета, которым трейдер готов рискнуть. Указывается в абсолютном значении (например, 2.0 = 2% от баланса). stopLossPips double Расстояние до уровня Stop Loss в пунктах. Для 5-значных котировок указывается количество стандартных пунктов (например, 1000 = 1000 пунктов = 100 пипсов).
Rückgabewert
Die Funktion gibt das normalisierte Lotvolumen ( double )zurück , das:
-
den Rundungsregeln für den Volumenschritt ( VOLUME_STEP )entspricht ;
-
das maximal zulässige Volumen nicht überschreitet ( VOLUME_MAX );
-
nicht kleiner ist als das minimal zulässige Volumen ( VOLUME_MIN ).
Wenn der berechnete Wert die zulässigen Grenzen überschreitet, gibt die Funktion einen begrenzten Wert (minLot oder maxLot) zurück.
Funktionsalgorithmus
-
Abrufen der Konto- und Symbolparameter
-
Aktueller Kontostand ( ACCOUNT_BALANCE )
-
Tick-Wert ( SYMBOL_TRADE_TICK_VALUE )
-
Minimum, Maximum und Schritt der Lotänderung
-
-
Berechnung des Risikobetrags in der Einzahlungswährung
riskAmount = баланс × (риск% / 100) -
Berechnung des Lotvolumens
lotSize = riskAmount / (stopLossPips × tickValue)
-
Normalisierung und Validierung
-
Abrundung auf den nächsten Schritt ( VOLUME_STEP )
-
Validierung von Mindest- und Höchstwerten
-
Beispiele für die Verwendung
Beispiel 1. Grundlegende Verwendung in einem Expert Advisor
//+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void OnTick() { //--- Setzen Sie das Risiko auf 1,5% des Guthabens und den Stop Loss auf 500 Pips double lot = CalculateLot(1.5, 500); //--- Prüfen, ob die Partie korrekt berechnet wurde if(lot > 0.0) { //--- Aktuelle Preise abrufen double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); //--- Berechnung der Stufen double sl = ask - 500 * _Point; double tp = ask + 1500 * _Point; //--- Eine Position eröffnen trade.Buy(lot, _Symbol, ask, sl, tp); } }
Beispiel 2. Verwendung in einem Skript mit Fehlerprüfung
//+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void OnStart() { double riskPercent = 2.0; // Risiko 2% des Saldos double stopLossPips = 1000; // Stopp-Loss 1000 Punkte double lot = CalculateLot(riskPercent, stopLossPips); //--- Ausgabe von Informationen über die Berechnung Print("=== Ergebnisse der Losberechnung ==="); Print("Kontostand: ", AccountInfoDouble(ACCOUNT_BALANCE)); Print("Risiko, %: ", riskPercent); Print("Höhe des Risikos:", AccountInfoDouble(ACCOUNT_BALANCE) * riskPercent / 100.0); Print("Stop Loss, Punkte: ", stopLossPips); Print("Tickende Kosten:", SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE)); Print("Berechnetes Los:", lot); Print("================================"); if(lot <= 0.0) { Alert("Fehler: Lotberechnung fehlgeschlagen. Überprüfen Sie die Risiko- und Stop-Loss-Parameter."); } }
Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/ru/code/71010
ZigZag Support and Resistance Detection
ZigZag SNR Detection identifiziert Unterstützungs- und Widerstandsniveaus unter Verwendung von ZigZag-Pivot-Punkten.
To Close All Open Trades of Different Symbols
Technische Details Verwendet OrderSend von MQL5 mit TRADE_ACTION_DEAL für sofortigen Marktabschluss zu aktuellen Bid/Ask-Kursen. Beinhaltet Slippage-Toleranz (10 Punkte), korrekte Volumenanpassung und Erhaltung der magischen Zahl. Schleift rückwärts durch die Positionen, um Indexverschiebungen während der Ausführung zu verhindern.
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.
