Посмотрел Ваши ссылки. Всё это - на другие темы, очень косвенно касающиеся нужного вопроса. Интересно, но - бесполезно.
Мне надо рассчитать точное уменьшение свободной маржи, при открытии позиции из советника MT4.
По идее: MARGINREQUIRED + TICKVALUE*SPREAD
В данном случае (сразу после открытия, пока цена не сдвинулась) - TICKVALUE*SPREAD == OrderProfit()
Однако, на практике - не сходится. Возможно, что в результате округлений.
alsu:
1. заходим в гугл
2. набираем в строке поиска:
пример расчета маржи site:www.сайт_твоего_брокера.com
3. заходим и читаем (например)
Ещё раз: считаем, пользуясь функцией MarketInfo(...) MT4, а не из общей теории! Нет здесь ни плеча, ни размера лота, так как они уже учтены в значениях, возвращаемых MarketInfo(...)! Что ж никто вопрос то не может прочесть?
По идее: MARGINREQUIRED + TICKVALUE*SPREAD
В данном случае (сразу после открытия, пока цена не сдвинулась) - TICKVALUE*SPREAD == OrderProfit()
Однако, на практике - не сходится. Возможно, что в результате округлений.
alsu:
Ещё раз: считаем, пользуясь функцией MarketInfo(...) MT4, а не из общей теории! Нет здесь ни плеча, ни размера лота, так как они уже учтены в значениях, возвращаемых MarketInfo(...)! Что ж никто вопрос то не может прочесть?
Equity - Marge = FreieMargin
Equity - Marge = FreieMargin
Вполне возможно, только как это поможет посчитать сколько у меня останется свободной маржи, после того, как я открою сделку? Вот есть у меня AccountFreeMargin() == 1000.00, открываю продажу с лотом 1.24 по инструменту AUDCAD (только открыл - цена ещё не сдвинулась с места), чему теперь равно AccountFreeMargin() ? Причём, это надо знать до открытия, чтобы решить - можно открывать или не стоит.
Вполне возможно, только как это поможет посчитать сколько у меня останется свободной маржи, после того, как я открою сделку? Вот есть у меня AccountFreeMargin() == 1000.00, открываю продажу с лотом 1.24 по инструменту AUDCAD (только открыл - цена ещё не сдвинулась с места), чему теперь равно AccountFreeMargin() ? Причём, это надо знать до открытия, чтобы решить - можно открывать или не стоит.
Используйте функцию
AccountFreeMarginCheck( | string symbol, int cmd, double volume) |
Например:
if(AccountFreeMarginCheck(Symbol(), OP_BUY, Lots))>0) { //открываем ордер на покупку }
Насколько я понял вопрос, вас интересуют взаимосвязи величин
на картинках всё расписано.
Вполне возможно, только как это поможет посчитать сколько у меня останется свободной маржи, после того, как я открою сделку? Вот есть у меня AccountFreeMargin() == 1000.00, открываю продажу с лотом 1.24 по инструменту AUDCAD (только открыл - цена ещё не сдвинулась с места), чему теперь равно AccountFreeMargin() ? Причём, это надо знать до открытия, чтобы решить - можно открывать или не стоит.
у меня один лот евро/доллар 200евро 0,1лот 20евро 0,01лот 2евро
один пункт, одним лотом ~ 7евро
здесь для альп можно посчитать или у вашего брокера посмотрите
баланс 1000 маржа 0 свободная маржа 1000
купили 1лот
баланс 1000 маржа 200 свободная маржа 800
цена упала на один пункт 1пункт 1лотом = 7
баланс 1000 маржа 200 свободная маржа 800-7 = 793
цена поднялась на один пункт
баланс 1000 маржа 200 свободная маржа 800 + 7 = 807
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Перекопал на эту тему сколько мог, но универсальной формулы так и не получилось. Примечание: оперируем значениями, возвращаемыми функцией MarketInfo(Symbol(), MODE_???) MT4
Описываю вопрос "на пальцах":
У меня было на счёту $1000 (AccountFreeMargin() == 1000.00), я открыл покупку с лотом 1.0 - AccountFreeMargin() стало (например) $900.00. Итак, сразу задействовано $100.
Вопрос(1): как вычислить из чего состоят эти $100 из значений MarketInfo (т.е. рассчитать, что будет именно $100.00)? Что-то вроде: MARGINREQUIRED + SWAPLONG*SPREAD (это явно неверная формула)
Вопрос(2): цена изменилась на один пункт, как вычислить изменение свободной маржи?
Если для сделок продажи есть принципиальная разница - то какая?
Похоже ещё должно быть какое-то преобразование валют, особенно, если инструмент не EURUSD, а что-то типа AUDCAD
P.S. Давно бы уже сделали стандартными такие функции, наряду с вычислением заработка/потерь с одного пункта на лот... А то все форумы - наполовину этим исписаны, только невнятно.