Ответить
30.06.2016, 05:44
Аватар для Retrade
Retrade Retrade вне форума Интересующийся
Регистрация: 07.10.2014 / Сообщений: 25
Поблагодарили 1 раз в 1 сообщении / Репутация: 2

По умолчанию Расчет плеча без AccountLaverage для разных инструментов

Здравствуйте. Как расчитать кредитное плечо по выбранному инструменту, в случае, если брокер изменил плечо для некоторых инструментов.

Например, AccountLaverage выдает по всем инструментам плечо 500, а по GBPUSD брокер снизил до 1:50. Как узнать это плечо расчетной формулой?
30.06.2016, 08:55
Аватар для Cemen4yk1
Cemen4yk1 Cemen4yk1 на форуме Местный житель
Регистрация: 18.09.2014 / Сообщений: 235
Поблагодарили 254 раз(а) / Репутация: 255
Здравствуйте. Как расчитать кредитное плечо по выбранному инструменту, в случае, если брокер изменил плечо для некоторых инструментов.

Например, AccountLaverage выдает по всем инструментам плечо 500, а по GBPUSD брокер снизил до 1:50. Как узнать это плечо расчетной формулой?
вроде они маржинальные требования увеличивали, а не плечо снижали, например некоторые меняли способ расчёта маржи, и вместо например способа расчёта "Forex" можно было увидеть "CFD" по фунту и евро, маржи такой способ расчёта жрёт в 4 раза больше при том же плече

https://www.mql5.com/ru/market/product/20691
01.07.2016, 17:05
Аватар для Retrade
Retrade Retrade вне форума Интересующийся
Регистрация: 07.10.2014 / Сообщений: 25
Поблагодарили 1 раз в 1 сообщении / Репутация: 2
Цитата:
вроде они маржинальные требования увеличивали, а не плечо снижали, например некоторые меняли способ расчёта маржи, и вместо например способа расчёта "Forex" можно было увидеть "CFD" по фунту и евро, маржи такой способ расчёта жрёт в 4 раза больше при том же плече
Спасибо за наводку, но MODE_MARGINCALCMODE - Способ расчета залоговых средств. 0 - Forex; 1 - CFD; 2 - Futures; 3 - CFD на индексы показывает 0 - Forex.
02.07.2016, 06:10
Аватар для AlexeyVik
AlexeyVik AlexeyVik на форуме Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,660
Поблагодарили 3,789 раз(а) / Репутация: 3781
Чтобы решить эту задачу надо вспомнить что такое кредитное плечо и формулу расчёта маржи с учётом плеча.
Хотел словами расписать, но нихрена не получилось. Надеюсь из кода сам поймёшь.

Код:
  double lot = 0.1;
  double accountFreeMargin = AccountFreeMargin();
  double marginCheck = AccountFreeMarginCheck(_Symbol, OP_BUY, lot);
  double margin = accountFreeMargin-marginCheck;
  double CONTRACT_SIZE = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_CONTRACT_SIZE);
  double rateContract = Ask*CONTRACT_SIZE*lot;
  int symbolLeverage = (int)round(rateContract/margin);
02.07.2016, 11:23
Аватар для Retrade
Retrade Retrade вне форума Интересующийся
Регистрация: 07.10.2014 / Сообщений: 25
Поблагодарили 1 раз в 1 сообщении / Репутация: 2
Чтобы решить эту задачу надо вспомнить что такое кредитное плечо и формулу расчёта маржи с учётом плеча.
Хотел словами расписать, но нихрена не получилось. Надеюсь из кода сам поймёшь.
То, что ты словами расписал, я понял, а из кода нихрена .

Еще не проверял, но такой расчет возможен при открытой позиции, в случае твоего кода OP_BUY.

Мне же нужно, чтобы выводилась информация о плече еще до открытия позиции. Или чтоб выводился параметр, который свидетельствует о том, что плечо занижено (или маржа увеличена).

Последний раз редактировалось Retrade; 02.07.2016 в 11:28.
02.07.2016, 13:32
Аватар для AlexeyVik
AlexeyVik AlexeyVik на форуме Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,660
Поблагодарили 3,789 раз(а) / Репутация: 3781
То, что ты словами расписал, я понял, а из кода нихрена .

Еще не проверял, но такой расчет возможен при открытой позиции, в случае твоего кода OP_BUY.

Мне же нужно, чтобы выводилась информация о плече еще до открытия позиции. Или чтоб выводился параметр, который свидетельствует о том, что плечо занижено (или маржа увеличена).
Ну тогда внимательно прочти документацию по всем применённым функциям и тогда поймёшь что это то что ты хотел. Где-же ты увидел открытие ордера??? Именно перед открытием ордера считается какое плечо использует указанный инструмент.
Начни с AccauntFreeMarginChek()
Цитата:
Возвращаемое значение
Размер свободных средств, которые останутся после открытия указанного ордера по текущей цене на текущем счете.
Именно останутся, а не остались...
04.07.2016, 05:47
Аватар для Retrade
Retrade Retrade вне форума Интересующийся
Регистрация: 07.10.2014 / Сообщений: 25
Поблагодарили 1 раз в 1 сообщении / Репутация: 2
К сожалению AccountFreeMarginCheck в индикаторе выдает ошибку: FreeMarginCheck function cannot be called from a custom indicator, а мне расчет для индикатора нужен.
25.11.2016, 14:44
Аватар для moneyinnetwork
moneyinnetwork moneyinnetwork вне форума Новичок форума
Регистрация: 22.09.2011 / Адрес: Россия щедрая душа / Сообщений: 32
Поблагодарили 4 раз(а) / Репутация: 5
На одном из форумов уже отвечал на Ваш же вопрос. Отвечу и здесь.
Здравствуйте. Вопрос нужный задали. Особенно важный для тех, кто бездумно использует роботов, и не учитывает, что функция 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)); } 

Последний раз редактировалось NSerega; 25.11.2016 в 17:37.
25.11.2016, 18:55
Аватар для Retrade
Retrade Retrade вне форума Интересующийся
Регистрация: 07.10.2014 / Сообщений: 25
Поблагодарили 1 раз в 1 сообщении / Репутация: 2
Сообщение от: moneyinnetwork
На одном из форумов уже отвечал на Ваш же вопрос. Отвечу и здесь...
Спасибо, не могли бы вы выложить рабочий файл mq4, не удается запустить из вашего кода на графике.
25.11.2016, 19:02
Аватар для moneyinnetwork
moneyinnetwork moneyinnetwork вне форума Новичок форума
Регистрация: 22.09.2011 / Адрес: Россия щедрая душа / Сообщений: 32
Поблагодарили 4 раз(а) / Репутация: 5
Да, попробую вложить.
28.11.2016, 12:27
Аватар для Retrade
Retrade Retrade вне форума Интересующийся
Регистрация: 07.10.2014 / Сообщений: 25
Поблагодарили 1 раз в 1 сообщении / Репутация: 2
Еще раз спасибо moneyinnetwork. Как раз то, что мне было нужно и работает корректно.
07.12.2016, 09:16
Аватар для Retrade
Retrade Retrade вне форума Интересующийся
Регистрация: 07.10.2014 / Сообщений: 25
Поблагодарили 1 раз в 1 сообщении / Репутация: 2
Еще раз спасибо moneyinnetwork. Как раз то, что мне было нужно и работает корректно.
Поспешил я с выводами. По паре USDCHF советник показывает реальное плечо 1:500, а по факту 1:50. Причем, пока не попытаешься открыть позицию или не посмотришь маржинальные требования по инструменту на сайте брокера, об этом не узнаешь. Так что вопрос остается.

Последний раз редактировалось Retrade; 07.12.2016 в 09:31.
07.12.2016, 16:43
Аватар для moneyinnetwork
moneyinnetwork moneyinnetwork вне форума Новичок форума
Регистрация: 22.09.2011 / Адрес: Россия щедрая душа / Сообщений: 32
Поблагодарили 4 раз(а) / Репутация: 5
Поспешил я с выводами. По паре USDCHF советник показывает реальное плечо 1:500, а по факту 1:50. Причем, пока не попытаешься открыть позицию или не посмотришь маржинальные требования по инструменту на сайте брокера, об этом не узнаешь. Так что вопрос остается.
Что хоть за брокер? Сделайте тогда парсер с сайта что ли, чтобы располагать точными данными. Или перед открытием ордеров делать проверку на достаточность средств.

Последний раз редактировалось moneyinnetwork; 07.12.2016 в 17:08.
07.12.2016, 17:30
Аватар для Retrade
Retrade Retrade вне форума Интересующийся
Регистрация: 07.10.2014 / Сообщений: 25
Поблагодарили 1 раз в 1 сообщении / Репутация: 2
Брокер GKFX _http://www.gkfx.ru/trade_specs/margin_requirements.html , средств для работы с плечом 1:500 хватает точно.
07.12.2016, 18:16
Аватар для moneyinnetwork
moneyinnetwork moneyinnetwork вне форума Новичок форума
Регистрация: 22.09.2011 / Адрес: Россия щедрая душа / Сообщений: 32
Поблагодарили 4 раз(а) / Репутация: 5
Брокер GKFX
Странно, мне сейчас у "ПЛАЧ" сова показывает 1:100 для USDCHF.

Последний раз редактировалось moneyinnetwork; 07.12.2016 в 18:20.
07.12.2016, 18:35
Аватар для moneyinnetwork
moneyinnetwork moneyinnetwork вне форума Новичок форума
Регистрация: 22.09.2011 / Адрес: Россия щедрая душа / Сообщений: 32
Поблагодарили 4 раз(а) / Репутация: 5
Буду ковырять. Тема более интересная, чем кажется с первого взгляда.
07.12.2016, 18:41
Аватар для Retrade
Retrade Retrade вне форума Интересующийся
Регистрация: 07.10.2014 / Сообщений: 25
Поблагодарили 1 раз в 1 сообщении / Репутация: 2
У меня показывает 500, но открыть позицию разумеется можно объемом, не превышающим объем при плече 50. Было бы не плохо добиться положительного результата, многие оценили бы возможность знать реальное кредитное плечо по инструменту.
07.12.2016, 19:07
Аватар для moneyinnetwork
moneyinnetwork moneyinnetwork вне форума Новичок форума
Регистрация: 22.09.2011 / Адрес: Россия щедрая душа / Сообщений: 32
Поблагодарили 4 раз(а) / Репутация: 5
Ну, вместо слов, как говорится:

Цитата:
Влад | 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, как и ваша сова
так что тут уж как кому удобнее

Влад | 22:05
Спасибо. Разобрались.
Я вот только не понял, почему у Вас 500 показывает, а у меня 100. Вы код случайно не модифицировали?

Сообщение от: moneyinnetwork
Я вот только не понял, почему у Вас 500 показывает, а у меня 100. Вы код случайно не модифицировали?
Ага. В общем у меня такая мысль, что он Вам правильно показывает.
У Вас же плечо по счету 500, а у меня плечо по счету 100. МТ для наших счетов и возвращает с учетом реального плеча размер залога по конкретному инструменту. Т.е. в Вашем случае залог меньше в 5 раз, чем в моем. Отсюда и расчет разный. Просто сейчас сняты, видимо, маржинальные ограничения.
Т.е. все работает правильно. В Вашем случае маржа меньше в 5 раз (200 долларов на 1 лот), соответственно, реальное плечо больше в 5 раз, из чего и идет расчет. Как-то так.

Последний раз редактировалось moneyinnetwork; 07.12.2016 в 19:48. Причина: добавил сообщение
08.12.2016, 06:56
Аватар для Retrade
Retrade Retrade вне форума Интересующийся
Регистрация: 07.10.2014 / Сообщений: 25
Поблагодарили 1 раз в 1 сообщении / Репутация: 2
Код ни в коем случае не менял. Все проверяю на демке. Депо $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, позиция, разумеется, будет открыта.

Пока я вижу, что советник показывает плечо на счете, но не для выбранного инструмента.
08.12.2016, 09:08
Аватар для moneyinnetwork
moneyinnetwork moneyinnetwork вне форума Новичок форума
Регистрация: 22.09.2011 / Адрес: Россия щедрая душа / Сообщений: 32
Поблагодарили 4 раз(а) / Репутация: 5
Пока я вижу, что советник показывает плечо на счете, но не для выбранного инструмента.
Он выдает то, что ему выдает МТ. У них настройки неправильные. Вот и весь ответ.
Открываешь демо-счет, указываешь плечо 1:100, а выдает маржу на 1 лот 200 баксов. А это говорит, что реальное плечо по инструменту как бы 1:500. Но когда открываешь позу в 0.5 лот указывает маржу в терминале 1000, что соответствует плечу 1:50. Долбите поддержку, чтобы обновили настройки. У них с этим, насколько я понял проблемы, причем, систематические по тех.
части.
Их калькулятор выдает тоже самое, что и мой код. Так что, здесь никто не поможет кроме грамотных и ответственных спецов, которые будут своевременно менять настройки в МТ.

Последний раз редактировалось moneyinnetwork; 08.12.2016 в 09:18.
Ответить


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.



Текущее время: 20:24. Часовой пояс GMT.


Перевод: zCarot
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO