SymbolInfoMarginRate

Gibt die Margensätze in Abhängigkeit von der Auftragsart und -richtung zurück.

bool  SymbolInfoMarginRate(
   string             name,                     // Symbol
   ENUM_ORDER_TYPE    order_type,               // Auftragstyp
   double&            initial_margin_rate,      // Anfangsmarge
   double&            maintenance_margin_rate   // Erhaltungsmarge 
   );

Parameter

name

[in] Name des Symbols.

order_type

[in]  Ordertyp.

initial_margin_rate

[out] Variable vom Typ double, der die Anfangsmarge zugewiesen wird. Die Anfangsmarge ist die Höhe des Garantiebetrags für die Ausführung eines Handels mit dem Volumen von 1 Lot der entsprechenden Richtung. Multipliziert man den Koeffizienten mit der Anfangsmarge, erhält man den Betrag, der auf dem Konto reserviert wird, wenn ein Auftrag des angegebenen Typs erteilt wird.

maintenance_margin_rate

[out] Variable vom Typ double für die Erhaltungsmarge. Die Erhaltungsmarge ist der Mindestbetrag für die Aufrechterhaltung einer offenen Position von 1 Lot in der entsprechenden Richtung. Durch Multiplikation des Koeffizienten mit der Erhaltungsmarge erhält man den Betrag, der auf dem Konto reserviert wird, nachdem der Auftrag der angegebenen Art ausgelöst wurde.

Rückgabewert

Gibt true zurück, wenn der Abruf der Eigenschaften erfolgreich ausgeführt wurde, andernfalls false.

Beispiel:

#define SYMBOL_NAME Symbol()
 
//+------------------------------------------------------------------+
//| Skript Programm Start Funktion                                   |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- Deklarieren der Variablen für die Margensätze
   double initial_margin_rate = 0;     // Anfangsmarge
   double maintenance_margin_rate = 0// Erhaltungsmarge
   
//--- Abrufen und Senden der Margensätze für SYMBOL_NAME für einen Markt-Kaufaufftrag an das Journal
   SymbolInfoMarginRatePrint(SYMBOL_NAMEORDER_TYPE_BUYinitial_margin_ratemaintenance_margin_rate);
   
//--- Abrufen und Senden der Margensätze für SYMBOL_NAME für einen Markt-Verkaufsaufftrag an das Journal
   SymbolInfoMarginRatePrint(SYMBOL_NAMEORDER_TYPE_SELLinitial_margin_ratemaintenance_margin_rate);
 
   /*
  Ergebnis:
   Initial margin rate for symbol AFKS for the Buy market order0.225600
   Maintenance margin rate for symbol AFKS for the Buy market order0.112800
   Initial margin rate for symbol AFKS for the Sell market order0.254400
   Maintenance margin rate for symbol AFKS for the Sell market order0.127200   
   */
  }
//+------------------------------------------------------------------+
//| Sende die Margensätze an das Journal                             |
//+------------------------------------------------------------------+
void SymbolInfoMarginRatePrint(const string symbolconst ENUM_ORDER_TYPE order_typedouble &initial_margin_ratedouble &maintenance_margin_rate)
  {
//--- Ermitteln der Margensätze des Symbols für den Auftragstyp Marktauftrag
   ResetLastError();
   if(!SymbolInfoMarginRate(symbolorder_typeinitial_margin_ratemaintenance_margin_rate))
     {
      Print("SymbolInfoMarginRate() failed. Error "GetLastError());
      return;
     }
//--- Ausdruck der erhaltenen Margensätze
   string type=(order_type==ORDER_TYPE_BUY ? "Buy" : order_type==ORDER_TYPE_SELL ? "Sell" : "Unknown");
   PrintFormat("Initial margin rate for symbol %s for the %s market order: %f\n"+
               "Maintenance margin rate for symbol %s for the %s market order: %f",
               SYMBOL_NAMEtypeinitial_margin_rate,
               SYMBOL_NAMEtypemaintenance_margin_rate);
  }