Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1221

 

Цель - открывать только один ордер на текущем нулевом баре.

Если уже был закрытый ордер на текущем баре, то новый не открывать.

А код не работает: 

bool is = OrderSelect(1, SELECT_BY_POS, MODE_HISTORY);
 
       if ( iTime(NULL,0,0) < OrderOpenTime() || is == false){
 
 
 if (OrdersTotal() < 1) OrderSend(Symbol(), OP_BUY, 1, Ask, 3, 0,0, "", 1212, 0, clrGreen);
  }
 
Pavel Verveyko:
а так можно написать? (что б работало сейчас срабатывает только последний тип - с прямоугольником).


ObjectsDeleteAll(0,"prefix",0,OBJ_LABEL);
ObjectsDeleteAll(0,"prefix",0,OBJ_RECTANGLE_LABEL);

это удалить все объекта которые имеют тип  OBJ_LABEL или OBJ_RECTANGLE_LABEL

 
HeAic:

Цель - открывать только один ордер на текущем нулевом баре.

Если уже был закрытый ордер на текущем баре, то новый не открывать.

А код не работает: 

datetime openBarTime=iTime(_Symbol,_Period,0);

bool orderFound=false;

for(int pos=OrdersTotal()-1;pos>=0;pos--) {

   ... /// тут всякие проверки на select,magic,symbol,type и проч

   if (OrderOpenTime()>=openBarTime) {

       orderFound=true; // нашёлся ордер открытый на текущем баре

       break;

   }

}

if (!orderFound) {

   // не было ордеров на текущем баре - трам пам пам

   ...

}

отложки придётся запоминать и отрабатывать отдельно. И вообще в комплексе это делается оптимальнее

про закрытые схожую проверку по HISTORY

 

каким способом обычно выводят текст на графике? в произвольном месте, просто текст

это через https://www.mql5.com/ru/docs/objects ? направьте на правильный путь

Документация по MQL5: Графические объекты
Документация по MQL5: Графические объекты
  • www.mql5.com
Функции, задающие свойства графических объектов, а также операции создания ObjectCreate() и перемещения ObjectMove() объектов на графике фактически служат для отправки команд графику. При успешном выполнении этих функций команда попадает в общую очередь событий графика. Визуальное изменение свойств графических объектов производится в процессе...
 
Fast235:

каким способом обычно выводят текст на графике? в произвольном месте, просто текст

это через https://www.mql5.com/ru/docs/objects ? направьте на правильный путь

https://www.mql5.com/ru/docs/constants/objectconstants/enum_object/obj_text

https://www.mql5.com/ru/docs/constants/objectconstants/enum_object/obj_label

 
Maxim Kuznetsov:

datetime openBarTime=iTime(_Symbol,_Period,0);

bool orderFound=false;

for(int pos=OrdersTotal()-1;pos>=0;pos--) {

   ... /// тут всякие проверки на select,magic,symbol,type и проч

   if (OrderOpenTime()>=openBarTime) {

       orderFound=true; // нашёлся ордер открытый на текущем баре

       break;

   }

}

if (!orderFound) {

   // не было ордеров на текущем баре - трам пам пам

   ...

}

отложки придётся запоминать и отрабатывать отдельно. И вообще в комплексе это делается оптимальнее

про закрытые схожую проверку по HISTORY

Вообщем для своего случая нашёл из справочника пример:

bool orderFound=false;

 // retrieving info from trade history 
  int i,accTotal=OrdersHistoryTotal(); 
  for(i=0;i<accTotal;i++) 
    { 
     //---- check selection result 
     if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) 
       { 
        Print("Ошибка при доступе к исторической базе (",GetLastError(),")"); break; 
       } 
     // работа с ордером ... 
   if (OrderCloseTime() > iTime(_Symbol,_Period,0))orderFound=true ;// нашёлся ордер закрытый на текущем баре
    }
//-----
 
 if(OrdersTotal() < 1 && orderFound == false ) {//тут открываем ордера по алгоритму
  

А закрытие ордеров вот так:

   if( OrdersTotal() > 0) 
 
     {
        for(cnt = 0; cnt < OrdersTotal(); cnt++)
      {
       bool s = OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
       
      
       if( TimeCurrent()>= OrderOpenTime()+ (lifetime * 60)) // lifetime - время в минутах
          
          {
           
           if(OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber())    // long position is opened
            

Спасибо за помощь  :)

 
Здравствуйте. Все привет. Помогите найти индикатор 

 Balance of power. Где можно его качнуть. Спасибо.

 
2004sasha:
Здравствуйте. Все привет. Помогите найти индикатор 

 Balance of power. Где можно его качнуть. Спасибо.

Поиск на сайте выдаёт результат.


 
Maxim Kuznetsov:

это удалить все объекта которые имеют тип  OBJ_LABEL или OBJ_RECTANGLE_LABEL

я понимаю что можно их вызвать 2.

но вопрос заключается в следующем 

ObjectsDeleteAll

с указанием например OBJ_TREND - функция перебирает объекты в цикле и выбирает только с нужным типом объекта? или создаёт сразу цикл только с нужными объектами.

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