Наверно вам нужен 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:
А у меня 0... Потому и вопрос возник...
А мне казалось, что это MODE_MARGINREQUIRED (если хочешь узнать залог при открытии)... Например,
Print( MarketInfo( "GOLD", MODE_MARGINMAINTENANCE ) );выдает 1647.25, как и положено...
kharko писал (а): А у меня 0... Потому и вопрос возник...
Я ошибся, смотри исправленный пост.
Mathemat:
Спасибо... Попробую...
kharko писал (а): А у меня 0... Потому и вопрос возник...
Я ошибся, смотри исправленный пост.Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Как определить размер залоговых средств на 1 лот?
Функция MarketInfo(Symbol(),MODE_MARGINMAINTENANCE) НЕ РАБОТАЕТ.