Скачать MetaTrader 5

ORDER_POSITION_ID

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Mikhail Filimonov
5931
Mikhail Filimonov  

Добрый день!

Кто-нибудь использует

 if ( OrderSelect( ticket ) )
 {
  long pos_id = long( OrderGetInteger( ORDER_POSITION_ID ) );

  if ( pos_id > 0 )
  {
  }
}

 У меня, при частично исполненом ордере pos_id всегда = 0

Почему? 

Из справки MQ:

ORDER_POSITION_ID

Идентификатор позиции, который ставится на ордере при его исполнении. Каждый исполненный ордер порождает сделку, которая открывает новую или изменяет уже существующую позицию. Идентификатор этой позиции и устанавливается исполненному ордеру в этот момент.

Mikhail Filimonov
5931
Mikhail Filimonov  
Никто не знает?
Yury Kulikov
37678
Yury Kulikov  
Я использую :)  в качестве magic, когда необходимо привязать ордера к позиции.
Mikhail Filimonov
5931
Mikhail Filimonov  
Yurich:
Я использую :)  в качестве magic, когда необходимо привязать ордера к позиции.

Так почему же у меня 0?

Ведь если бы в справке было написано:

Идентификатор позиции, который ставится на ордере при его исполнении.

Тогда может быть и должен быть ноль.

Но там написано:

Каждый исполненный ордер порождает сделку, которая открывает новую или изменяет уже существующую позицию. Идентификатор этой позиции и устанавливается исполненному ордеру в этот момент.

А частично исполненный ордер то же порождает сделку. 

Как же понимать? 

Yury Kulikov
37678
Yury Kulikov  
Mikalas:

Так почему же у меня 0?

Это в сервисдеск.

Я отвечал на вопрос  "Кто-нибудь использует" и был неточен, я использую идентификатор позиции.

Mikhail Filimonov
5931
Mikhail Filimonov  
Yurich:

Это в сервисдеск.

Я отвечал на вопрос  "Кто-нибудь использует" и был неточен, я использую идентификатор позиции.

Понятно, спасибо.

Но это и есть идентификатор позиции, но только у ордера. 

Sergey Chalyshev
5232
Sergey Chalyshev  
Mikalas:

 У меня, при частично исполненом ордере pos_id всегда = 0

Почему? 

Я не использую pos_id. наверно потому что не понимаю для чего это.

Интересно, какой ID должен быть у ордера, если он закрыл предидущую позицию и открыл новую (переворот)?

p.s. По идее должна быть только одна гражданская торговая позиция (без разницы в какую сторону: buy, sel, hedge). Если кажется что нет позиции, то это времено.) 

Mikhail Filimonov
5931
Mikhail Filimonov  
Serj_Che:

Я не использую pos_id. наверно потому что не понимаю для чего это.

Интересно, какой ID должен быть у ордера, если он закрыл предидущую позицию и открыл новую (переворот)?

p.s. По идее должна быть только одна гражданская торговая позиция (без разницы в какую сторону: buy, sel, hedge). Если кажется что нет позиции, то это времено.) 

Незарбериха возникает потому, что в справке даётся неоднозначное описание,

которое можно трактовать по-разному. Ведь, частично исполненный ордер тоже пораждает

сделку, следовательно ордеру должен присвоиться ORDER_POSITION_ID  

Rashid Umarov
Админ
12607
Rashid Umarov  
Mikalas:

Добрый день!

Кто-нибудь использует

 У меня, при частично исполненом ордере pos_id всегда = 0

Почему?

Может потому, что ORDER_POSITION_ID запрашивается сразу же после исполнения ордера, когда торговый сервер еще не успел прислать информацию о совершенной транзакции.

Почитайте статью Торговые события в MetaTrader 5


Sergey Chalyshev
5232
Sergey Chalyshev  
Rosh:

Может потому, что ORDER_POSITION_ID запрашивается сразу же после исполнения ордера, когда торговый сервер еще не успел прислать информацию о совершенной транзакции.

Почитайте статью Торговые события в MetaTrader 5


Вы не уверены в своем ответе?
Sergey Gridnev
5288
Sergey Gridnev  
Rosh:

Может потому, что ORDER_POSITION_ID запрашивается сразу же после исполнения ордера, когда торговый сервер еще не успел прислать информацию о совершенной транзакции.

Почитайте статью Торговые события в MetaTrader 5


Не понятно. Если есть ticket, то транзакция совершена и ответ от сервера получен.

Как это, ticket есть, а сервер не успел прислать ответ?