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
Ansichten:
24
Rating:
(2)
Veröffentlicht:
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 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

  1. Abrufen 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("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.

Accumulation/Distribution Accumulation/Distribution

Der Accumulation/Distribution Indikator wird aus Änderung von Preis und Volumen bestimmt.

Accelerator Oszillator (AC) Accelerator Oszillator (AC)

Der Acceleration/Deceleration Indikator (AC) misst die Beschleunigung und Verlangsamung des aktuellen Marktimpulses, der Kraft der Kursbewegung.