Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 705

 
exsistentia:



Спасибо большое! А учебник я читаю, и по ходу советник пишу.

И еще вопрос: какой наиболее простой способ узнать, что данный ордер закрыт(по тиккету)? Использовать функцию OrderCloseTime, или есть для этой цели спец. функция? 

   if(OrderSelect(ticket,SELECT_BY_TICKET) && OrderCloseTime()>0) {
      // Ордер закрыт
      }

В переменной ticket должен храниться номер тикета проверяемого ордера
 
artmedia70:

В переменной ticket должен храниться номер тикета проверяемого ордера

если ордер закрыт, разве его не в истории надо искать (MODE_HISTORY)?
[Eliminado]  
   
artmedia70:

В переменной ticket должен храниться номер тикета проверяемого ордера

Спасибо. 

Ещё такой вопрос. В советнике есть блок, который должен удалять отложенные ордера, в зависимости от закрытия рыночных ордеров:

OrderSelect(T1,SELECT_BY_TICKET);
datetime cls1;
cls1=OrderCloseTime();                                 // время закрытия 1 ордера
OrderSelect(T2,SELECT_BY_TICKET);
datetime cls2;
cls2=OrderCloseTime();                                 //время закрытия 2 ордера
Alert(cls1," ",cls2); 

if(cls1==0 && cls2==0)                               //если оба ордера открыты
   return(0);
else
   CLS++;                                                       // флаг закрытия одного из ордеров

if(cls1>0 && CLS==1)                //удаление отложенных ордеров в зависимости от того какой ордер закрыт
   OrderDelete(T3);
if(cls2>0 && CLS==1)
   OrderDelete(T4);  
return(0);
} 

 Блок почему-то не работает(отложенные ордера не закрывает), а Alert всегда выдает "0   0". Специально закрывал один из открытых ордеров, но ничего не происходило. Такое ощущение как будто советник не видит, что ордер уже закрыт и обрабатывает устаревшие данные. В чём может быть проблема?

 
exsistentia:
   

Спасибо. 

Ещё такой вопрос. В советнике есть блок, который должен удалять отложенные ордера, в зависимости от закрытия рыночных ордеров:


 Блок почему-то не работает(отложенные ордера не закрывает), а Alert всегда выдает "0   0". Специально закрывал один из открытых ордеров, но ничего не происходило. Такое ощущение как будто советник не видит, что ордер уже закрыт и обрабатывает устаревшие данные. В чём может быть проблема?

Где тикет ордера выясняется? И откуда OrderCloseTime если ордер ещё активен (во всяком случае, выбор его среди активных по коду происходит)?
 
evillive:
Где тикет ордера выясняется? И откуда OrderCloseTime если ордер ещё активен (во всяком случае, выбор его среди активных по коду происходит)?
Да перестань буянить. Pool в данном случае игнорируется. Только по времени закрытия больше/равно нулю можно определить из какого списка ордер выбран. Ну уж эти-то азы стыдно не знать ;)
 
evillive:

если ордер закрыт, разве его не в истории надо искать (MODE_HISTORY)?
При выборе по индексу - да, в истории, при выборе по тикету pool игнорируется. Учи матчасть ;)
 
artmedia70:
Да перестань буянить. Pool в данном случае игнорируется. Только по времени закрытия больше/равно нулю можно определить из какого списка ордер выбран. Ну уж эти-то азы стыдно не знать ;)


по тикету практически никогда не искал, больше по индексу, может и стыдно, да что поделаешь ;)

а вот поиск нужного тикета там в коде не привели, может он неправильно его ищет а потом жалуется что  код не работает...

 
evillive:

по тикету практически никогда не искал, больше по индексу, может и стыдно, да что поделаешь ;)

а вот поиск нужного тикета там в коде не привели, может он неправильно его ищет а потом жалуется что не код работает...

Да там вообще бардак...
[Eliminado]  

Всем спасибо за помощь! Ошибка была в локальных переменных тиккетов. Что ж поделать, я - нуб.

 

Уважаемые программисты, буду очень благодарен, если вы сможете отладить мой советник для нового билда 670. Этот советник был написан для меня и работал прекрасно со старыми версиями, но на новой версии МТ4 он не работает. Пытался компилировать -- выдаёт 100 ошибок. Сам с этим не справлюсь.

Кстати, не буду иметь ничего против, если кому-то советник будет в помощь ...... только буду рад :-)

Советник прилагается.

Заранее спасибо.

Файлы: