Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нем неправильно. Необходимо обновить браузер или попробовать использовать другой.
Расчет плеча без AccountLaverage для разных инструментов
вроде они маржинальные требования увеличивали, а не плечо снижали, например некоторые меняли способ расчёта маржи, и вместо например способа расчёта "Forex" можно было увидеть "CFD" по фунту и евро, маржи такой способ расчёта жрёт в 4 раза больше при том же плече
вроде они маржинальные требования увеличивали, а не плечо снижали, например некоторые меняли способ расчёта маржи, и вместо например способа расчёта "Forex" можно было увидеть "CFD" по фунту и евро, маржи такой способ расчёта жрёт в 4 раза больше при том же плече
Чтобы решить эту задачу надо вспомнить что такое кредитное плечо и формулу расчёта маржи с учётом плеча.
Хотел словами расписать, но нихрена не получилось. Надеюсь из кода сам поймёшь.
Чтобы решить эту задачу надо вспомнить что такое кредитное плечо и формулу расчёта маржи с учётом плеча.
Хотел словами расписать, но нихрена не получилось. Надеюсь из кода сам поймёшь.
То, что ты словами расписал, я понял, а из кода нихрена .
Еще не проверял, но такой расчет возможен при открытой позиции, в случае твоего кода OP_BUY.
Мне же нужно, чтобы выводилась информация о плече еще до открытия позиции. Или чтоб выводился параметр, который свидетельствует о том, что плечо занижено (или маржа увеличена).
То, что ты словами расписал, я понял, а из кода нихрена .
Еще не проверял, но такой расчет возможен при открытой позиции, в случае твоего кода OP_BUY.
Мне же нужно, чтобы выводилась информация о плече еще до открытия позиции. Или чтоб выводился параметр, который свидетельствует о том, что плечо занижено (или маржа увеличена).
Ну тогда внимательно прочти документацию по всем применённым функциям и тогда поймёшь что это то что ты хотел. Где-же ты увидел открытие ордера??? Именно перед открытием ордера считается какое плечо использует указанный инструмент.
Начни с AccauntFreeMarginChek()
Возвращаемое значение
Размер свободных средств, которые останутся после открытия указанного ордера по текущей цене на текущем счете.
К сожалению AccountFreeMarginCheck в индикаторе выдает ошибку: FreeMarginCheck function cannot be called from a custom indicator, а мне расчет для индикатора нужен.
На одном из форумов уже отвечал на Ваш же вопрос. Отвечу и здесь.
Здравствуйте. Вопрос нужный задали. Особенно важный для тех, кто бездумно использует роботов, и не учитывает, что функция AccountLeverage() возвращает кредитное плечо, которое установлено для торгового счета в целом, но не для отдельного финансового инструмента. А мы-то знаем не по наслышке, что по ряду финансовых инструментов эти плечи у брокеров могут различаться (любят брокеры их менять, например, перед важными событиями), причем, существенно.
Здесь придется определять "истинное" кредитное плечо через функцию информации об инструменте, а именно функцию MarketInfo.
Если в качестве идентификатора запроса для текущего финансового инструмента ( Symbol() ) указать параметр MODE_MARGINREQUIRED:
MarketInfo(Symbol(), MODE_MARGINREQUIRED),
то функция вернет нам размер свободных средств, необходимых для открытия 1 лота на покупку. Причем, размер залога будет рассчитан с учетом "истинного" кредитного плеча, установленного для финансового инструмента.
Отсюда уже можно определить и "истинное" кредитное плечо по конкретному финансовому инструменту, но опять-таки следует использовать еще пару вызовов MarketInfo:
MarketInfo(Symbol(),MODE_TICKVALUE)*Bid/MarketInfo(Symbol(),MODE_MARGINREQUIRED)/MarketInfo(Symbol(),MODE_POINT),
где:
MarketInfo(Symbol(),MODE_TICKVALUE) - размер минимального изменения цены инструмента в валюте депозита,
MarketInfo(Symbol(),MODE_POINT) - pазмер пункта в валюте котировки,
Bid - текущая цена продажи финансового инструмента.
Кстати, вот такой простенький код будет показывать плечо в верхнем левом углу окна с графиком финансового инструмента:
PHP:
//+------------------------------------------------------------------+ //| real_leverage.mq4 | //+------------------------------------------------------------------+ #property copyright "" #property link "" #property version "1.00" #property strict //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { return(INIT_SUCCEEDED); } void OnDeinit(const int reason) { } void OnTick() { Comment("Реальное плечо "+Symbol()+": "+DoubleToStr(MarketInfo(Symbol(),MODE_TICKVALUE)*Bid/MarketInfo(Symbol(),MODE_MARGINREQUIRED)/MarketInfo(Symbol(),MODE_POINT),1)); }
Поспешил я с выводами. По паре USDCHF советник показывает реальное плечо 1:500, а по факту 1:50. Причем, пока не попытаешься открыть позицию или не посмотришь маржинальные требования по инструменту на сайте брокера, об этом не узнаешь. Так что вопрос остается.
Поспешил я с выводами. По паре USDCHF советник показывает реальное плечо 1:500, а по факту 1:50. Причем, пока не попытаешься открыть позицию или не посмотришь маржинальные требования по инструменту на сайте брокера, об этом не узнаешь. Так что вопрос остается.
Что хоть за брокер? Сделайте тогда парсер с сайта что ли, чтобы располагать точными данными. Или перед открытием ордеров делать проверку на достаточность средств.
У меня показывает 500, но открыть позицию разумеется можно объемом, не превышающим объем при плече 50. Было бы не плохо добиться положительного результата, многие оценили бы возможность знать реальное кредитное плечо по инструменту.
Влад | 21:42
Доброго вечера. Подскажите, а корректные ли данные передаются в МТ по марже?
21:48 Yuri в чате.
Yuri | 21:48
Здравствуйте
Yuri | 21:50
Данные можете сверить, используя калькулятор трейдера: __http://www.gkfx.ru/trade_specs/traders_calculator.html
Также, маржинальые требования указаны здесь: __http://www.gkfx.ru/trade_specs/margin_requirements.html
Влад | 21:52
Скажите сейчас по USDCHF какое реальное плечо? На сайте 1:50, а на самом деле сколько из МТ?
Просто МТ возвращает размер залога на 1 лот 1075 долларов, т.е. плечо из МТ получается 100.
Влад | 21:53
это запрос по параметру MODE_MARGINREQUIRED
Мне кажется просто неправильно внесены (неоткорректированы) эти параметры в админке.
Yuri | 21:57
Кстати, 100 по USDCHF
На сайте, значит не поменяли
Влад | 21:58
Вот и я про тоже. Т.е. MODE_MARGINREQUIRED из МТ правильно выдает всегда?
Yuri | 21:59
да
Влад | 21:59
Просто один товарищ говорит, что реальное плечо по факту сейчас 50. Я проверить не могу.
А проверьте плечо по USDRUB
Влад | 22:01
мне сова 100 показывает
Yuri | 22:01
Тоже 100
Влад | 22:02
на сайте 1 к 20
то есть моя сова правильно считает
Yuri | 22:04
Да.
Вообще, можно проверять так: __http://www.gkfx.ru/trade_specs/traders_calculator.html
Влад | 22:04
так там расчет как у меня в сове
Yuri | 22:04
По всем валютным инструментам маржа должна быть примерно одинакова - не отличаться в разы
Калькулятор трейдера берёт данные напрямую из MT, как и ваша сова
так что тут уж как кому удобнее
Ага. В общем у меня такая мысль, что он Вам правильно показывает.
У Вас же плечо по счету 500, а у меня плечо по счету 100. МТ для наших счетов и возвращает с учетом реального плеча размер залога по конкретному инструменту. Т.е. в Вашем случае залог меньше в 5 раз, чем в моем. Отсюда и расчет разный. Просто сейчас сняты, видимо, маржинальные ограничения.
Т.е. все работает правильно. В Вашем случае маржа меньше в 5 раз (200 долларов на 1 лот), соответственно, реальное плечо больше в 5 раз, из чего и идет расчет. Как-то так.
Код ни в коем случае не менял. Все проверяю на демке. Депо $1000, плечо на счете 500. Максимальный объем, с которым можно открыть позицию по USDCHF - 0,50 (0,51 уже не открывает Not enough money), что соответствует для депозита $1000 с плечом 1:50. Если бы плечо по USDCHF было 1:100, максимальный объем бы составил 1.00.
Вы попробуйте у себя в терминале на $1000 открыть по USDCHF позицию 1.00 лотом или чуть меньше 0.95. Если плечо указанное в советнике соответствует плечу для USDCHF, позиция, разумеется, будет открыта.
Пока я вижу, что советник показывает плечо на счете, но не для выбранного инструмента.
Он выдает то, что ему выдает МТ. У них настройки неправильные. Вот и весь ответ.
Открываешь демо-счет, указываешь плечо 1:100, а выдает маржу на 1 лот 200 баксов. А это говорит, что реальное плечо по инструменту как бы 1:500. Но когда открываешь позу в 0.5 лот указывает маржу в терминале 1000, что соответствует плечу 1:50. Долбите поддержку, чтобы обновили настройки. У них с этим, насколько я понял проблемы, причем, систематические по тех.
части.
Их калькулятор выдает тоже самое, что и мой код. Так что, здесь никто не поможет кроме грамотных и ответственных спецов, которые будут своевременно менять настройки в МТ.