А что он означает, этот процент маржи?
Извини за неполный вопрос, надо было сразу спросить более развёрнуто.
А цель какая преследуется? Проверить как правильно\неправильно рассчитывается маржа? Если нет, то из той формулы в описании можно высчитать. А дальше что с этим делать?
Извини за неполный вопрос, надо было сразу спросить более развёрнуто.
А цель какая преследуется? Проверить как правильно\неправильно рассчитывается маржа?
Целей, при соответствующей фантазии, можно придумать много. :) И совершенно не для проверки на "правильно\неправильно".
Если нет, то из той формулы в описании можно высчитать.
Ну и как? Для нее, как раз, и нужен этот самый "Процент маржи". Предлагаешь руками вбивать?:) Код должен иметь возможность получить его программно.
А дальше что с этим делать?
посмотрите SymbolInfoDouble
SymbolInfoDouble(symbol, SYMBOL_MARGIN_INITIAL); SymbolInfoDouble(symbol, SYMBOL_MARGIN_MAINTENANCE);
посмотрите SymbolInfoDouble
К сожалению, не то. В МТ4 эти значения, чаще всего, нулевые.
так устроит?
double procentMgn; procentMgn=AccountBalance()*100/MarketInfo("GOLD",MODE_MARGINREQUIRED);
так устроит?
Нет, не устроит.
1. Функция MarketInfo() является устаревшей.
2. MODE_MARGINREQUIRED возвращает правильный результат только для длинных поз, для коротких брешет.
3. MODE_MARGINREQUIRED возвращает результат уже в валюте депо, что мне не нужно.
4. Мне не нужен процент от депо. Мне нужно просто значение параметра "Процент маржи" для символа. А посчитать то что нужно я и сам могу.
Нет, не устроит.
1. Функция MarketInfo() является устаревшей.
2. MODE_MARGINREQUIRED возвращает правильный результат только для длинных поз, для коротких брешет.
3. MODE_MARGINREQUIRED возвращает результат уже в валюте депо, что мне не нужно.
4. Мне не нужен процент от депо. Мне нужно просто значение параметра "Процент маржи" для символа. А посчитать то что нужно я и сам могу.
если нужно на МТ5, то Вам в другой раздел форума.
не удивили Вы общеизвестными познаниями, точнее хуже:
1. вообще то не функция MarketInfo() , а выражение, результатом вычисления которого будут проценты
2. у Вас нет как минимум 4-х знаков после запятой, поэтому маржа в % для длинных и коротких получится одной и той же.
3. просто умножьте
procentMgn
на 0,01 и будет Вам счастье.
Целей, при соответствующей фантазии, можно придумать много. :) И совершенно не для проверки на "правильно\неправильно".
Ну и как? Для нее, как раз, и нужен этот самый "Процент маржи". Предлагаешь руками вбивать?:) Код должен иметь возможность получить его программно.
Ну да... фантазия это наше всё... только не понятно почему люди пытающиеся тебе помочь должны фантазировать о том, что нафантазировал себе ты? Ну да ладно, вопрос не в этом.
Как из той формулы получить требуемое:
Сама формула - Margin = Lots *ContractSize*MarketPrice*Percentage/100
Отсюда Percentage = Margin/(Lots *ContractSize*MarketPrice/100)
1. Функция MarketInfo() является устаревшей.
Пока в списке устаревших функций такая не числится. Вот она и выдаёт недостающее значение для определения процента маржи.
MarketInfo(_Symbol, MODE_MARGINREQUIRED);
Получив все данные на текущий момент, при текущей цене, легко пересчитать маржу которая удержана при открытии ордера, по цене открытия ордера.
Если надо для mql5 то надо использовать
bool SymbolInfoMarginRate( string name, // символ ENUM_ORDER_TYPE order_type, // тип ордера double& initial_margin_rate, // коэффициент взимания начальной маржи double& maintenance_margin_rate // коэффициент взимания поддерживающей маржи );
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
В окне терминала "Спецификации контракта" есть пункт "Процент маржи". По идее он должен возвращаться функцией SymbolInfoDouble(), но среди ее спецификаторов я не нашел значения, которое позволяет узнать этот "Процент маржи". Как его можно получить программно?