Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1098
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
..................
У ордера тоже есть свой тикет. Как и у сделки и позиции. Но у позиции есть ещё и идентификатор. Идентификатор позиции всегда будет равен тикету самого первого её ордера - приказа на открытие этой позиции.
У рыночного ордера есть только тикет. А его свойство идентификатора позиции не заполнено пока ордер не сработал. Т.е., только у исторического ордера есть идентификатор позиции - он заполняется в момент совершения сделки - в момент срабатывания этого ордера. Если же это удалённый отложенный ордер, то его идентификатор позиции тоже не заполнен - не было по нему ни сделки, ни позиции соответственно.
У сделки есть тикет (её тикет), есть идентификатор ордера - в результате которого была совершена эта сделка, и есть идентификатор позиции - позиция, которая появилась в результате совершения этой сделки, либо позиция, которая была изменена в результате совершения этой сделки
У позиции есть тикет, который ей присваивается при открытии или изменении. Если позиция только открыта, то её тикет будет равен её идентификатору - уникальному номеру позиции, который не изменяется на протяжении всей жизни позиции. В то время как тикет у позиции может неоднократно изменяться и соответствовать тикету ордера - в результате срабатывания этого ордера появляется новая сделка, которая изменяет эту позицию - тикет этого ордера присваивается тикету позиции.
Если внимательно понаблюдать за всеми этими метаморфозами в позиции, то мы легко увидим поведение позиции в mql4 при её частичных закрытиях - там тоже меняется её тикет.
Это получается, что несоответствие получалось из-за задержки превращения ордера в сделку - позицию? Даже в тестере?... Офигеть.
Значит, после выставления ордера ещё нужно убедиться, что позиция открылась... А сколько ждать нужно? Это нужно подвешивать сову до подтверждения всех превращений? Или как это вообще?
Это получается, что несоответствие получалось из-за задержки превращения ордера в сделку - позицию? Даже в тестере?... Офигеть.
Значит, после выставления ордера ещё нужно убедиться, что позиция открылась... А сколько ждать нужно? Это нужно подвешивать сову до подтверждения всех превращений? Или как это вообще?
Выставили торговый приказ (запомнили тикет сделки) и взвели флаг ожидания - как только в OnTradeTransaction получили гарантированное срабатывание - тип транзакции TRADE_TRANSACTION_DEAL_ADD - проверяем тикет сделки. Если всё сошлось - ладушки.
Это реальная жизнь - события могут приходить с различным интервалом, возможно обрывы связи ... Да куча всего может быть. Это реальность - нет жесткой цепочки.
Выставили торговый приказ (запомнили тикет сделки) и взвели флаг ожидания - как только в OnTradeTransaction получили гарантированное срабатывание - тип транзакции TRADE_TRANSACTION_DEAL_ADD - проверяем тикет сделки. Если всё сошлось - ладушки.
Это реальная жизнь - события могут приходить с различным интервалом, возможно обрывы связи ... Да куча всего может быть. Это реальность - нет жесткой цепочки.
Ну это же, по сути, подвешивание советника... Ждать пока придёт или не придёт подтверждение... Что то я прям растерялся... Как организовать это ожидание? Через while() ?
Ну это же, по сути, подвешивание советника... Ждать пока придёт или не придёт подтверждение... Что то я прям растерялся... Как организовать это ожидание? Через while() ?
Нет. Sleep и While запрещены категорически.
Нет. Sleep и While запрещены категорически.
О как. А как?
Ну это же, по сути, подвешивание советника... Ждать пока придёт или не придёт подтверждение... Что то я прям растерялся... Как организовать это ожидание? Через while() ?
Ничего подвешивать никуда не нужно.
В MQL4 некоторые шаги открытия позиции просто сокрыты от пользователя в отличие от MQL5.
В MQL4 вы
В MQL5 вы
Это вкратце если. Таким образом - в MQL4 некоторые шаги от вас сокрыты, и терминал после отправки торгового запроса на сервер впадает в ожидание ответа - ожидание, о котором вы говорите. Таким образом - эта команда всегда заставляет вас ожидать результат торгового запроса и тормозит все ваши действия - больше вы ничего не сможете делать после отправки запроса, пока не дождётесь ответа от сервера.
В MQL5 вы можете ничего не ожидать, а продолжать выполнять другие действия, одновременно контролируя результат вашего торгового запроса. Это гораздо выгоднее, чем в MQL4. Главное - с умом пользоваться.
Это гораздо выгоднее, чем в MQL4. Главное - с умом пользоваться.
В MT4 часто ощущаете отсутствие этой выгоды?
Граждане - не сорим в ветке. Читаем название: MQL5.
А сравнивать возможности можно?
В MT4 часто ощущаете отсутствие этой выгоды?
Да, бывало.