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
Bibliotheken

Losprozent berechnen - Bibliothek für den MetaTrader 5

Maksim Novikov
Maksim Novikov
Ich heiße Maxim, ich bin Trader und Entwickler in den Programmiersprachen MQL4 und MQL5.
Ich spezialisiere mich auf die Entwicklung von Programmen zur Erleichterung des Handels.
| German English Русский 中文 Español 日本語 Português 한국어 Français Italiano Türkçe
Ansichten:
135
Rating:
(4)
Veröffentlicht:
Aktualisiert:
AutoLot.mqh (0.97 KB) ansehen
AutoLot.mq5 (1.78 KB) ansehen
MQL5 Freelance 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 Kontosaldos 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 zum 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

  1. Abfrage der Konto- und Symbolparameter

    • Aktueller Kontostand ( ACCOUNT_BALANCE )

    • Tick-Wert ( SYMBOL_TRADE_TICK_VALUE )

    • Minimum, Maximum und Schritt der Lotänderung

  2. Berechnung des Risikobetrags in der Einzahlungswährung

    riskAmount = баланс × (риск% / 100)

  3. Berechnung des Lotvolumens

    lotSize = riskAmount / (stopLossPips × tickValue)

  4. 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("Die 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 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 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.

ICT True Open and Power of 3 (PO3) Lines ICT True Open and Power of 3 (PO3) Lines

Ein leichtes, unverzichtbares Dienstprogramm für ICT- und SMC-Händler. Es stellt automatisch die wahren täglichen, wöchentlichen und monatlichen Eröffnungskurse dar und dient als Grundlage für das Power of 3 (Akkumulation, Manipulation, Distribution) Konzept.

SMC Liquidity Sweep and Rejection Detector SMC Liquidity Sweep and Rejection Detector

Ein hochpräziser Indikator, der entwickelt wurde, um institutionelle Liquiditätsausschläge (Stop Hunts) zu erkennen. Er identifiziert die Ablehnung von Kursen jenseits der jüngsten Schwungniveaus und markiert potenzielle Umkehrzonen mit hoher Wahrscheinlichkeit ohne nachlaufende Indikatoren.