Размер залоговых средств

 

Как определить размер залоговых средств на 1 лот?

Функция MarketInfo(Symbol(),MODE_MARGINMAINTENANCE) НЕ РАБОТАЕТ.

 
Наверно вам нужен MODE_MARGINREQUIRED?
 

А мне казалось, что это MODE_MARGINREQUIRED (если хочешь узнать залог при открытии)... Например,

Print( MarketInfo( "GOLD", MODE_MARGINREQUIRED ) );
 выдает 1647.25, как и положено...

 
//+------------------------------------------------------------------+
//|                                                        Marga.mq4 |
//|                      Copyright © 2006, MetaQuotes Software Corp. |
//|                                        https://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "PSmith"
#property link      ""
 
#property indicator_chart_window
extern double UsagePercent = 5;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
  Comment("");   
  return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
{
  double nMarga;
  double MinLot;
  double nLot;
  double nLotStep;
  double MaxLot;
  int i;
  int n;
  MinLot = MarketInfo(Symbol(),MODE_MINLOT);
 
  nMarga = MarketInfo(Symbol(),MODE_MARGINREQUIRED)*MinLot;
 
  nMarga = NormalizeDouble(nMarga,2);
  nLotStep = MarketInfo(Symbol(),MODE_LOTSTEP);
  nLot = MathFloor(AccountBalance()*UsagePercent/100.0/nMarga)*nLotStep;
  MaxLot = MathMin(MarketInfo(Symbol(),MODE_MAXLOT),MathFloor(AccountBalance()/nMarga)*nLotStep);
  Comment("\nВалюта счета     = ",AccountCurrency(),
          "\nРазмер контракта = ",MarketInfo(Symbol(),MODE_LOTSIZE),
          "\nПлечо            = ",AccountLeverage(),
          "\nСпред            = ",MarketInfo(Symbol(),MODE_SPREAD),
          "\nУровень стопов   = ",MarketInfo(Symbol(),MODE_STOPLEVEL),
          "\nМинимальны лот   = ",MinLot," Залог за мин.лот  = ",nMarga,
          "\nЛот с учетом %   = ",nLot," Залог с учетом %    = ",NormalizeDouble(nMarga*nLot/MinLot,2),
          "\nМаксим.возм.лот  = ",MaxLot," Залог за макс.лот = ",NormalizeDouble(nMarga*MaxLot/MinLot,2),
          "\nОрдер MagNum     = ",n);
//----
   return(0);
}
//+------------------------------------------------------------------+
 
Mathemat:

А мне казалось, что это MODE_MARGINREQUIRED (если хочешь узнать залог при открытии)... Например,

Print( MarketInfo( "GOLD", MODE_MARGINMAINTENANCE ) );
выдает 1647.25, как и положено...

А у меня 0... Потому и вопрос возник...
 
kharko писал (а): А у меня 0... Потому и вопрос возник...
Я ошибся, смотри исправленный пост.
 
Mathemat:
kharko писал (а): А у меня 0... Потому и вопрос возник...
Я ошибся, смотри исправленный пост.
Спасибо... Попробую...
Причина обращения: