Как достать этот параметр?
Только так...
- 2017.05.31
- www.mql5.com
Только так...
Осилил всю тему, спасибо!
Это 3.14...ц :) Ну хоть так, и то хорошо.
Осилил всю тему, спасибо!
Это 3.14...ц :) Ну хоть так, и то хорошо.
проверьте на разных брокерах и разных типах символов (Forex, Futures,CFD, CFD-Index, CFD-Leverage)
для каждого брокера будут нужны свои "особенные" формулы %)
проверьте на разных брокерах и разных типах символов (Forex, Futures,CFD, CFD-Index, CFD-Leverage)
для каждого брокера будут нужны свои "особенные" формулы %)
Ну какие-же они особенные если они есть в той таблице...
Ну какие-же они особенные если они есть в той таблице...
Давно еще, я тестировал "вот это вот всё", и как я понял каждый брокер считает по своему.
У одного брокера будет работать формула, у другого нет, и это с учётом валюты депозита.
Давно еще, я тестировал "вот это вот всё", и как я понял каждый брокер считает по своему.
У одного брокера будет работать формула, у другого нет, и это с учётом валюты депозита.
Плохо тестировал. Там всё завязано на валюте депозита. В первую очередь маржа считается в валюте депозита. А через маржу считается и процент маржи. Конечно в той теме вопрос не закрыт, но это только потому, что у меня небыло желания выдавать готовое решение тем кто может только кубики лего складывать. Да и интерес пропал. Это значение на мой взгляд нужно только для того чтобы посчитать маржу по каждому символу отдельно и не в момент открытия ордера.
Плохо тестировал.
думаю что не плохо, потому как у меня есть расчет для всех типов символа - Forex, Futures,CFD, CFD-Index, CFD-Leverage
думаю что не плохо, потому как у меня есть расчет для всех типов символа - Forex, Futures,CFD, CFD-Index, CFD-Leverage
Ну если всё есть, то почему у одного работает, а у другого может не работать? Видимо не всё учтено.
проверьте на разных брокерах и разных типах символов (Forex, Futures,CFD, CFD-Index, CFD-Leverage)
для каждого брокера будут нужны свои "особенные" формулы %)
В общем только добрались руки до этого дела.
Сделал процентный калькулятор, работает на всех брокерах, все отлично.
Код:
int nMarginMode = (int)MarketInfo(sSymbol, MODE_MARGINCALCMODE); double mMargin1Lot = MarketInfo(sSymbol, MODE_MARGINREQUIRED); double mContractSize = SymbolInfoDouble(sSymbol, SYMBOL_TRADE_CONTRACT_SIZE); double mAsk = MarketInfo(sSymbol, MODE_ASK); double mMarginInit = MarketInfo(sSymbol, MODE_MARGININIT); double mTickSize = SymbolInfoDouble(sSymbol, SYMBOL_TRADE_TICK_SIZE); double mTickPrice = SymbolInfoDouble(sSymbol, SYMBOL_TRADE_TICK_VALUE); mMarginPercent = 0; switch (nMarginMode) { case 0: // forex if (mContractSize > 0) mMarginPercent = 100*nAccLeverage*mMargin1Lot/mContractSize; break; case 1: // cfd if ( mContractSize > 0 && mAsk > 0 ) mMarginPercent = 100*mMargin1Lot/mContractSize/mAsk; break; case 2: // futures if (mMarginInit > 0) mMarginPercent = 100/mMarginInit; break; case 3: // cfd-index if (mContractSize > 0 && mAsk > 0 && mTickPrice > 0) mMarginPercent = 100*mMargin1Lot*mTickSize/mContractSize/mTickPrice/mAsk; break; case 4: // cfd-leverage if ( mContractSize > 0 && mAsk > 0 ) mMarginPercent = 100*mMargin1Lot*nAccLeverage/mContractSize/mAsk; break; }
Но это еще пол беды.
Самое интересное теперь значение mMarginPercent преобразовать из валюты маржи в валюту счета.
Код конвертера я тут приводить не буду конечно, почти 400 строк.
Но это еще пол беды.
Самое интересное теперь значение mMarginPercent преобразовать из валюты маржи в валюту счета.
Код конвертера я тут приводить не буду конечно, почти 400 строк.
По-моему это гораздо проще - в цикле перебираем все символы, находим "margin_currency и account_currency", и умножаем (или делим) на значение аска. (20 строк со скобками)
пс. вот пример неправильного расчета Margin Percentage
(брокер ставит значения "от фонаря")
это реальный счет
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Терминал МТ4 1170.
В спецификации символа 'Процент маржи' равен 100%, пытаюсь его достать через MarketInfo(_Symbol, MODE_MARGININIT), возвращает 0. Проверил у разных брокеров.
Как достать этот параметр?