Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1371

 
Oleg Kolesov #:
Буфера.

Буфер надо отлавливать не цветом, а значением.

Посмотрите, что выдает буфер, когда изменяет цвет.

т.е. допустим, есть 2 буфера. Красный и зеленый.

Выведи эти два буфера через Commen и проследите, что показывает буфер, когда он "активен". Это числовые значения. Вот с ними и взаимодействуете. 

 
Индекс цвета буфера индикатора в советнике?
 
Спасибо Никита. 
 
Oleg Kolesov #:
Спасибо Никита. 

Просто индекс буфера) цвет же там может быть любой.

Разобрались?

 
Пытаюсь.
 
Nikita Chernyshov #:

Буфер надо отлавливать не цветом, а значением.

Посмотрите, что выдает буфер, когда изменяет цвет.

т.е. допустим, есть 2 буфера. Красный и зеленый.

Выведи эти два буфера через Commen и проследите, что показывает буфер, когда он "активен". Это числовые значения. Вот с ними и взаимодействуете. 

Не надо давать советы которые подходят к mql4 и не всегда подходят к mql5

 
Oleg Kolesov #:
Здравствуйте. Как все-таки получить индекс цвета в советнике? (Получить сигнал при смене цвета).

Как правило в индикаторе сначала идёт буфер значений, а следом идёт буфер цвета.

   SetIndexBuffer(0, buffMACD, INDICATOR_DATA);           // Буфер данных
   SetIndexBuffer(1, colorBuff, INDICATOR_COLOR_INDEX);   // Буфер цвета
   SetIndexBuffer(2, buffSignal, INDICATOR_DATA);         // Буфер данных
   SetIndexBuffer(3, colorSignal, INDICATOR_COLOR_INDEX); // Буфер цвета

А потом получив handle индикатора копируешь значения 1го или 3го буфера. Там могут быть значения только целые от нуля, 0 и выше, в зависимости от количества цветов заданных в индикаторе. Всё это надо знать во время программирования советника.

 

Подскажите, как правильно создавать графический объект в MQL5, чтобы избежать ошибки 4202?

В MQL4 пользовался таким кодом:

   string Obj_Rectangle="Object"; 

   if(ObjectFind(0,Obj_Rectangle)==-1)                               
     {
      ObjectCreate(0,Obj_Rectangle,OBJ_RECTANGLE_LABEL,0,0,0);        
      ObjectSetInteger(0,Obj_Rectangle,OBJPROP_CORNER,0);
      ObjectSetInteger(0,Obj_Rectangle,OBJPROP_XDISTANCE,100);
      ObjectSetInteger(0,Obj_Rectangle,OBJPROP_YDISTANCE,100);
      ObjectSetInteger(0,Obj_Rectangle,OBJPROP_XSIZE,200);
      ObjectSetInteger(0,Obj_Rectangle,OBJPROP_YSIZE,150);
      ObjectSetInteger(0,Obj_Rectangle,OBJPROP_BGCOLOR,clrBlue);
     }
     
   Alert(_LastError);

Но в MQL5 ObjectFind() возвращает error 4202

 
leon_17 #:

Подскажите, как правильно создавать графический объект в MQL5, чтобы избежать ошибки 4202?

В MQL4 пользовался таким кодом:

Но в MQL5 ObjectFind() возвращает error 4202

Если объект не найден, то это и есть ошибка поиска объекта…

ERR_OBJECT_NOT_FOUND

4202

Графический объект не найден


Не надо его алертить…

 
Алексей спасибо за желание помочь. У вас тоже принцип: голодному удочку, а не рыбу.