OrderCalcMargin в mql4

 

Может не умею поиском пользоваться, но не подскажите как ее реализовать?

Проблема в том, что MarketInfo(Symbol(), MODE_MARGINREQUIRED) как-то не верно делает расчет

Вот пример, MarketInfo(Symbol(), MODE_MARGINREQUIRED) возвращает 332,560*100=33256 долларов. Почему-то при небольшом обьеме так и есть, но если увеличивать обьем ордера, цифры не совпадают 33256!=85281.

 

А причём тут "но если увеличивать обьем"? MODE_MARGINREQUIRED возвращает залог на 1 (один) лот в валюте депозита, с учётом плеча. Судя по залогу, ДЦ изменил плечо на 200:1, а было 500:1 во время вызова MODE_MARGINREQUIRED.

А что в контракте у них написано насчёт плеча и больших объёмов?

 

А понял, наверное.

Это демо-счет альпари. http://www.alpari.ru/ru/trading/margin_requirements/

Тогда попутный вопрос, а можно в как-то получить плечо для плавающего залога? Или это нереально?

 
gashik:

А понял, наверное.

Это демо-счет альпари. http://www.alpari.ru/ru/trading/margin_requirements/

Тогда попутный вопрос, а можно в как-то получить плечо для плавающего залога? Или это нереально?

Может это поможет? https://docs.mql4.com/ru/account/accountleverage
 
ну так он вернет значение плеча счета. В данном случае 500. Как раз то, что будет при "малых" обьемах. Вопрос в том как получить все плечи по условию контракта
 
роботом никак, только если научить его читать контракты за вас )
 

Да я уже подумываю в массив запихать. Только придется под каждый ДЦ или тип счета свои условия постоянно менять.

Для справки. Проверил OrderCalcMargin в mt5 - он тоже не умеет пересчитывать.

 
Может получится разностью AccountFreeMargin() - AccountFreeMarginCheck() решить вопрос? По сути это будет размер маржи за указанный размер лота. И отсюда можно вычислить размер плеча.
 
Спасибо, может и поможет, но только не в моем случае. Моя задача оценить стратегию, т.е. работа не только с уже открытыми сделками, а с возможно открытыми в будущем на определенных уровнях и выводом в виде комментов.
 

Решать-то конечно Вам, но эти функции не требуют открытия ордера. Я на память не помню формулу вычисления маржи, но точно помню что там учитывается плечо, соответственно преобразовав формулу и зная маржу за указанный лот можно вычислить плечо. Что и требуется...

 
gashik:

Может не умею поиском пользоваться, но не подскажите как ее реализовать?

Проблема в том, что MarketInfo(Symbol(), MODE_MARGINREQUIRED) как-то не верно делает расчет

Вот пример, MarketInfo(Symbol(), MODE_MARGINREQUIRED) возвращает 332,560*100=33256 долларов. Почему-то при небольшом обьеме так и есть, но если увеличивать обьем ордера, цифры не совпадают 33256!=85281.

знакомтесь с торговыми условиями своего брокера, а можете спросить у техподдержки

либо открыт не один ордер (показано не всё) .

Других вариантов нет

Причина обращения: