Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1099
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Благодарю!
Да это и искал решение если не получилось с помощью СБ в "пять строк" написать
Но сколько я понял, что одной СБ CTrade не получится решить мою задачу? И нужно было еще и CPositionInfo использовать? - если хочу по нескольким ТФ одновременно 9 позиций сопровождать?
ЗЫ: сижу со смарт ТВ справку MQL5 листаю - довольно неплохо описаны торговые функции, использование СБ под вопросом.... примитивные стратегии вроде имеет смысл использовать СБ, чуть сложнее - функционал недостаточен или не очевидное использование, возможно нужна практика - попробую еще "покрутить" СБ
Еще раз Спасибо!
Для "открыть-закрыть позицию" в тестере - норм, ну или для учебных кодов как замена. В остальном - своё делать нужно или наследоваться от CTrade для организации своего полноценного класса для проведения торговых операций с учётом различных нюансов.
В СБ есть гораздо более приятные вещи - вы о них знаете и используете.
Там нет ошибки, т.к. список сформирован через HistorySelectByPosition.
Да, упустил из виду, что это не полный список.
В СБ есть гораздо более приятные вещи - вы о них знаете и используете.
так вот эти приятные вещи и вводят в заблуждение! - была надежда, что за столько лет СБ разработчики вылизали и сделали ожидаемый функционал, а я просто юзвер который не сумел воспользоваться в 2 клика СБ, но оказалось, что не я юзвер - грусть-печаль в общем!!!
ЗЫ: справка MQL5 очень изощренно написана, сплошные ордера... а ведь говорили - пока не забудешь слово ордер, ты безнадежен!!!
так вот эти приятные вещи и вводят в заблуждение! - была надежда, что за столько лет СБ разработчики вылизали и сделали ожидаемый функционал, а я просто юзвер который не сумел воспользоваться в 2 клика СБ, но оказалось, что не я юзвер - грусть-печаль в общем!!!
ЗЫ: справка MQL5 очень изощренно написана, сплошные ордера... а ведь говорили - пока не забудешь слово ордер, ты безнадежен!!!
Тут всё просто. Ордер -> сделка -> позиция. В MQL5 от ордеров тоже никуда не деться - они есть, и с них всё начинается. Отсылаем торговый приказ на сервер (это и есть ордер), сервер его принимает/не принимает и возвращает код. Иногда - при неверном составлении запроса, ордер вообще не отправляется на сервер - его отправка блокируется на уровне терминала. После того, как ордер успешно отправлен на сервер и поставлен в очередь на исполнение, мы ожидаем срабатывание этого ордера (его исполнение, иными словами - сделка), в результате совершения сделки (срабатывания ордера - маркет-, или отложенного), образуется позиция (не всегда - на неттинге, и при условии наличия позиции в том же направлении, просто добавляется объём к существующей, если в обратном направлении, то в зависимости от объёма совершённой сделки, текущая позиция либо частично закрывается, либо закрывается, либо переворачивается)
У ордера тоже есть свой тикет. Как и у сделки и позиции. Но у позиции есть ещё и идентификатор. Идентификатор позиции всегда будет равен тикету самого первого её ордера - приказа на открытие этой позиции.
У рыночного ордера есть только тикет. А его свойство идентификатора позиции не заполнено пока ордер не сработал. Т.е., только у исторического ордера есть идентификатор позиции - он заполняется в момент совершения сделки - в момент срабатывания этого ордера. Если же это удалённый отложенный ордер, то его идентификатор позиции тоже не заполнен - не было по нему ни сделки, ни позиции соответственно.
У сделки есть тикет (её тикет), есть идентификатор ордера - в результате которого была совершена эта сделка, и есть идентификатор позиции - позиция, которая появилась в результате совершения этой сделки, либо позиция, которая была изменена в результате совершения этой сделки
У позиции есть тикет, который ей присваивается при открытии или изменении. Если позиция только открыта, то её тикет будет равен её идентификатору - уникальному номеру позиции, который не изменяется на протяжении всей жизни позиции. В то время как тикет у позиции может неоднократно изменяться и соответствовать тикету ордера - в результате срабатывания этого ордера появляется новая сделка, которая изменяет эту позицию - тикет этого ордера присваивается тикету позиции.
Если внимательно понаблюдать за всеми этими метаморфозами в позиции, то мы легко увидим поведение позиции в mql4 при её частичных закрытиях - там тоже меняется её тикет.
Если внимательно понаблюдать за всеми этими метаморфозами в позиции
Спасибо! Вот и наблюдаю второй день, но тут только практика нужна, вот за сегодня с СБ разобрался...ну в общем разобрался ;)
PS: хорошо объясняешь, однозначно талант!
Спасибо! Вот и наблюдаю второй день, но тут только практика нужна, вот за сегодня с СБ разобрался...ну в общем разобрался ;)
PS: хорошо объясняешь, однозначно талант!
Рад помочь ;)
..................
У ордера тоже есть свой тикет. Как и у сделки и позиции. Но у позиции есть ещё и идентификатор. Идентификатор позиции всегда будет равен тикету самого первого её ордера - приказа на открытие этой позиции.
У рыночного ордера есть только тикет. А его свойство идентификатора позиции не заполнено пока ордер не сработал. Т.е., только у исторического ордера есть идентификатор позиции - он заполняется в момент совершения сделки - в момент срабатывания этого ордера. Если же это удалённый отложенный ордер, то его идентификатор позиции тоже не заполнен - не было по нему ни сделки, ни позиции соответственно.
У сделки есть тикет (её тикет), есть идентификатор ордера - в результате которого была совершена эта сделка, и есть идентификатор позиции - позиция, которая появилась в результате совершения этой сделки, либо позиция, которая была изменена в результате совершения этой сделки
У позиции есть тикет, который ей присваивается при открытии или изменении. Если позиция только открыта, то её тикет будет равен её идентификатору - уникальному номеру позиции, который не изменяется на протяжении всей жизни позиции. В то время как тикет у позиции может неоднократно изменяться и соответствовать тикету ордера - в результате срабатывания этого ордера появляется новая сделка, которая изменяет эту позицию - тикет этого ордера присваивается тикету позиции.
Если внимательно понаблюдать за всеми этими метаморфозами в позиции, то мы легко увидим поведение позиции в mql4 при её частичных закрытиях - там тоже меняется её тикет.
Это получается, что несоответствие получалось из-за задержки превращения ордера в сделку - позицию? Даже в тестере?... Офигеть.
Значит, после выставления ордера ещё нужно убедиться, что позиция открылась... А сколько ждать нужно? Это нужно подвешивать сову до подтверждения всех превращений? Или как это вообще?
Это получается, что несоответствие получалось из-за задержки превращения ордера в сделку - позицию? Даже в тестере?... Офигеть.
Значит, после выставления ордера ещё нужно убедиться, что позиция открылась... А сколько ждать нужно? Это нужно подвешивать сову до подтверждения всех превращений? Или как это вообще?
Выставили торговый приказ (запомнили тикет сделки) и взвели флаг ожидания - как только в OnTradeTransaction получили гарантированное срабатывание - тип транзакции TRADE_TRANSACTION_DEAL_ADD - проверяем тикет сделки. Если всё сошлось - ладушки.
Это реальная жизнь - события могут приходить с различным интервалом, возможно обрывы связи ... Да куча всего может быть. Это реальность - нет жесткой цепочки.
Выставили торговый приказ (запомнили тикет сделки) и взвели флаг ожидания - как только в OnTradeTransaction получили гарантированное срабатывание - тип транзакции TRADE_TRANSACTION_DEAL_ADD - проверяем тикет сделки. Если всё сошлось - ладушки.
Это реальная жизнь - события могут приходить с различным интервалом, возможно обрывы связи ... Да куча всего может быть. Это реальность - нет жесткой цепочки.
Ну это же, по сути, подвешивание советника... Ждать пока придёт или не придёт подтверждение... Что то я прям растерялся... Как организовать это ожидание? Через while() ?
Ну это же, по сути, подвешивание советника... Ждать пока придёт или не придёт подтверждение... Что то я прям растерялся... Как организовать это ожидание? Через while() ?
Нет. Sleep и While запрещены категорически.