Маржа в процентах

 
Здравствуйте. Как программно получить уровень маржи в процентах(то, что идет после "Свободная маржа" в терминале)? И сколько процентов останется после открытия сделки данным объемом?
 
Igor Knyazkov:
Здравствуйте. Как программно получить уровень маржи в процентах(то, что идет после "Свободная маржа" в терминале)? И сколько процентов останется после открытия сделки данным объемом?

Уровень маржи - это: средства, деленные на текущую маржу, т. е.:

AccountInfoDouble(ACCOUNT_EQUITY) / AccountInfoDouble(ACCOUNT_MARGIN);

Сразу после открытия ордера величина средств изменится всего лишь на величину спреда. В большинстве случаев это незначительное изменение. Значительно изменится величина маржи. Требуемую маржу можно узнать, использовав функцию SymbolInfoDouble() с идентификатором SYMBOL_MARGIN_INITIAL или MarketInfo() с идентификатором MODE_MARGINREQUIRED, в зависимости от того, что поддерживает брокер (нужно экспериментировать). Затем эту величину добавить к текущему размеру маржи и снова провести расчет уровня маржи.


P. S. Только не забудьте перед делением проверить знаменатель на 0.

 
Ihor Herasko:

Уровень маржи - это: средства, деленные на текущую маржу, т. е.:

Сразу после открытия ордера величина средств изменится всего лишь на величину спреда. В большинстве случаев это незначительное изменение. Значительно изменится величина маржи. Требуемую маржу можно узнать, использовав функцию SymbolInfoDouble() с идентификатором SYMBOL_MARGIN_INITIAL или MarketInfo() с идентификатором MODE_MARGINREQUIRED, в зависимости от того, что поддерживает брокер (нужно экспериментировать). Затем эту величину добавить к текущему размеру маржи и снова провести расчет уровня маржи.


P. S. Только не забудьте перед делением проверить знаменатель на 0.

Спасибо.