Поиск удалившегося ордера по тиккету или магику - страница 3

 
Konstantin Nikitin:

OrderSelect

То-есть не удаленный и не закрытый. Если TRUE, то ордер в рынке, а не в истории.

Константин, на сколько я знаю, выбор происходит только по первому ордеру. Если у вас пачка не прокатит. Тиккеты тоже надо перебирать. 

 
Konstantin Nikitin:
Читайте справку

хм, Вы читаете справку как я... по диагонали! )))

вот же написал,что уже обсудили в этом топике: https://www.mql5.com/ru/forum/283862#comment_9009287

Поиск удалившегося ордера по тиккету или магику
Поиск удалившегося ордера по тиккету или магику
  • 2018.10.14
  • www.mql5.com
Коллеги, решил расширить свою библиотеку и выполнить поиск не обращаясь к истории. Поиск удалившегося ордера только среди рыночных...
 
Konstantin Nikitin:

Вы ни чего не получите.

получил, вот скрипт:

#property show_inputs
input int ticket=503360461;

void OnStart()
  {
   if(OrderSelect(ticket,SELECT_BY_TICKET))
     {
      if(OrderCloseTime()>0) Print("Ордер есть в истории"); else Print("Ордер рыночный и открыт");
     }
   else Print("Вообще нет такого тикета!!!");
  }

лог:

0 15:48:00.731 tst USDCHF,H1: uninit reason 0

0 15:48:00.736 Script tst USDCHF,H1: removed

0 15:49:28.171 Script tst USDCHF,H1: loaded successfully

0 15:49:29.731 tst USDCHF,H1 inputs: ticket=503360461; 

0 15:49:29.762 tst USDCHF,H1: initialized

0 15:49:29.762 tst USDCHF,H1: Ордер есть в истории

0 15:49:29.762 tst USDCHF,H1: uninit reason 0

0 15:49:29.765 Script tst USDCHF,H1: removed


скрин:


 
Konstantin Nikitin:
Достаточно такого
или уж если по вашему, то так

не достаточно, сам в шоке, от своей невнимательности )))

вот решил проверить, что работает:

input int ticket=503360461;

void OnStart()
  {
   if(OrderSelect(ticket,SELECT_BY_TICKET))
     {
      if(OrderCloseTime()>0) 
        {
         Print("Ордер есть в истории");
         Print("OrderProfit = ",OrderProfit(),", OrderOpenPrice() = ",OrderOpenPrice());
        }
      else Print("Ордер рыночный и открыт");
     }
   else Print("Вообще нет такого тикета!!!");
  }

вот лог: 

0 15:55:31.134 tst USDCHF,H1: Ордер есть в истории

0 15:55:31.134 tst USDCHF,H1: OrderProfit = -0.85, OrderOpenPrice() = 1.15866

причем ордер по евре, а скрипт на чифе... все равно все работает

вот нашел счет где ордера открыты на выходные: (тикет № 503379005)

вот лог:

0 15:59:29.712 tst USDCHF,H1 inputs: ticket=503379005; 

0 15:59:29.735 tst USDCHF,H1: initialized

0 15:59:29.735 tst USDCHF,H1: Ордер рыночный и открыт

0 15:59:29.735 tst USDCHF,H1: uninit reason 0

0 15:59:29.738 Script tst USDCHF,H1: removed

 

А если не обращаться ко времени закрытия?....У меня вроде подобный вариант не работал:


         if(OrdersTotal()<2)
{
         bool p2=OrderSelect(errB2,SELECT_BY_TICKET);             
 
                      if (p2==1)
                         {
                         Alert ("!!!!!!!!Ордер errB2 найден в рыночных errB2>0 тикет = " +errB2, "найден значит должна быть 1 = "+p2);
      
                         }
                          if (p2==0)
                        {
                        Alert ("Ордера errB2 не найден в рыночных Обнуляем его значение и открываем ордер errB2 значит 0 ="+p2);
             errB2=OrderSend(Symbol(),OP_BUY,Lots2,NormalizeDouble(opB,Digits),3,NormalizeDouble(slb,Digits),NormalizeDouble(tpb,Digits),"Ворота B осн= "+b,MG,0,Red); 
                       Sleep (10000);
                        }
} 
 
Руслан:

А если не обращаться ко времени закрытия?....У меня вроде подобный вариант не работал:

Жёсткий прогер)

 

Робот работает только если обращаться ко времени закрытия.

При использовании цикла при поиске по тиккету, они всегда имеют значение True( или 1) - как не пытался не получилось удалить в списке ордеров один ордер и в замен его поставить такой же без обращения к истории.  Один закрываю, а открываются все. 

Но задача решена, спасибо. 

 
Руслан:

Робот работает только если обращаться ко времени закрытия.

При использовании цикла при поиске по тиккету, они всегда имеют значение True( или 1) - как не пытался не получилось удалить в списке ордеров один ордер и в замен его поставить такой же без обращения к истории.  Один закрываю, а открываются все. 

Но задача решена, спасибо. 

Зажмурились. 

 
Алексей Тарабанов:

Зажмурились. 

от слова "Жмурик"?

 
Vitaly Muzichenko:

от слова "Жмурик"?

Нет: ничего не вижу, ничего не слышу, ну и все такое.