SymbolInfoMarginRate

Restituisce i tassi di margine a seconda del tipo di ordine e direzione.

bool  SymbolInfoMarginRate(
   string             name,                     // nome del simbolo
   ENUM_ORDER_TYPE    order_type,               // tipo di ordine
   double&            initial_margin_rate,      // tasso iniziale del margine
   double&            maintenance_margin_rate   // tasso di mantenimento del margine
   );

Parametri

name

[in] Nome del simbolo.

order_type

[in] Tipo di ordine.

initial_margin_rate

[in] Una variabile di tipo double per ricevere un tasso di margine iniziale. Il margine iniziale è un deposito di sicurezza per un'operazione di 1 lotto nella direzione appropriata. Moltiplicando il tasso per il margine iniziale, riceviamo l'importo dei fondi da impegnare sul conto quando si effettua un ordine del tipo specificato.

maintenance_margin_rate

[out] Una variabile di tipo double per ricevere un tasso del margine di mantenimento. Il margine di mantenimento è un importo minimo per mantenere una posizione aperta di 1 lotto nella direzione appropriata. Moltiplicando il tasso per il margine di mantenimento, riceviamo l'importo dei fondi da impegnare sul conto dopo l'attivazione di un ordine del tipo specificato.

Valore Restituito

Restituisce true se la richiesta della proprietà ha esito positivo, altrimenti false.

Esempio

#define SYMBOL_NAME Symbol()
 
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- dichiarare le variabili in cui i tassi sono impostati
   double initial_margin_rate = 0;     // tasso del margine iniziale
   double maintenance_margin_rate = 0// tasso del margine di mantenimento
   
//--- ottenere e inviare i tassi dei simboli SYMBOL_NAME per l'ordine di mercato Buy al journal
   SymbolInfoMarginRatePrint(SYMBOL_NAMEORDER_TYPE_BUYinitial_margin_ratemaintenance_margin_rate);
   
//--- ottenere e inviare i tassi dei simboli SYMBOL_NAME per l'ordine di mercato Sell al journal
   SymbolInfoMarginRatePrint(SYMBOL_NAMEORDER_TYPE_SELLinitial_margin_ratemaintenance_margin_rate);
 
  /*
  risultato:
   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   
  */
  }
//+------------------------------------------------------------------+
//| Inviare i tassi di margine al journal |
//+------------------------------------------------------------------+
void SymbolInfoMarginRatePrint(const string symbolconst ENUM_ORDER_TYPE order_typedouble &initial_margin_ratedouble &maintenance_margin_rate)
  {
//--- ottenere i tassi per 'symbol' per l'ordine di mercato di tipo order_type
   ResetLastError();
   if(!SymbolInfoMarginRate(symbolorder_typeinitial_margin_ratemaintenance_margin_rate))
     {
      Print("SymbolInfoMarginRate() failed. Error "GetLastError());
      return;
     }
//-- stampa i valori dei tassi ottenuti
   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);
  }