Нет суммы залога за лот

 
К сожалению, в MQL4 нет параметра, который бы содержал тип рынка (Forex, Metall, CFD. Futures, Indexes). Что ещё хуже, функция MarketInfo() не возращает значение суммы залога за лот. А также, выдаёт ерунду для размера контракта некоторых фьючерсов и индексов. Следовательно, не всегда возможно правильно расчитать максимально допустимый размер открываемой позиции.

Расчет залога за лот для рынка Forex:
string base=StringSubstr(Symbol(),0,3);                 // базовая валюта инструмента
string currency=AccountCurrency();                      // валюта счета
double leverage=AccountLeverage();                      // плечо счета
double bid_currency=MarketInfo(base+currency,MODE_BID); // курс базовой валюты по отношению к валюте счета
double lotsize=MarketInfo(Symbol(),MODE_LOTSIZE);       // размер контракта в базовой валюте
double lotmargin=bid_сurrency*lotsize/leverage;         // залог за лот в валюте счета



Для акций lotmargin тоже можно расчитать, а вот для фьючерсов и торгуемых индексов - никак.

Добавьте для функции MarketInfo(,) константу LOTMARGIN. Или, хотя бы тип рынка MARKETTYPE.

Будет ли такое?