Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вы же понимаете, что дело не в коде, тут умеющих пересчитывать - все. Но Вы ведь добавили в список особенностей еще и волатильность, влияние которой выявили фактически. Дальше в лес, больше дров. Как ее-то учитывать? Дело видится совсем безнадежным...
Вообще не понимаю о чем Вы
Это же все описывается в торговых условиях, собственно в правилах торговли
Явление обыденное по существу
Соответственно расчет разный
Но вопрос же решаемый
Как учитывать - предыдущий пост.Вообще не понимаю о чем Вы
Это же все описывается в торговых условиях, собственно в правилах торговли
Явление обыденное по существу
Соответственно расчет разный
Но вопрос же решаемый
Попробую объяснить. Алгоритм такой: ведется наблюдение за несколькими десятками символов в нескольких десятках ДЦ. С каким-то шагом делаются оценки, назову их для простоты ожидаемой прибыльностью сделки на отнимаемую ей маржу. Она разная для каждой пары (символ, ДЦ). В том числе не только на момент открытия сделки. Чтобы выбрать те символ и ДЦ, где будем открывать сделку, требуется сравнить этот показатель. Для этого выбора необходима оценка плеча, в каких границах оно будет в ожидаемый период до закрытия сделки. Ведь придется эту сумму резервировать.
Это программа-максимум. Пока что я даже не знаю, можно ли брать за основу оценки требуемой маржи OrderCalcMargin(). Пусть это лишь маржа для текущего момента. Вы сказали, что с изменением волатильности плечо меняется. Значит, придется собирать статистику - в каких диапазонах меняется в каждом из ДЦ по каждому символу. Или же удастся обнаружить приемлемые диапазоны этих колебаний. Хуже всего будет, если выяснится, что плечо меняется непредсказуемым образом...
Мой вопрос "учитываются ли в функциях OrderCheck() или OrderCalcMargin() указанные в спецификации особенности кредитного плеча" - начальный в этом подходе.Попробую объяснить. Алгоритм такой: ведется наблюдение за несколькими десятками символов в нескольких десятках ДЦ. С каким-то шагом делаются оценки, назову их для простоты ожидаемой прибыльностью сделки на отнимаемую ей маржу. Она разная для каждой пары (символ, ДЦ). В том числе не только на момент открытия сделки. Чтобы выбрать те символ и ДЦ, где будем открывать сделку, требуется сравнить этот показатель. Для этого выбора необходима оценка плеча, в каких границах оно будет в ожидаемый период до закрытия сделки. Ведь придется эту сумму резервировать.
Это программа-максимум. Пока что я даже не знаю, можно ли брать за основу оценки требуемой маржи OrderCalcMargin(). Пусть это лишь маржа для текущего момента. Вы сказали, что с изменением волатильности плечо меняется. Значит, придется собирать статистику - в каких диапазонах меняется в каждом из ДЦ по каждому символу. Или же удастся обнаружить приемлемые диапазоны этих колебаний. Хуже всего будет, если выяснится, что плечо меняется непредсказуемым образом...
Последний раз пишу:
прочитайте торговые условия у конкретного ДЦ и никакой статистики Вам не нужно будет.
Последний раз пишу:
читайте торговые условия у конкретного ДЦ и никакой статистики Вам не нужно будет.
//Мой вопрос "учитываются ли в функциях OrderCheck() или OrderCalcMargin() указанные в спецификации особенности кредитного плеча" - начальный в этом подходе.
текущие
Вы ни разу не видели, когда приходит письмо на почту с уведомлением о снижении плеча, и факторов может быть много, это не только на выборы в странах. Так-же может письмо и не придти - плечо меняют на "лету" на своё усмотрение, могут со 100 установить 20, и всего на несколько часов
Вы ни разу не видели, когда приходит письмо на почту с уведомлением о снижении плеча, и факторов может быть много, это не только на выборы в странах. Так-же может письмо и не придти - плечо меняют на "лету" на своё усмотрение, могут со 100 установить 20, и всего на несколько часов
Виталий, я написал уже алгоритм отслеживания на предыдущей, сам таким пользовался, ибо плечо имел 1:2000
В торговых условиях конкретно указывают пределы изменения плеча, условия, время, при каких условиях вообще не меняют и прочее
На лету тоже меняют, поэтому и отслеживал
Мой вопрос "учитываются ли в функциях OrderCheck() или OrderCalcMargin() указанные в спецификации особенности кредитного плеча" - начальный в этом подходе.
Простите, Вашими словами:
" дело не в коде, тут умеющих пересчитывать - все"
Скорее всего Вы и себя приписали ко всем.
Считайте и все будетА может быть, нет в терминале нужных сведений?
Стал проверять, всякий ли раз терминал отправляет запрос на сервер, или же он проверяет достаточность средств. Из нескольких ДЦ на MT5 нашел лишь один, который в случае нехватки средств протоколирует запросы в две строки, указывая два момента времени. Может быть, потому, что из MT5 это терминал один подключен к реальному счету, остальные MT5 у меня демо. Журнал для 6 ручных попыток открытия сделки:
2018.07.03 04:59:35.231 Trades '3038119': market buy 1.26 EURUSD.m
2018.07.03 04:59:35.331 Trades '3038119': failed market buy 1.26 EURUSD.m [No money]
2018.07.03 05:00:51.667 Trades '3038119': market buy 1.26 EURUSD.m
2018.07.03 05:00:51.747 Trades '3038119': failed market buy 1.26 EURUSD.m [No money]
2018.07.03 05:00:55.001 Trades '3038119': market buy 1.26 EURUSD.m
2018.07.03 05:00:55.091 Trades '3038119': failed market buy 1.26 EURUSD.m [No money]
2018.07.03 05:01:00.008 Trades '3038119': market sell 1.26 EURUSD.m
2018.07.03 05:01:00.091 Trades '3038119': failed market sell 1.26 EURUSD.m [No money]
2018.07.03 05:01:02.911 Trades '3038119': market sell 1.26 EURUSD.m
2018.07.03 05:01:03.007 Trades '3038119': failed market sell 1.26 EURUSD.m [No money]
2018.07.03 05:01:05.952 Trades '3038119': market sell 1.26 EURUSD.m
2018.07.03 05:01:06.035 Trades '3038119': failed market sell 1.26 EURUSD.m [No money]
Промежутки времени между строкой с получением запроса и строкой с ответом No money сервер показал такие (в миллисекундах): 100 80 90 83 96 87.
При этом показываемый в терминале пинг до сервера 73.56 мс. Зачем терминалу ждать 80 и больше мс, прежде чем решить, что средств недостаточно? Очень похоже, что он все запросы просто отсылает серверу, не проверяя достаточность средств. Почему? Вижу одну естественную причину - в терминале нет нужной для этой проверки информации.
А я-то был всегда уверен, что сообщение "Недостаточно денег..." дает сам терминал, что это не просто передача решений сервера.
Кажется, точнее всех ответил на мой вопрос Dennis Kirichenko https://www.mql5.com/ru/forum/261955/page4#comment_7949343
Renat Akhtyamov, а каким способом Вы предлагали в https://www.mql5.com/ru/forum/261955/page2#comment_7945930 "Запросить у серевера информацию по марже"? Пусть это будет отнимать даже секунду, ладно, но какой запрос к серверу имелся в виду? Неужели просто попытка открыть предполагаемую сделку, для которой и делается предварительная оценка маржи?
А может быть, нет в терминале нужных сведений?
Стал проверять, всякий ли раз терминал отправляет запрос на сервер, или же он проверяет достаточность средств. Из нескольких ДЦ на MT5 нашел лишь один, который в случае нехватки средств протоколирует запросы в две строки, указывая два момента времени. Может быть, потому, что из MT5 это терминал один подключен к реальному счету, остальные MT5 у меня демо. Журнал для 6 ручных попыток открытия сделки:
2018.07.03 04:59:35.231 Trades '3038119': market buy 1.26 EURUSD.m
2018.07.03 04:59:35.331 Trades '3038119': failed market buy 1.26 EURUSD.m [No money]
2018.07.03 05:00:51.667 Trades '3038119': market buy 1.26 EURUSD.m
2018.07.03 05:00:51.747 Trades '3038119': failed market buy 1.26 EURUSD.m [No money]
2018.07.03 05:00:55.001 Trades '3038119': market buy 1.26 EURUSD.m
2018.07.03 05:00:55.091 Trades '3038119': failed market buy 1.26 EURUSD.m [No money]
2018.07.03 05:01:00.008 Trades '3038119': market sell 1.26 EURUSD.m
2018.07.03 05:01:00.091 Trades '3038119': failed market sell 1.26 EURUSD.m [No money]
2018.07.03 05:01:02.911 Trades '3038119': market sell 1.26 EURUSD.m
2018.07.03 05:01:03.007 Trades '3038119': failed market sell 1.26 EURUSD.m [No money]
2018.07.03 05:01:05.952 Trades '3038119': market sell 1.26 EURUSD.m
2018.07.03 05:01:06.035 Trades '3038119': failed market sell 1.26 EURUSD.m [No money]
Промежутки времени между строкой с получением запроса и строкой с ответом No money сервер показал такие (в миллисекундах): 100 80 90 83 96 87.
При этом показываемый в терминале пинг до сервера 73.56 мс. Зачем терминалу ждать 80 и больше мс, прежде чем решить, что средств недостаточно? Очень похоже, что он все запросы просто отсылает серверу, не проверяя достаточность средств. Почему? Вижу одну естественную причину - в терминале нет нужной для этой проверки информации.
А я-то был всегда уверен, что сообщение "Недостаточно денег..." дает сам терминал, что это не просто передача решений сервера.
Кажется, точнее всех ответил на мой вопрос Dennis Kirichenko https://www.mql5.com/ru/forum/261955/page4#comment_7949343
Renat Akhtyamov, а каким способом Вы предлагали в https://www.mql5.com/ru/forum/261955/page2#comment_7945930 "Запросить у серевера информацию по марже"? Пусть это будет отнимать даже секунду, ладно, но какой запрос к серверу имелся в виду? Неужели просто попытка открыть предполагаемую сделку, для которой и делается предварительная оценка маржи?
Я конечно сильно понимаю Вас
Сам в начале пути простые вещи понимал не с первого раза
В очередной раз, вот маржа за 1 лот на продажу
OrderCalcMargin(ORDER_TYPE_SELL,_Symbol,1,BID,Mgn)
а вот на покупку
OrderCalcMargin(ORDER_TYPE_BUY,_Symbol,1,ASK,Mgn)
Плечо - это коэффициент к ней, не более
к=100/плечо
примерно так
А Ваш журнал Вам сообщает - денег нет, бесплатно открыть не могу
На демо-деньги можно открыть ордер. Однако у Вас нет и демо денег, насколько я понимаю.
Баланс равен нулю, правда?ForexClub.
Проверил у них маржу относительно такой лотности с помощью ::OrderCalcMargin(). Реальный счёт, плечо 1:500.
Получилось, что плечо не меняется при росте торгового объёма, что не соответствует Спецификации.