Объясните мне зачем и почему (про OrderSelect()) - страница 3

 
rid:

if ((OrderType() <= OP_SELL) - получается, что эта строка означает примерно так:

"если среди ордеров и позиций нет отпкрытой позиции на продажу...?"

Нет, это значит что среди ордеров выбрать только активные позиции BUY и SELL

 
rid:

if ((OrderType() <= OP_SELL) - получается, что эта строка означает примерно так:

"если среди ордеров и позиций нет отпкрытой позиции на продажу...?"

если есть открытые позиции на покупку и продажу.... ордера отбрасываются....

 
У меня почему то Mode_Trades не отфильтровывает ни закрытие ни отложенные.
Ну и ладно. Нужно проверять по времени открытия/закрытия.
 
Korey:
У меня почему то Mode_Trades не отфильтровывает ни закрытие ни отложенные.
Ну и ладно. Нужно проверять по времени открытия/закрытия.

MODE_TRADES (по умолчанию) - ордер выбирается среди открытых и отложенных ордеров,
MODE_HISTORY - ордер выбирается среди закрытых и удаленных ордеров.

Время закрытия проверяется если ордер выбран по номеру тикета.

 
Korey:
У меня почему то Mode_Trades не отфильтровывает ни закрытие ни отложенные.
Ну и ладно. Нужно проверять по времени открытия/закрытия.

Существуют два списка : для открытых ордеров и позиций и история сделок: для закрытых ордеров и позиций...

Соответственно MODE_TRADES и MODE_HISTORY...

РЫ: я выбываю из соревнования ... не успеваю ответить.. :)

 

Проясняется немного дело. Благодарю всех за ответы.

Cronex, поясните, пож., какие позиции наз. "активными". Ветку сейчас смотрят несколько моих знакомых и им интересен ваш ответ.

 
rid:

Проясняется немного дело. Благодарю всех за ответы.

Cronex, поясните, пож., какие позиции наз. "активными". Ветку сейчас смотрят несколько моих знакомых и им интересен ваш ответ.

Я имел ввиду все позиции которые Вы видите в терминале при работе: открытые позиции по покупке /продаже, а так же все отложенные ордера всех типов.

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

 

rid, загляни в MQL4 Reference - Standard constants - Trade operations. Там видно, какие константы каким типам ордеров соответствуют, и почему Cronex сделал сравнение именно с OP_SELL.

 
Mathemat:

rid, загляни в MQL4 Reference - Standard constants - Trade operations. Там видно, какие константы каким типам ордеров соответствуют, и почему Cronex сделал сравнение именно с OP_SELL.

Да это не я сделал сравнение, это в примере так написано :-). На самом деле я сам когда то разбирался с этим кодом из примера :-)

 
if(typs==0) tr="CLOSE ALL BUY"; else tr="CLOSE ALL SELL";
   k=OrdersTotal();
   for(i=k-1;i>=0;i--)
   {   
   if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) 
      {
         cmd=OrderType();
         t=OrderCloseTime();
         if((cmd==typs)&&Symbol()==OrderSymbol()&&t==0) 
         { 
               t=OrderOpenTime();
               if(t!=0)
                  { 
                     ObjectCreate("PipsWork",OBJ_TEXT,0,iTime(NULL,0,10),High[10]);
                     ObjectSetText("PipsWork", tr, 14,"",Red);
                     WindowRedraw();
                     close_(cmd); /* Sleep(500);*/
                    // Print("Вышли из клоуз");
                   }              
               } 
      }  
         else {/*Print("Ошибка в выборе позиции=",i);*/}     
  }     
  
ObjectDelete("PipsWork");
   return(0);

Так то оно так, но посмотрите в коде бэйс, там лежат несколько скриптов которые изначально заломаны,
одни по i++ ну это понятно, а другие доверяют стандартным константам и их исполнению.

//*******************

В цикле выбираю по позиции и проверяю время. Только Так.

Причина обращения: