#property indicator_chart_window

//_______________________________________
#property indicator_buffers 1
#property indicator_color1 Black

#include <stdlib.mqh>



int    _panelPosition = 1; 
extern string  __coordinates = "—— НАСТРОЙКА СМЕЩЕНИЯ ВСЕЙ ПАНЕЛИ ——";
extern int Shift_X = 0;
extern int Shift_Y = 0;

extern string  __colors = "—— НАСТРОЙКА ЦВЕТОВ УКАЗАТЕЛЕЙ ЦЕНЫ ——";
extern color   _upColor = White;
extern color   _downColor = White;
extern bool   ShowTimer = true;
extern color   _timerColor = White;
extern color   _spreadColor = GreenYellow;
extern color   _colSymbolName = Gray;

// Переменные для определения цвета текущей цены
int MA_Fast_Period = 1;
int MA_Slow_Period = 5;



//настройки индикатора силы валют(входные параметры)
extern string Parametrs = "—— НАСТРОЙКА ЦВЕТОВ ПАНЕЛИ 'СИЛА ВАЛЮТ' ——";
extern color Background = C'40,50,60'; //C'0x1E,0x1E,0x1E'
int window = 0;
extern color WarnaValue = Silver;
extern color WarnaPair = DodgerBlue;
extern color WarnaKotak_xMeter = Gray;

///*
extern color WarnaH10 = C'0x5A,0x97,0x00';
extern color WarnaH9 = C'0x62,0xA4,0x00';
extern color WarnaH8 = C'0x6B,0xB3,0x00';
extern color WarnaH7 = C'0x73,0xBF,0x00';
extern color WarnaH6 = C'0x86,0xDF,0x00';
extern color WarnaH5 = GreenYellow;
extern color WarnaH4 = Yellow;
extern color WarnaH3 = Gold;
extern color WarnaH2 = DarkOrange;
extern color WarnaH1 = Red;
//*/
/*
extern color WarnaH10 = C'0x33,0x55,0x00';
extern color WarnaH9 = C'0x3C,0x64,0x00';
extern color WarnaH8 = C'0x46,0x75,0x00';
extern color WarnaH7 = C'0x53,0x8A,0x00';
extern color WarnaH6 = C'0x5A,0x97,0x00';
extern color WarnaH5 = C'0x62,0xA4,0x00';
extern color WarnaH4 = C'0x6B,0xB3,0x00';
extern color WarnaH3 = C'0x73,0xBF,0x00';
extern color WarnaH2 = C'0x86,0xDF,0x00';
extern color WarnaH1 = GreenYellow;
*/

bool gi_236 = false;
bool gi_240 = false;
string gsa_244[] = {"GBPJPY"};
string gsa_248[] = {"EURUSD", "GBPUSD", "AUDUSD", "USDJPY", "USDCHF", "USDCAD", "EURJPY", "EURGBP", "EURCHF", "EURAUD", "GBPJPY", "GBPCHF"};
string gsa_252[] = {"GBP", "EUR", "USD", "CHF", "JPY"};
int gia_256[] = {90, 70, 50, 30, 10};
int gia_264[10] = {0, 3, 10, 25, 40, 50, 60, 75, 90, 97};
int gi_268;
int gi_272;
double gda_276[];
double gda_280[];
double gda_284[];
double gda_288[];
double gda_292[];
double gda_296[];
double gda_300[];
double gda_304[];
double gda_308[];
double gia_312[2][2]; //int

//_______________________________________________________________

//- Удаление объектов графика данного эксперта
void DeleteObjects(string prefixName = "iMP")
{    
   int countObject = ObjectsTotal();
   string nameObject = "";
   for(int i = countObject; i >= 0; i--)
   {
      nameObject = ObjectName(i);
      if(StringFind(nameObject, prefixName, 0) != -1)
      {
         ObjectDelete(nameObject);
      }
   }
}



//- Конец --------------------------------------

//Создаем прямоугольник
void RectLabelCreate( string           name,         // имя метки
                     
                     int              x=0,                      // координата по оси X
                     int              y=0,                      // координата по оси Y
                     int              width=0,                   // ширина
                     int              height=0,                  // высота
                     color            back_clr=C'26,35,45',     // цвет фона
                     ENUM_BORDER_TYPE border=BORDER_RAISED,     // тип границы
                     double corner=CORNER_LEFT_UPPER, // угол графика для привязки
                     //const ENUM_ANCHOR_POINT anchor = ANCHOR_LEFT_UPPER,
                     color            clr=White,                      // цвет плоской границы (Flat)
                     ENUM_LINE_STYLE  style=STYLE_SOLID,        // стиль плоской границы
                     int              line_width=5,              // толщина плоской границы
                     bool             back=false,               // на заднем плане
                     //bool             selection=false,          // выделить для перемещений
                     bool             hidden=true              // скрыт в списке объектов
                    // long             z_order=0                // приоритет на нажатие мышью
                     )
{


   ObjectCreate(name, OBJ_RECTANGLE_LABEL, 0, 0, 0);
//--- установим координаты метки
   ObjectSet(name,OBJPROP_XDISTANCE,x);
   ObjectSet(name,OBJPROP_YDISTANCE,y);
//--- установим размеры метки
   ObjectSet(name,OBJPROP_XSIZE,width);
   ObjectSet(name,OBJPROP_YSIZE,height);
//--- установим цвет фона
   ObjectSet(name,OBJPROP_BGCOLOR,back_clr);
//--- установим тип границы
   ObjectSet(name,OBJPROP_BORDER_TYPE,border);
//--- установим угол графика, относительно которого будут определяться координаты точки
   ObjectSet(name,OBJPROP_CORNER, corner);
   //ObjectSet(RectLabel, OBJPROP_ANCHOR, anchor);
//--- установим цвет плоской рамки (в режиме Flat)
   ObjectSet(name,OBJPROP_COLOR,clr);
//--- установим стиль линии плоской рамки
   ObjectSet(name,OBJPROP_STYLE,style);
//--- установим толщину плоской границы
   ObjectSet(name,OBJPROP_WIDTH,line_width);
//--- отобразим на переднем (false) или заднем (true) плане
   ObjectSet(name,OBJPROP_BACK,back);
//--- включим (true) или отключим (false) режим перемещения метки мышью
   // ObjectSet(name,OBJPROP_SELECTED,selection);
//--- скроем (true) или отобразим (false) имя графического объекта в списке объектов
   ObjectSet(name,OBJPROP_HIDDEN,hidden);
//--- установим приоритет на получение события нажатия мыши на графике
   //ObjectSet(iMP_RectLabel,OBJPROP_ZORDER,z_order);
   //--- успешное выполнение
   //return(0);
  }

void CreateLabel( string name, 
                  double corner, 
                  int x, 
                  int y, 
                  string text,  
                  color col = 0,
                  int fontSize = 10,
                  //bool back=false,
                  bool hidden=true, 
                  string fontName = "Arial Black") 
{
   ObjectCreate(name, OBJ_LABEL, 0, 0, 0); 
   ObjectSetText(name, text, fontSize, fontName, col);
   ObjectSet(name, OBJPROP_CORNER, corner);
   ObjectSet(name, OBJPROP_XDISTANCE, x);
   ObjectSet(name, OBJPROP_YDISTANCE, y);
   //ObjectSet(name,OBJPROP_BACK,back);
   ObjectSet(name,OBJPROP_FONTSIZE, fontSize);
   ObjectSet(name,OBJPROP_HIDDEN, hidden);

}


int ColorOfPrice(int colorUp, int colorDown) 
{
   double cur = iMA(Symbol(), PERIOD_M15, MA_Fast_Period, 0, MODE_SMA, PRICE_TYPICAL, 0);
   double aver = iMA(Symbol(), PERIOD_M15, MA_Slow_Period, 0, MODE_SMA, PRICE_TYPICAL, 0);
   if (cur > aver) { return (colorUp); }
   return (colorDown);
}

//_____________________________________________________
int init() {
   gi_268 = ArrayRange(gsa_248, 0);
   gi_272 = ArrayRange(gsa_252, 0);
   int li_8 = ArrayRange(gia_256, 0);
   if (gi_272 != li_8) Print("The size of array aMajor is not equals to aMajorPos");
   ArrayResize(gda_276, gi_272);
   ArrayResize(gda_280, gi_268);
   ArrayResize(gda_284, gi_268);
   ArrayResize(gda_288, gi_268);
   ArrayResize(gda_292, gi_268);
   ArrayResize(gda_296, gi_268);
   ArrayResize(gda_300, gi_268);
   ArrayResize(gda_304, gi_268);
   ArrayResize(gda_308, gi_268);
   init_tradepair_index();
   initGraph();
   if (gi_240) {
      while (true) {
         if (IsConnected()) main();
         if (!IsConnected()) objectBlank();
         ObjectsRedraw();
         Sleep(1000);
      }
   }
   return(0);
}

int deinit() {
   ResetLastError();
   ObjectsDeleteAll(0, OBJ_LABEL);
   ObjectsDeleteAll(0, OBJ_RECTANGLE_LABEL);
   if (ErrorDescription(GetLastError())!= "no error"){
   Print("shutdown error - ", ErrorDescription(GetLastError()));
   }
return (0);
}

// Функция проверки на 4 и 5 знак
string SetPrice(double price)

{
   string result = DoubleToStr(price, Digits);
   
   if(Digits >= 6) 
   {
      int pos = StringFind(result, ".");
      result =  StringSubstr(result, pos, StringLen(result) - pos); 
   }
   
   return(result);
 
}

//____________________________________________________
int start() 
{

   
   // Текущая цена
   string curPrice = SetPrice(Bid);
   int fontSizeBig = 24;
   color col = ColorOfPrice(_upColor, _downColor);
   string p = StringSubstr(curPrice,0,4);
   CreateLabel("iMP_curPrice", _panelPosition, 
               Shift_X + 50, Shift_Y + 32, 
               p, col, fontSizeBig, true, "Verdana"); 
    
    

   
    // Bid. Последние три цифры
   string curBid = SetPrice(Bid); 
   //int pos = StringFind(curBid, ".");
   //if (StringSubstr(curBid, pos)>4){
   string w = DoubleToStr((Ask - Bid) / Point, 0); 
   int prop = StringLen(w); 
   int countRoundB = StringLen(w); 
   // настраиваем количество цифр для аска
   for(int l1 = StringLen(curBid) - 1 - prop; l1 >= 0; l1--)
   {
      if(StringGetChar(curPrice, l1) != StringGetChar(curBid, l1)
         || StringGetChar(curBid, l1) == '.')
      {
         countRoundB++;
         // ограничения для обрезки
         if(countRoundB == 4) { break; }
      }   
      else { break; }
   }
   // }
  
   // обрезка
   if(countRoundB <= prop || countRoundB <= 2) { countRoundB++; }
   curBid = StringSubstr(curBid, StringLen(curBid) - countRoundB, StringLen(curBid) - 1);
   CreateLabel("iMP_curBid", _panelPosition, 
               Shift_X + 21, Shift_Y + 53, 
               curBid, col, 9, true, "Verdana");
   
   // Ask. Последние три цифры
   string curAsk = SetPrice(Ask);
   
   string q = DoubleToStr((Ask - Bid) / Point, 0); // спред
   int propa = StringLen(q);
   int countRound = StringLen(q);
   // настраиваем количество цифр для аска
   for(int l = StringLen(curAsk) - 1 - propa; l >= 0; l--)
   {
      if(StringGetChar(curPrice, l) != StringGetChar(curAsk, l)
         || StringGetChar(curAsk, l) == '.')
      {
         countRound++;
         // ограничения для обрезки
         if(countRound == 4) { break; }
      }   
      else { break; }
   }
   // обрезка
   if(countRound <= propa || countRound <= 2) { countRound++; }
   curAsk = StringSubstr(curAsk, StringLen(curAsk) - countRound, StringLen(curAsk)-1);
   CreateLabel("iMP_curAsk", _panelPosition, 
               Shift_X + 21, Shift_Y + 37, 
               curAsk, col, 9, true, "Verdana");
  
   // Спред
   string spr_text = "Spread";
   CreateLabel("iMP_curSpread_text",_panelPosition, Shift_X + 50, Shift_Y + 72, spr_text, _colSymbolName, 8, true, "Verdana");
   double price_Ask, price_Bid;
   price_Ask=SymbolInfoDouble(Symbol(),SYMBOL_ASK);
   price_Bid=SymbolInfoDouble(Symbol(),SYMBOL_BID);
   string Spread=DoubleToStr((price_Ask-price_Bid)/Point, 0);
if (StringLen(Spread)== 3)
   CreateLabel("iMP_curSpread", _panelPosition, 
               Shift_X + 37, Shift_Y + 83, 
               Spread, _spreadColor, 25, true, "Verdana");
else
if (StringLen(Spread)!= 2)
CreateLabel("iMP_curSpread", _panelPosition, 
               Shift_X + 58, Shift_Y + 83, 
               Spread, _spreadColor, 25, true, "Verdana");
else
CreateLabel("iMP_curSpread", _panelPosition, 
               Shift_X + 50, Shift_Y + 83, 
               Spread, _spreadColor, 25, true, "Verdana");

//*/
  // Время до следующего бара
   if (ShowTimer == true){
   double sec = Time[4] - Time[5] - MathMod(TimeCurrent(), Time[4] - Time[5]);
   double min = sec / 60;
   sec = 60.0 * (min - MathFloor(min));
   min = MathFloor(min);
   
   string timeSec = DoubleToStr(sec, 0);
   string timeMin = DoubleToStr(min, 0);
   string timeHour = "";
   if(StringLen(timeSec) == 1) { timeSec = "0" + timeSec; }
   
   if(min / 60 > 1)
   {
      timeHour = DoubleToStr(MathFloor(min / 60), 0);
      timeMin = DoubleToStr(min - MathFloor(min / 60) * 60, 0);
      if(StringLen(timeMin) == 1) { timeMin = "0" + timeMin; }    
      timeHour = timeHour + ":";
   }
   if ( Period() >= 240 || StringLen(timeMin) >1 )
   {
   CreateLabel("timeToNextBar", _panelPosition, 
               Shift_X + 76, Shift_Y + 123, "Next bar >", _timerColor, 8, true, "Arial Narrow");
   CreateLabel("iMP_timeToNextBar", _panelPosition, 
               Shift_X + 20, Shift_Y + 122,
               timeHour + timeMin + ":" + timeSec, _timerColor, 10);
   }
   else
  
   {
   CreateLabel("timeToNextBar", _panelPosition, 
               Shift_X + 49, Shift_Y + 123, "Time to next bar >", _timerColor, 8, true, "Arial Narrow");
   CreateLabel("iMP_timeToNextBar", _panelPosition, 
               Shift_X + 15, Shift_Y + 122,
               timeHour + timeMin + ":" + timeSec, _timerColor, 10);
               }
   
   }
   else {
   CreateLabel("timeToNextBar", _panelPosition,
                Shift_X + 65, Shift_Y + 122,
               "Timer:", _timerColor, 10);
   CreateLabel("iMP_timeToNextBar", _panelPosition,
                Shift_X + 30, Shift_Y + 122,
               "OFF", _timerColor, 10);
   }
               
               
   // метка текущего символа и периода 
   CreateLabel("iMP_currentPeriod", _panelPosition, 
               Shift_X + 27, Shift_Y + 17, 
               Symbol() + ", " + PeriodToString(Period()), _colSymbolName, 10, true, "Verdana");
               
   
   {
    if (!gi_240) main();
    return (0);
    }
   
return(0);
}

string PeriodToString(int p)
{
   string result = "";
   
   switch(p)
   {
      case PERIOD_M1:
      result = "M1";
      break;
      case PERIOD_M5:
      result = "M5";
      break;
      case PERIOD_M15:
      result = "M15";
      break;
      case PERIOD_M30:
      result = "M30";
      break;
      case PERIOD_H1:
      result = "H1";
      break;
      case PERIOD_H4:
      result = "H4";
      break;
      case PERIOD_D1:
      result = "D1";
      break;
      case PERIOD_W1:
      result = "W1";
      break;
      case PERIOD_MN1:
      result = "MN1";
      break;
   }
     
   return(result);
}

//_________________________________________________________________________________________


void main() {
   double ld_0;
   int l_count_16;
   string l_symbol_20;
   double ld_28;
   for (int l_index_8 = 0; l_index_8 < gi_268; l_index_8++) {
      RefreshRates();
      if (gi_236) l_symbol_20 = gsa_248[l_index_8] + 109;
      else l_symbol_20 = gsa_248[l_index_8];
      ld_0 = GetPoint(l_symbol_20);
      gda_280[l_index_8] = MarketInfo(l_symbol_20, MODE_HIGH);
      gda_284[l_index_8] = MarketInfo(l_symbol_20, MODE_LOW);
      gda_288[l_index_8] = MarketInfo(l_symbol_20, MODE_BID);
      gda_292[l_index_8] = MarketInfo(l_symbol_20, MODE_ASK);
      gda_300[l_index_8] = MathMax((gda_280[l_index_8] - gda_284[l_index_8]) / ld_0, 1);
      gda_296[l_index_8] = (gda_288[l_index_8] - gda_284[l_index_8]) / gda_300[l_index_8] / ld_0;
      gda_304[l_index_8] = iLookup(100.0 * gda_296[l_index_8]);
      gda_308[l_index_8] = 9 - gda_304[l_index_8];
   }
   for (int l_index_12 = 0; l_index_12 < gi_272; l_index_12++) {
      l_count_16 = 0;
      ld_28 = 0;
      for (l_index_8 = 0; l_index_8 < gi_268; l_index_8++) {
         if (StringSubstr(gsa_248[l_index_8], 0, 3) == gsa_252[l_index_12]) {
            l_count_16++;
            ld_28 += gda_304[l_index_8];
         }
         if (StringSubstr(gsa_248[l_index_8], 3, 3) == gsa_252[l_index_12]) {
            l_count_16++;
            ld_28 += gda_308[l_index_8];
         }
         if (l_count_16 > 0) gda_276[l_index_12] = NormalizeDouble(ld_28 / l_count_16, 1);
         else gda_276[l_index_12] = -1;
      }
   }
   objectBlank();
   for (l_index_12 = 0; l_index_12 < gi_272; l_index_12++) paintCurr(l_index_12, gda_276[l_index_12]);
   paintLine();

}

void init_tradepair_index() {
   string ls_20;
   string ls_28;
   string ls_36;
   int l_arr_size_8 = ArraySize(gsa_244);
   for (int l_count_4 = 0; l_count_4 < l_arr_size_8; l_count_4++) {
      ls_20 = gsa_244[0];
      ls_28 = StringSubstr(ls_20, 0, 3);
      ls_36 = StringSubstr(ls_20, 3, 3);
      gia_312[0][l_count_4] = -1;
      gia_312[1][l_count_4] = -1;
      for (int l_index_0 = 0; l_index_0 < gi_272; l_index_0++) {
         if (ls_28 == gsa_252[l_index_0]) gia_312[0][l_count_4] = l_index_0;
         if (ls_36 == gsa_252[l_index_0]) gia_312[1][l_count_4] = l_index_0;
      }
      if (gia_312[0][l_count_4] == -1 || gia_312[1][l_count_4] == -1) Print("Currency Pair : ", ls_20, " is not tradeable, check array definition!");
   }

}

double GetPoint(string as_unused_0) {
   string ls_24;
   double ld_ret_8 = 0.0001;
   double ld_ret_16 = 0.01;
   if (StringSubstr(ls_24, 3, 3) == "JPY") return (ld_ret_16);
   return (ld_ret_8);
}

int iLookup(double ad_0) {
   int li_ret_8 = -1;
   if (ad_0 <= gia_264[0]) li_ret_8 = 0;
   else {
      for (int li_12 = 1; li_12 < 10; li_12++) {
         if (ad_0 < gia_264[li_12]) {
            li_ret_8 = li_12 - 1;
            break;
         }
      }
      if (li_ret_8 == -1) li_ret_8 = 9;
   }
   return (li_ret_8);
}

void initGraph() {
   //Подложка под панель
   RectLabelCreate("iMP_Rectangle_Label", Shift_X + 130, Shift_Y + 10, 120, 240, C'26,35,45', BORDER_RAISED, _panelPosition, White, STYLE_SOLID, 10, false);
   
   for (int l_index_0 = 0; l_index_0 < gi_272; l_index_0++) {
      // Графические объекты силы валют
      objectCreate(gsa_252[l_index_0] + "_1", Shift_X + gia_256[l_index_0]+10, Shift_Y + 114);
      objectCreate(gsa_252[l_index_0] + "_2", Shift_X + gia_256[l_index_0]+10, Shift_Y + 120);
      objectCreate(gsa_252[l_index_0] + "_3", Shift_X + gia_256[l_index_0]+10, Shift_Y + 126);
      objectCreate(gsa_252[l_index_0] + "_4", Shift_X + gia_256[l_index_0]+10, Shift_Y + 132);
      objectCreate(gsa_252[l_index_0] + "_5", Shift_X + gia_256[l_index_0]+10, Shift_Y + 138);
      objectCreate(gsa_252[l_index_0] + "_6", Shift_X + gia_256[l_index_0]+10, Shift_Y + 144);
      objectCreate(gsa_252[l_index_0] + "_7", Shift_X + gia_256[l_index_0]+10, Shift_Y + 150);
      objectCreate(gsa_252[l_index_0] + "_8", Shift_X + gia_256[l_index_0]+10, Shift_Y + 156);
      objectCreate(gsa_252[l_index_0] + "_9", Shift_X + gia_256[l_index_0]+10, Shift_Y + 162);
      objectCreate(gsa_252[l_index_0] + "_10", Shift_X + gia_256[l_index_0]+10, Shift_Y + 168);
      // Строка валют
      objectCreate(gsa_252[l_index_0], Shift_X + gia_256[l_index_0] + 12, Shift_Y + 221, gsa_252[l_index_0], 7, "Arial Narrow", WarnaPair);
      // Строка значения валют
      objectCreate(gsa_252[l_index_0] + "p", Shift_X + gia_256[l_index_0] + 12, Shift_Y + 209, DoubleToStr(9, 1), 8, "Arial Narrow", WarnaValue);
   }
    
  // Нижняя строка подписи индикатора
   objectCreate("sign", Shift_X + 35, Shift_Y + 231, "»»Price Meter««", 8, "Arial Narrow", DimGray);
  // Верхняя строка
   objectCreate("sign111", Shift_X + 20, Shift_Y + 131, "____________________", 8, "Arial Narrow", DimGray);
   //ChartRedraw();
   ObjectsRedraw();
   
}

void objectCreate(string a_name_0, int a_x_8, int a_y_12, string a_text_16 = "-", int a_fontsize_24 = 42, string a_fontname_28 = "Arial", color a_color_36 = -1, bool back=false) {
   ObjectCreate(a_name_0, OBJ_LABEL, window, 0, 0);
   ObjectSet(a_name_0, OBJPROP_CORNER, 1);
   ObjectSet(a_name_0, OBJPROP_COLOR, a_color_36);
   ObjectSet(a_name_0, OBJPROP_XDISTANCE, a_x_8);
   ObjectSet(a_name_0, OBJPROP_YDISTANCE, a_y_12);
   ObjectSetText(a_name_0, a_text_16, a_fontsize_24, a_fontname_28, a_color_36);
   ObjectSet(a_name_0,OBJPROP_BACK,back);
}

void objectBlank() {
   for (int l_index_0 = 0; l_index_0 < gi_272; l_index_0++) {
      ObjectSet(gsa_252[l_index_0] + "_1", OBJPROP_COLOR, Background);
      ObjectSet(gsa_252[l_index_0] + "_2", OBJPROP_COLOR, Background);
      ObjectSet(gsa_252[l_index_0] + "_3", OBJPROP_COLOR, Background);
      ObjectSet(gsa_252[l_index_0] + "_4", OBJPROP_COLOR, Background);
      ObjectSet(gsa_252[l_index_0] + "_5", OBJPROP_COLOR, Background);
      ObjectSet(gsa_252[l_index_0] + "_6", OBJPROP_COLOR, Background);
      ObjectSet(gsa_252[l_index_0] + "_7", OBJPROP_COLOR, Background);
      ObjectSet(gsa_252[l_index_0] + "_8", OBJPROP_COLOR, Background);
      ObjectSet(gsa_252[l_index_0] + "_9", OBJPROP_COLOR, Background);
      ObjectSet(gsa_252[l_index_0] + "_10", OBJPROP_COLOR, Background);
   }
   ObjectSet("line1", OBJPROP_COLOR, CLR_NONE);
   ObjectSet("line2", OBJPROP_COLOR, CLR_NONE);
   ObjectSet("line3", OBJPROP_COLOR, CLR_NONE);
   ObjectSet("line4", OBJPROP_COLOR, CLR_NONE);
}

void paintCurr(int ai_0, double ad_4) {
   if (ad_4 > 0.0) ObjectSet(gsa_252[ai_0] + "_10", OBJPROP_COLOR, WarnaH1);
   if (ad_4 > 1.0) ObjectSet(gsa_252[ai_0] + "_9", OBJPROP_COLOR, WarnaH2);
   if (ad_4 > 2.0) ObjectSet(gsa_252[ai_0] + "_8", OBJPROP_COLOR, WarnaH3);
   if (ad_4 > 3.0) ObjectSet(gsa_252[ai_0] + "_7", OBJPROP_COLOR, WarnaH4);
   if (ad_4 > 4.0) ObjectSet(gsa_252[ai_0] + "_6", OBJPROP_COLOR, WarnaH5);
   if (ad_4 > 5.0) ObjectSet(gsa_252[ai_0] + "_5", OBJPROP_COLOR, WarnaH6);
   if (ad_4 > 6.0) ObjectSet(gsa_252[ai_0] + "_4", OBJPROP_COLOR, WarnaH7);
   if (ad_4 > 7.0) ObjectSet(gsa_252[ai_0] + "_3", OBJPROP_COLOR, WarnaH8);
   if (ad_4 > 8.0) ObjectSet(gsa_252[ai_0] + "_2", OBJPROP_COLOR, WarnaH9);
   if (ad_4 > 9.0) ObjectSet(gsa_252[ai_0] + "_1", OBJPROP_COLOR, WarnaH10);
   ObjectSet(gsa_252[ai_0], OBJPROP_COLOR, WarnaPair);
   ObjectSetText(gsa_252[ai_0] + "p", DoubleToStr(ad_4, 1), 8, "Arial Narrow", WarnaValue);
   
}

void paintLine() {
   ObjectSet("line1", OBJPROP_COLOR, CLR_NONE);
   ObjectSet("line2", OBJPROP_COLOR, Aqua);
   ObjectSet("line3", OBJPROP_COLOR, CLR_NONE);
   ObjectSet("line4", OBJPROP_COLOR, CLR_NONE);
   
}

