MODE_HISTORY и OrderClosePrice() Вопрос к разработчикам

 

Господа есть такой код:

if(OrderSelect(secondticket,SELECT_BY_TICKET,MODE_HISTORY )==true)
           {
           if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)  
           {
                   if(OrderType()==OP_BUY && OrderClosePrice()>OrderOpenPrice()) flag=1; 
                   if(OrderType()==OP_SELL && OrderClosePrice()<OrderOpenPrice())Print(OrderClosePrice());
                
                 if(flag==1)
                  { В теле этого IF закрываются все сделки!

Я все никак не мог понять, почему у меня закрываются сделки. Принтанул OrderClosePrice () оказалось, что он берет текущее значение цены когда ордер еще не закрылся тоесть находится в (MODE_TRADES). Тогда вопрос почему это происходит если я выбераю ордер по MODE_HISTORY? Или я чего-то не понимаю?


В отличие от OrderClosePrice (), OrderCloseTime() работает отлично. Если ордер еще не закрыт то действительно 0, а если он закрылся то >0.


Если добавить в код ее то все работает, но согласитесь это не логично:

 if(OrderSelect(secondticket,SELECT_BY_TICKET,MODE_HISTORY )==true)
           {
           if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)  
           {
                   if(OrderType()==OP_BUY && OrderClosePrice()>OrderOpenPrice() && OrderCloseTime()>0) flag=1; 
                   if(OrderType()==OP_SELL && OrderClosePrice()<OrderOpenPrice() && OrderCloseTime()>0)flag=1;
                
                 if(flag==1)
                  {
 
Читаю справку по OrderSelect() специально для Вас:

Параметры:
index - Позиция ордера или номер ордера в зависимости от второго параметра.
select - Флаг способа выбора. Mожет быть одним из следующих величин:
SELECT_BY_POS - в параметре index передается порядковый номер позиции в списке,
SELECT_BY_TICKET - в параметре index передается номер тикета.
pool - Источник данных для выбора. Используется, когда параметр select равен SELECT_BY_POS. Mожет быть одной из следующих величин:
MODE_TRADES (по умолчанию) - ордер выбирается среди открытых и отложенных ордеров,
MODE_HISTORY - ордер выбирается среди закрытых и удаленных ордеров.
 
Rosh:
Читаю справку по OrderSelect() специально для Вас:

Параметры:
index - Позиция ордера или номер ордера в зависимости от второго параметра.
select - Флаг способа выбора. Mожет быть одним из следующих величин:
SELECT_BY_POS - в параметре index передается порядковый номер позиции в списке,
SELECT_BY_TICKET - в параметре index передается номер тикета.
pool - Источник данных для выбора. Используется, когда параметр select равен SELECT_BY_POS. Mожет быть одной из следующих величин:
MODE_TRADES (по умолчанию) - ордер выбирается среди открытых и отложенных ордеров,
MODE_HISTORY - ордер выбирается среди закрытых и удаленных ордеров.



Да, спасибо не обратил внимание. Но все равно такая поставка не совсем логична. Но все равно спасибо.
Причина обращения: