ORDER_POSITION_ID - страница 4

 
papaklass:

 У программистов есть правило - обсуждать код!

Если у Вас возникли проблемы с работой кода, то Вы ОБЯЗАНЫ выложить код, в котором Вы столкнулись с проблемой. В такой ситуации Вам, навярняка, найдутся желающие помочь. Вы же изобретаете что-то новое: пытаетесь обсудить проблему, с которой Вы столкнулись, "на пальцах" без кода.

Не удивлюсь, если в недалеком будущем, Ваши вопросы будут оставаться без ответов не только в сервисдеке, но и на форуме.

Попытайтесь сделать правильные выводы и не тупить. :) 

У меня нет проблем с работой кода!

Изначально я прашивал:

КТО ИСПОЛЬЗУЕТ СЛЕДУЮЩИЙ КОД:

long pos_id = long( OrderGetInteger( ORDER_POSITION_ID ) );

 Когда же вы научитесь читать вопрос?

 
Mikalas:

У меня нет проблем с работой кода!

Изначально я прашивал:

КТО ИСПОЛЬЗУЕТ СЛЕДУЮЩИЙ КОД:

 Когда же вы научитесь читать вопрос?

 

Вы также спросили:

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

Почему? 

 
Contender:

 

Вы также спросили:

Да, спросил, чтобы потом не задавать его человеку, который ИСПОЛЬЗУЕТ этот код. 

 
Mikalas:

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

Почему? 

Из справки MQ:

ORDER_POSITION_ID

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

Может это следствии того, что он (ордер) еще не полностью исполнен и возможна ситуация, когда этот ордер будет участвовать в формировании другой позиции.
 
Yurich:
Может это следствии того, что он (ордер) еще не полностью исполнен и возможна ситуация, когда этот ордер будет участвовать в формировании другой позиции.

Очень приятно общаться с вами, Yurich, добрый день!

Но дело в том, что свои эксперименты с  ORDER_POSITION_ID я провожу

на демо-сервере (никто не мешает трассировать программу).

И вызов функции

 

long GetOrderPosId( const ulong ticket )

происходит в "устоявшейся" ситуации. 

А озаботился я этим, с вашей подачи, про magic, ещё раз вам большое спасибо! 

Выделеные вами фразы мне понятны, но зачем тогда MQ написал: 

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

Это и смущает меня. 

Сделка -  ORDER_POSITION_ID, возможно я не прав, но нет ответа мз сервисдеск.

Если ордер, после его частичного исполнения, я просто сниму, то у него не будет ORDER_POSITION_ID? 

Идентификатор этой позиции и устанавливается исполненному ордеру в этот момент. 

 
Mikalas:

И вызов функции

происходит в "устоявшейся" ситуации. 

Вы запрашиваете id у размещенного, а не исполненного ордера. Исполненный ордер будет в истории.

 
Mikalas:


Если ордер, после его частичного исполнения, я просто сниму, то у него не будет ORDER_POSITION_ID? 

По идее, в истории должна присутствовать исполненная часть ордера. Или её там нет?

 

Я Вам вопрос задавал, который Вы не заметили: https://www.mql5.com/ru/forum/35432/page2#comment_1042916 

 
Yurich:

Вы запрашиваете id у размещенного, а не исполненного ордера. Исполненный ордер будет в истории.

Т.е ORDER_POSITION_ID для исторических данных?

Но в справке:

Свойства ордеров

Приказы на проведение торговых операций оформляются ордерами. Каждый ордер имеет множество свойств для чтения, информацию по ним можно получать с помощью функций OrderGet...() и HistoryOrderGet...(). 

 
Contender:

Вы же наблюдаете этот частично исполненный ордер. Где он? В списке торговых или в исполненных?

Ордер действующий.
 
Mikalas:
Т.е ORDER_POSITION_ID для исторических данных?
да