POSITION_TICKET != POSITION_IDENTIFIER
зная id позиции можно ли без перебора узнать тикет позиции?
Если позиция не результат переворота позиции в режиме неттинга, то можно.
Идентификатор позиции - это уникальное число, которое присваивается каждой вновь открытой позиции и не изменяется в течение всей ее жизни. Соответствует тикету ордера, которым была открыта позиция.
Идентификатор позиции указывается в каждом ордере (ORDER_POSITION_ID) и сделке (DEAL_POSITION_ID), которая ее открыла, изменила или закрыла. Используйте это свойство для поиска ордеров и сделок, связанных с позицией.
При развороте позиции в режиме неттинга (единой сделкой in/out) идентификатор позиции POSITION_IDENTIFIER не изменяется. Однако при этом POSITION_TICKET изменяется на тикет ордера, в результате которого произошел разворот. В режиме хеджинга разворот позиции не предусмотрен. | long |
Если позиция не результат переворота позиции в режиме неттинга, то можно.
Идентификатор позиции - это уникальное число, которое присваивается каждой вновь открытой позиции и не изменяется в течение всей ее жизни. Соответствует тикету ордера, которым была открыта позиция.
Идентификатор позиции указывается в каждом ордере (ORDER_POSITION_ID) и сделке (DEAL_POSITION_ID), которая ее открыла, изменила или закрыла. Используйте это свойство для поиска ордеров и сделок, связанных с позицией.
При развороте позиции в режиме неттинга (единой сделкой in/out) идентификатор позиции POSITION_IDENTIFIER не изменяется. Однако при этом POSITION_TICKET изменяется на тикет ордера, в результате которого произошел разворот. В режиме хеджинга разворот позиции не предусмотрен. | long |
Выделенное - ошибка.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Обсуждение статьи "В MetaTrader 5 добавлена хеджинговая система учета позиций"
fxsaber, 2018.01.17 18:45
Хронологически
- Отложенный ордер сработал частично - открылась позиция с Position_ID = Order_Ticket.
- Закрыли позицию руками.
- Остаток ордера исполнился - открылась позиция с Position_ID != Order_Ticket.
Чему будет равен итоговый ORDER_POSITION_ID и как, соответственно, отработает HistorySelectByPosition - еще тот вопрос.
Очевидно, что у одной (из двух) сделки открытия в ее ордере DEAL_ORDER будет DEAL_POSITION_ID != ORDER_POSITION_ID.
Так что на HistorySelectByPosition даже на Хедже закладываться точно не стоит.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Обсуждение статьи "В MetaTrader 5 добавлена хеджинговая система учета позиций"
fxsaber, 2018.01.25 10:14
- Показан пример торговой ситуации, на которую Андрей обратил внимание при прочтении данной статьи.
- HistorySelectByPosition может не выбрать ордер, который был причиной сделки.
- Ордер и сделка, которую он породил, могут быть с разными ID.
Речь про анализ истории даже ручной торговли, про написание ТС не говорим.
Например, хотим понять, как проскользила сделка.Выделенное - ошибка.
Поэтому и на хедже сабж случается. Разработчики не предусмотрели многие ситуации, чтобы можно было удобно их обрабатывать.Давайте по-порядку:
"Отложенный ордер сработал частично - открылась позиция с Position_ID = Order_Ticket." - Это всегда соответствует? Независимо от того что открыта только часть ордера?
Если "ДА" то всё в соответствии с документацией.
"Остаток ордера исполнился - открылась позиция с Position_ID != Order_Ticket." - А тикету какого ордера должно соответствовать? Тому, часть которого уже исполнена, или тому который остался после частичного исполнения? И с каким вы сравнивали?
Ситуация абсолютно неоднозначна. Несоответствие как вы себе представляете и как сделано разработчиками и описано в документации не говорит о том что сделано неправильно.
Чтобы удобно было обрабатывать не значит что должны быть функции к которым можно было-бы обращаться "Хочу, хочу, хочу"...
Давайте по-порядку:
"Отложенный ордер сработал частично - открылась позиция с Position_ID = Order_Ticket." - Это всегда соответствует? Независимо от того что открыта только часть ордера?
100% утверждать не возьмусь.
Если "ДА" то всё в соответствии с документацией.
"Остаток ордера исполнился - открылась позиция с Position_ID != Order_Ticket." - А тикету какого ордера должно соответствовать? Тому, часть которого уже исполнена, или тому который остался после частичного исполнения? И с каким вы сравнивали?
Тут два варианта
- Никакому тикету ордера поза не будет соответствовать, потому что поза с таким ID уже была.
- Будет равен тикету ордера, но тогда имеем несколько позиций с одинаковым ID. С соответствующими свистоплясками при анализе истории.
Ситуация абсолютно неоднозначна. Несоответствие как вы себе представляете и как сделано разработчиками и описано в документации не говорит о том что сделано неправильно.
Чтобы удобно было обрабатывать не значит что должны быть функции к которым можно было-бы обращаться "Хочу, хочу, хочу"...
Архитектурно не продумано, а не отсутствие каких-то функций.
100% утверждать не возьмусь.
Руководствуясь документацией, получается, что 100%
Тут два варианта
- Никакому тикету ордера поза не будет соответствовать, потому что поза с таким ID уже была.
- Будет равен тикету ордера, но тогда имеем несколько позиций с одинаковым ID. С соответствующими свистоплясками при анализе истории.
Тикет позиции может быть не равен тикету ордера, но две позиции с одинаковым ID нигде не оговорено. Я не проверял и вряд-ли стану проверять, но разве где-то запрещено иметь две позиции с разными тикетами и одинаковыми ID? Потому и спросил, "А тикету какого ордера должно соответствовать? Тому, часть которого уже исполнена, или тому который остался после частичного исполнения?"
В этом случае и надо проверить
- Тикет ордера.
- Тикет частично открытой позиции.
- ID частично открытой позиции.
- Тикет ордера остатка.
- Тикет открывшегося остатка.
- ID открывшегося остатка.
Если ID будет одинаковым, следовательно все ордера и сделки принадлежат одной заявке, или первоначально размещённому ордеру. А так просто утверждать, что не равны... Ну, не равны и что? Чему-то ведь должны быть равны... Просто надо понять логику соответствий тикетов и ID позиций.
По моей логике, ID всех ордеров, сделок и позиций должны быть одинаковыми при таком раскладе.
Заявка была на 10 лотов, исполнили только 6, чуть позже исполнили 4 ну и что? это ведь принадлежит одной заявке. Или сказать моей хотелке. Вот от этой хотелки и плясать-бы надо.
В этом случае и надо проверить
Проверяйте! Комментариев от разработчиков ноль. Вру, был один
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Обсуждение статьи "В MetaTrader 5 добавлена хеджинговая система учета позиций"
Rashid Umarov, 2018.01.25 09:48
По-моему, вы придумываете проблемы на ровном месте. Ну открылась (на хеджевом счете) вторая позиция по остатку ордера с другим Position_ID. Допустим. Какая в этом проблема? Позиции то реально разные будут. HistorySelectByPosition тут не причем.
Хотите отлавливать все торговые операции четко по конкретному сигналу - ставьте им MagicNumber и самостоятельно раскручивайте цепочку. 99.99% трейдеров не поймут вашей кручины.
Думаю, что сами разработчики не в курсе, как у них на самом деле устроено.
Проверяйте! Комментариев от разработчиков ноль.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
POSITION_TICKET != POSITION_IDENTIFIER
Alexey Viktorov, 2018.02.12 11:13
Руководствуясь документацией, получается, что 100%
Тикет позиции может быть не равен тикету ордера, но две позиции с одинаковым ID нигде не оговорено. Я не проверял и вряд-ли стану проверять, но разве где-то запрещено иметь две позиции с разными тикетами и одинаковыми ID? Потому и спросил, "А тикету какого ордера должно соответствовать? Тому, часть которого уже исполнена, или тому который остался после частичного исполнения?"
fxsaber:
Думаю, что сами разработчики не в курсе, как у них на самом деле устроено.
Я думаю что Рашид не понял что чему не равно и что чему должно быть равно. Лично я тоже не понял что вы этим сказать хотели. Ну не равен ID тикету ордера остатка и что? А чему он равен? Или просто от фонаря назначен? Вы ведь не уточнили.
Я думаю что Рашид не понял что чему не равно и что чему должно быть равно. Лично я тоже не понял что вы этим сказать хотели. Ну не равен ID тикету ордера остатка и что? А чему он равен? Или просто от фонаря назначен? Вы ведь не уточнили.
Потрем лампу - @Rashid Umarov.

- Бесплатные приложения для трейдинга
- Форексный VPS бесплатно на 24 часа
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
зная id позиции можно ли без перебора узнать тикет позиции?