Помогите разобраться.

 
Здравствуйте уважаемые форумчане. Я новичок в програмировании но хотелось бы научиться. Прочитал весь учебник, полазил по форуму но ответ на волнующий сеня вопрос так и не нашел. Мне нужно найти решение к чледующей задаче:
На графике имеются несколько прямоугольников разных цветов, как из них выбрать нужный мне прямоугольник по определенному цвету (цвет я определяю заранее),  а также получить дополнительные данные этого прямоугольника типа цена1, цена2 и т.д. 
Прямоугольники на график наношу вручную.
помогите пожалуйста с кодом или посоветуйте где поискать.
Заранее спасибо.
 

каждый графический объект имеет свойства -- свойства можно как задавать, так и считывать.

Логика вашей задачи такая:

-- перебираете на графике все объекты

-- ищите нужный заданного типа (прямоугольник) и цвета

-- дальше получаете тот параметр что вам нужен

Все команды по работе с объектами -- к каждой команде есть пример -- в справке (например, для МТ4, для МТ5 аналогично) 

Пример перебора объектов https://docs.mql4.com/ru/objects/objectstotal 

Пример считывания свойства  https://docs.mql4.com/ru/objects/objectget .

 
for(int i=ObjectsTotal()-1;i>=0;i--)

{ 

if(ObjectType==прямугол && ObjectGetInteger(0,name,OBJPROP_COLOR)==clrYellow) ...

} 
 
Спасибо за информацию. Но все это я уже пробовал. Фунция реагирует на измененте цвета или только первого объекта или только последнего. Необходимо как то обнулить интерации что бы с каждым новым тиком поиск начинался заного. Одним простым оперетором здесь не обойтись. Будем думать дальше как создать отдельную функцию по нахождению нужного объекта из множества. 
 
Gerkl:
Спасибо за информацию. Но все это я уже пробовал. Фунция реагирует на измененте цвета или только первого объекта или только последнего. Необходимо как то обнулить интерации что бы с каждым новым тиком поиск начинался заного. Одним простым оперетором здесь не обойтись. Будем думать дальше как создать отдельную функцию по нахождению нужного объекта из множества. 
Может пора показать свой код? 
 

Да показывать то в общем и нечего. Я же говорю, что я новичок.

 

//+------------------------------------------------------------------+
//|                                                           SD.mq4 |
//|                                           Copyright 2015,        |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, "
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//--- input parameters
input color    zone=clrSilver; //Trading Zone

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
  
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---  
  string obj_name;
  color obj_color;
  int obj_total=ObjectsTotal();
  int i;
  
     for (i=ObjectsTotal()-1;i>=0;i--)// last rectangle
         {
         obj_name=ObjectName(i);
         obj_color=ObjectGet(obj_name,OBJPROP_COLOR);
                            if (ObjectGetInteger(0,obj_name,OBJPROP_COLOR)==zone)
               Comment(i,"zone found",obj_name);
           else 
           
               Comment ("No zones");
                     
         }
         Sleep(3000);
           
         
//---
  }
//+------------------------------------------------------------------+
Automated Trading and Strategy Testing
Automated Trading and Strategy Testing
  • www.mql5.com
MQL5: language of trade strategies built-in the MetaTrader 5 Trading Platform, allows writing your own trading robots, technical indicators, scripts and libraries of functions
 
boolz=false;   
  
for (i=ObjectsTotal()-1;i>=0;i--)// last rectangle
     {
         obj_name=ObjectName(i);
         obj_color=ObjectGet(obj_name,OBJPROP_COLOR);
         if (ObjectGetInteger(0,obj_name,OBJPROP_COLOR)==zone){
           z=true; 
           break;
         }
     }
}

if(z)Comment(i,"zone found",obj_name);
else 
Comment ("No zones");
Попробуйте так.
 
Dmitry Fedoseev:
Попробуйте так.
Спасибо, попробовал. К сожалению данная функция вообще никак не реагирует на изменение цвета прямоугольника. Все время выдает z=false. Подскажите кто знает как обнулить "i" для оператора "for" , чтобы с каждым новым тиком i=0 и процесс поиска начинался бы с начала. 
 
Gerkl:
Спасибо, попробовал. К сожалению данная функция вообще никак не реагирует на изменение цвета прямоугольника. Все время выдает z=false. Подскажите кто знает как обнулить "i" для оператора "for" , чтобы с каждым новым тиком i=0 и процесс поиска начинался бы с начала. 
Разберитесь с самой проверкой цвета. Смысл в том, что как наткнулись на объект с нужным цветом, выскакиваем из цикла.
 

Не знаю, что я тут нахимичил, но вроде работает. решил использовать оператор While вместо  for. Первый шаг сделан. Спасибо всем за помощь. 

void OnTick()
  {
//---  
   string obj_name;
   color obj_color=clrNONE;
   int obj_total=ObjectsTotal(OBJ_RECTANGLE);
   bool z=false;
   int i=0;
   while(i<=obj_total)// last rectangle
     {

      obj_name=ObjectName(i);
      obj_color=ObjectGet(obj_name,OBJPROP_COLOR);
      i=i+1;
      if(ObjectType(obj_name)==OBJ_RECTANGLE && obj_color==zone_color)
        {
         z=true;
         
         if(z)
            break;
         else
            i=i+1;
        }
     }
   if(z)
      Comment(i,"zone found",obj_color);
   else
      Comment(i,"No zones");
  }
 

Правда не знаю как исправить это предупреждение об ошибке. Вроде типы всех перенных совпадают.

Файлы: