mv-i-TAACH_2_0

Author: ������ ��������� �. MaxV42
Price Data Components
Series array that contains open time of each bar
Indicators Used
Fractals
Miscellaneous
Implements a curve of type %1It issuies visual alerts to the screen
0 Views
0 Downloads
0 Favorites
mv-i-TAACH_2_0
//+---------------------------------------------------------------------------+
//|                                                        mv-i-TAACH_2_0.mq4 |
//|                                                Ìàêñèì Âàñèëåíêî Â. MaxV42 |
//|                                                http://                    |
//| Èíäèêàòîð ðàáîòàåò ïî ñòðàòåãèè "ÒÀÀ×".                                   |
//+---------------------------------------------------------------------------+
//| Âåðñèÿ 2.0 îò 27.12.2009                                                  |
//| Äîáàâëåíî:                                                                |
//|  - ïîñòðîåíèå êàíàëîâ ïî ìåòîäó ÒÀÀ×.                                     |
//+---------------------------------------------------------------------------+
//| Âåðñèÿ 1.0 îò 20.12.2009                                                  |
//+---------------------------------------------------------------------------+
#property copyright "Ìàêñèì Âàñèëåíêî Â. MaxV42"
#property link      "http://"
//+---------------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Blue
#property indicator_color2 Red
#property indicator_width1 1
#property indicator_width2 1
#property indicator_color3 Blue
#property indicator_color4 Red
#property indicator_width3 1
#property indicator_width4 1
//+---------------------------------------------------------------------------+
extern string Ind_Coment1="--- Ïàðàìåòðû ìëàäøåãî òàéìôðåéìà ---";
extern bool  ShowFractals_LowerTF      = false;    // Âêë/âûêë çíà÷êîâ ôðàêòàëîâ
extern bool  OnAlert_Pitchfork_LowerTF = false;    // Âêë/âûêë ñèãíàëà ïðè âûÿâëåíèè íîâîãî êàíàëà
extern int   nPitchfork_Upper_LowerTF  =     2;    // Êîëè÷åñòâî âûâîäèìûõ âîñõîäÿùèõ "Âèë Ýíäðþñà"
extern int   nPitchfork_Lower_LowerTF  =     2;    // Êîëè÷åñòâî âûâîäèìûõ íèñõîäÿùèõ "Âèë Ýíäðþñà"
extern bool  ShowPitchfork_LowerTF     = false;    // Âêë/âûêë "Âèë Ýíäðþñà" ìëàäøåãî òàéìôðåéìà
extern string Ind_Coment2="--- Ïàðàìåòðû ñòàðøåãî òàéìôðåéìà ---";
extern int   TF_Upper                  =   240;    // Ñòàðøèé òàéìôðåéì
extern bool  ShowFractals_UpperTF      = false;    // Âêë/âûêë çíà÷êîâ ôðàêòàëîâ
extern bool  OnAlert_Pitchfork_UpperTF = false;    // Âêë/âûêë ñèãíàëà ïðè âûÿâëåíèè íîâîãî êàíàëà
extern int   nPitchfork_Upper_UpperTF  =     1;    // Êîëè÷åñòâî âûâîäèìûõ âîñõîäÿùèõ "Âèë Ýíäðþñà"
extern int   nPitchfork_Lower_UpperTF  =     1;    // Êîëè÷åñòâî âûâîäèìûõ íèñõîäÿùèõ "Âèë Ýíäðþñà"
extern bool  ShowPitchfork_UpperTF     = false;    // Âêë/âûêë "Âèë Ýíäðþñà" ñòàðøåãî òàéìôðåéìà
//+---------------------------------------------------------------------------+
// ãëîáàëüíûå ïåðåìåííûå
int          nBars_LowerTF             =     0,    // êîë-âî áàðîâ ìëàäøåãî òàôìôðåéìà
nBars_UpperTF             =     0;    // êîë-âî áàðîâ ñòàðøåãî òàôìôðåéìà
int          QntPitchfork_Upper_LowerTF=     0;    // Êîëè÷åñòâî óæå îòðèñîâàííûõ âîñõîäÿùèõ "Âèë Ýíäðþñà"
int          QntPitchfork_Lower_LowerTF=     0;    // Êîëè÷åñòâî óæå îòðèñîâàííûõ íèñõîäÿùèõ "Âèë Ýíäðþñà"
int          QntPitchfork_Upper_UpperTF=     0;    // Êîëè÷åñòâî óæå îòðèñîâàííûõ âîñõîäÿùèõ "Âèë Ýíäðþñà"
int          QntPitchfork_Lower_UpperTF=     0;    // Êîëè÷åñòâî óæå îòðèñîâàííûõ íèñõîäÿùèõ "Âèë Ýíäðþñà"
//+---------------------------------------------------------------------------+
extern string Ind_Coment3="--- Ïàðàìåòðû îòîáðàæåíèÿ êàíàëîâ ---";
extern bool  ShowChannels              =  true;    // Âêë/âûêë àëãîðèòìà ðàñ÷åòà êàíàëîâ 
extern bool  ShowChannels_LowerTF      =  true;    // Âêë/âûêë êàíàëîâ ìëàäøåãî òàéìôðåéìà
extern bool  ShowChannels_UpperTF      =  true;    // Âêë/âûêë êàíàëîâ ñòàðøåãî òàéìôðåéìà
extern int   nChannels_LowerTF         =     2;    // êîë-âî êàíàëîâ ìëàäøåãî òàôìôðåéìà
extern int   nChannels_UpperTF         =     1;    // êîë-âî êàíàëîâ ñòàðøåãî òàôìôðåéìà
extern color Channels_Color0           = DodgerBlue;  // Öâåò 0 êàíàëà
extern color Channels_Color1           =      Green;  // Öâåò 1 êàíàëà
extern color Channels_Color2           =    Magenta;  // Öâåò 2 êàíàëà
extern color Channels_Color3           =       Peru;  // Öâåò 3 êàíàëà
extern color Channels_Color4           =      Black;  // Öâåò îñòàëüíûõ êàíàëîâ
//+---------------------------------------------------------------------------+
// ãëîáàëüíûå ïåðåìåííûå
int QntChannels_LowerTF = 0,                       // êîë-âî óæå îòðèñîâàííûõ êàíàëîâ ìëàäøåãî òàôìôðåéìà
QntChannels_UpperTF = 0;                       // êîë-âî óæå îòðèñîâàííûõ êàíàëîâ ñòàðøåãî òàôìôðåéìà
string       mChannels_LowerTF[][8];               // ìàññèâ ñ ïàðàìåòðàìè êàíàëîâ ìëàäøåãî òàôìôðåéìà
                                                   //  mChannels_LowerTF[i][0]               // 0-âîñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìàêñèìàëüíûì îïîðíûì òî÷êàì
// 1-íèñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìàêñèìàëüíûì îïîðíûì òî÷êàì
// 2-âîñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìèíèìàëüíûì îïîðíûì òî÷êàì
// 3-íèñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìèíèìàëüíûì îïîðíûì òî÷êàì
//  mChannels_LowerTF[i][1]               // âðåìÿ ïåðâîé  îïîðíîé òî÷êè
//  mChannels_LowerTF[i][2]               // öåíà  ïåðâîé  îïîðíîé òî÷êè
//  mChannels_LowerTF[i][3]               // âðåìÿ âòîðîé  îïîðíîé òî÷êè
//  mChannels_LowerTF[i][4]               // öåíà  âòîðîé  îïîðíîé òî÷êè
//  mChannels_LowerTF[i][5]               // âðåìÿ òðåòüåé îïîðíîé òî÷êè
//  mChannels_LowerTF[i][6]               // öåíà  òðåòüåé îïîðíîé òî÷êè
//  mChannels_LowerTF[i][7]               // øèðèíà êàíàëà
string       mChannels_UpperTF[][8];               // ìàññèâ ñ ïàðàìåòðàìè êàíàëîâ ñòàðøåãî òàôìôðåéìà
                                                   //  mChannels_UpperTF[i][0]               // 0-âîñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìàêñèìàëüíûì îïîðíûì òî÷êàì
// 1-íèñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìàêñèìàëüíûì îïîðíûì òî÷êàì
// 2-âîñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìèíèìàëüíûì îïîðíûì òî÷êàì
// 3-íèñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìèíèìàëüíûì îïîðíûì òî÷êàì
//  mChannels_UpperTF[i][1]               // âðåìÿ ïåðâîé  îïîðíîé òî÷êè
//  mChannels_UpperTF[i][2]               // öåíà  ïåðâîé  îïîðíîé òî÷êè
//  mChannels_UpperTF[i][3]               // âðåìÿ âòîðîé  îïîðíîé òî÷êè
//  mChannels_UpperTF[i][4]               // öåíà  âòîðîé  îïîðíîé òî÷êè
//  mChannels_UpperTF[i][5]               // âðåìÿ òðåòüåé îïîðíîé òî÷êè
//  mChannels_UpperTF[i][6]               // öåíà  òðåòüåé îïîðíîé òî÷êè
//  mChannels_UpperTF[i][7]               // øèðèíà êàíàëà
//----- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
//+---------------------------------------------------------------------------+
void init() 
  {        // Custom indicator initialization function
   int    Qnt=ObjectsTotal();
// ----- Indicators Properties
   SetIndexStyle(0,DRAW_ARROW);
   SetIndexArrow(0,119);
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexEmptyValue(0,0.0);
   SetIndexStyle(1,DRAW_ARROW);
   SetIndexArrow(1,119);
   SetIndexBuffer(1,ExtMapBuffer2);
   SetIndexEmptyValue(1,0.0);
   SetIndexStyle(2,DRAW_ARROW);
   SetIndexArrow(2,117);
   SetIndexBuffer(2,ExtMapBuffer3);
   SetIndexEmptyValue(2,0.0);
   SetIndexStyle(3,DRAW_ARROW);
   SetIndexArrow(3,117);
   SetIndexBuffer(3,ExtMapBuffer4);
   SetIndexEmptyValue(3,0.0);
// ----- Name for DataWindow and indicator subwindow label
   IndicatorShortName("mv-i-TAACH_2_0");
   SetIndexLabel(0,"FractalsUp_LowerTF");
   SetIndexLabel(1,"FractalsDown_LowerTF");
   SetIndexLabel(2,"FractalsUp_UpperTF");
   SetIndexLabel(3,"FractalsDown_UpperTF");
// ----- óñòàíàâëèâàåì êîëè÷åñòâî ýëåìåíòîâ â ìàññèâàõ êàíàëîâ
   ArrayResize(mChannels_LowerTF,nChannels_LowerTF); ArrayResize(mChannels_UpperTF,nChannels_UpperTF);

   return;
  }
//+---------------------------------------------------------------------------+
void deinit() 
  {     // Custom indicator deinitialization function
   int    Qnt=ObjectsTotal();
// ----- Óäàëÿåì òðåíäîâûå ëèíèè
   for(int i=0; i<Qnt; i++) 
     {  // Öèêë ïî îáúåêòàì
      if(StringFind(ObjectName(i),"Pitchfork_Upper",0)>=0) 
        {
         ObjectDelete(ObjectName(i));     // íàïðàâëåííûå ââåðõ
         i--; continue;
        }
      if(StringFind(ObjectName(i),"Pitchfork_Lower",0)>=0) 
        {
         ObjectDelete(ObjectName(i));     // íàïðàâëåííûå âíèç
         i--; continue;
        }
      if(StringFind(ObjectName(i),"Channel",0)>=0) 
        {
         ObjectDelete(ObjectName(i));     // óäàëÿì êàíàëû
         i--; continue;
        }
      if(i>=ObjectsTotal()) break;
     }
   return;
  }
//+---------------------------------------------------------------------------+
void start() 
  {        // Custom indicator iteration function
   int    counted_bars=IndicatorCounted();
   int    limit;
   int    Spred=(int)MarketInfo(Symbol(),MODE_SPREAD);
   double Fractals_Upper=0,Fractals_Lower=0;
// ----- Ïðîâåðêà âíåøíèõ ïàðàìåòðîâ èíäèêàòîðà
   if(!CheckParameters()) return;
// ----- íîâûé áàð íå ïîÿâèëñÿ
   if(!isNewBar_LowerTF()) return;
// ----- Ïîñëåäíèé ïîñ÷èòàííûé áàð áóäåò ïåðåñ÷èòàí
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars; if(limit>500) limit=500;
// ----- Îñíîâíîé öèêë
   for(int i=limit; i>=0; i--) 
     {
      //--------------------------------------------------------- 1 --
      Fractals_Upper=iFractals(NULL,0,MODE_UPPER,i);
      Fractals_Lower=iFractals(NULL,0,MODE_LOWER,i);
      // ----- áëîê âåðõíèõ ôðàêòàëîâ ìëàäøåãî òàéìôðåéìà
      if(Fractals_Upper>0) 
        {
         // ----- ðàáîòàåì ïî ñòðàòåãèè "Âèëû Ýíäðþñà"
         if(!ShowChannels) 
           {
            // ----- çäåñü íóæíî çàïóñòèòü ôóíêöèþ îòðèñîâêè íèñõîäÿùèõ "Âèë Ýíäðþñà"
            if(ShowPitchfork_LowerTF) 
              {
               if(DrawLowerPitchfork(i,0)) 
                 {
                  // ----- çäåñü àëåðò
                  if(OnAlert_Pitchfork_LowerTF && i==0) 
                    {
                     Alert(Symbol(),Period()," Íèñõîäÿùèå Âèëû Ýíäðþñà! ",TimeToStr(Time[i],TIME_DATE|TIME_SECONDS));
                    }
                 }
              }
           }
         // ----- ðàáîòàåì ïî ñòðàòåãèè "Êàíàëû"
         if(ShowChannels) 
           {
            // ----- çäåñü íóæíî çàïóñòèòü ôóíêöèþ îòðèñîâêè "Êàíàëîâ"
            if(ShowChannels_LowerTF) 
              {
               CheckUpperPoints(i,0);
              }
           }
         // ----- îòîáðàæàåì âðàêòàëû ìëàäøåãî òàéìôðåéìà
         if(ShowFractals_LowerTF) 
           {
            ExtMapBuffer1[i]=Fractals_Upper+Spred*Point;
           }
        }
      // ----- áëîê íèæíèõ ôðàêòàëîâ ìëàäøåãî òàéìôðåéìà
      if(Fractals_Lower>0) 
        {
         // ----- ðàáîòàåì ïî ñòðàòåãèè "Âèëû Ýíäðþñà"
         if(!ShowChannels) 
           {
            // ----- çäåñü íóæíî çàïóñòèòü ôóíêöèþ îòðèñîâêè âîñõîäÿùèõ "Âèë Ýíäðþñà"
            if(ShowPitchfork_LowerTF) 
              {
               if(DrawUpperPitchfork(i,0)) 
                 {
                  // ----- çäåñü àëåðò
                  if(OnAlert_Pitchfork_LowerTF && i==0) 
                    {
                     Alert(Symbol(),Period()," Âîñõîäÿùèå Âèëû Ýíäðþñà! ",TimeToStr(Time[i],TIME_DATE|TIME_SECONDS));
                    }
                 }
              }
           }
         // ----- ðàáîòàåì ïî ñòðàòåãèè "Êàíàëû"
         if(ShowChannels) 
           {
            // ----- çäåñü íóæíî çàïóñòèòü ôóíêöèþ îòðèñîâêè "Êàíàëîâ"
            if(ShowChannels_LowerTF) 
              {
               CheckLowerPoints(i,0);
              }
           }
         // ----- îòîáðàæàåì âðàêòàëû ìëàäøåãî òàéìôðåéìà
         if(ShowFractals_LowerTF) 
           {
            ExtMapBuffer2[i]=Fractals_Lower-Spred*Point;
           }
        }
      //--------------------------------------------------------- 2 --
      Fractals_Upper=0;Fractals_Lower=0;
      //--------------------------------------------------------- 3 --
      // ----- ïîÿâèëñÿ íîâûé áàð ñòàðøåãî òàéìôðåéìà
      if(isNewBar_UpperTF(Time[i])) 
        {
         Fractals_Upper=iFractals(NULL,TF_Upper,MODE_UPPER,nBars_UpperTF);
         Fractals_Lower=iFractals(NULL,TF_Upper,MODE_LOWER,nBars_UpperTF);
         // ----- áëîê âåðõíèõ ôðàêòàëîâ ñòàðøåãî òàéìôðåéìà
         if(Fractals_Upper>0) 
           {
            // ----- ðàáîòàåì ïî ñòðàòåãèè "Âèëû Ýíäðþñà"
            if(!ShowChannels) 
              {
               // ----- çäåñü íóæíî çàïóñòèòü ôóíêöèþ îòðèñîâêè íèñõîäÿùèõ "Âèë Ýíäðþñà"
               if(ShowPitchfork_UpperTF) 
                 {
                  if(DrawLowerPitchfork(nBars_UpperTF,TF_Upper)) 
                    {
                     // ----- çäåñü àëåðò
                     if(OnAlert_Pitchfork_UpperTF && nBars_UpperTF==0) 
                       {
                        Alert(Symbol(),Period()," Íèñõîäÿùèå Âèëû Ýíäðþñà! ",TimeToStr(Time[i],TIME_DATE|TIME_SECONDS));
                       }
                    }
                 }
              }
            // ----- ðàáîòàåì ïî ñòðàòåãèè "Êàíàëû"
            if(ShowChannels) 
              {
               // ----- çäåñü íóæíî çàïóñòèòü ôóíêöèþ îòðèñîâêè "Êàíàëîâ"
               if(ShowChannels_UpperTF) 
                 {
                  CheckUpperPoints(nBars_UpperTF,TF_Upper);
                 }
              }
            // ----- îòîáðàæàåì âðàêòàëû ñòàðøåãî òàéìôðåéìà
            if(ShowFractals_UpperTF) 
              {
               ExtMapBuffer3[iBarShift(NULL,0,iTime(NULL,TF_Upper,nBars_UpperTF),false)]=Fractals_Upper+Spred*Point;
              }
           }
         // ----- áëîê íèæíèõ ôðàêòàëîâ ñòàðøåãî òàéìôðåéìà
         if(Fractals_Lower>0) 
           {
            // ----- ðàáîòàåì ïî ñòðàòåãèè "Âèëû Ýíäðþñà"
            if(!ShowChannels) 
              {
               // ----- çäåñü íóæíî çàïóñòèòü ôóíêöèþ îòðèñîâêè âîñõîäÿùèõ "Âèë Ýíäðþñà"
               if(ShowPitchfork_UpperTF) 
                 {
                  if(DrawUpperPitchfork(nBars_UpperTF,TF_Upper)) 
                    {
                     // ----- çäåñü àëåðò
                     if(OnAlert_Pitchfork_UpperTF && nBars_UpperTF==0) 
                       {
                        Alert(Symbol(),Period()," Âîñõîäÿùèå Âèëû Ýíäðþñà! ",TimeToStr(Time[i],TIME_DATE|TIME_SECONDS));
                       }
                    }
                 }
              }
            // ----- ðàáîòàåì ïî ñòðàòåãèè "Êàíàëû"
            if(ShowChannels) 
              {
               // ----- çäåñü íóæíî çàïóñòèòü ôóíêöèþ îòðèñîâêè "Êàíàëîâ"
               if(ShowChannels_UpperTF) 
                 {
                  CheckLowerPoints(nBars_UpperTF,TF_Upper);
                 }
              }
            // ----- îòîáðàæàåì âðàêòàëû ñòàðøåãî òàéìôðåéìà
            if(ShowFractals_UpperTF) 
              {
               ExtMapBuffer4[iBarShift(NULL,0,iTime(NULL,TF_Upper,nBars_UpperTF),false)]=Fractals_Lower-Spred*Point;
              }
           }
        }

     }

   return;
  }
//+---------------------------------------------------------------------------+
bool isNewBar_LowerTF() 
  {  // Ôóíêöèÿ âîçâðàùàåò true, åñëè ïîÿâèòüñÿ íîâûé áàð íà ìëàäøåì òéàìôðåéìå
   if(nBars_LowerTF!=Bars) 
     {
      nBars_LowerTF=Bars; return(true);
     }
   return(false);
  }
//+---------------------------------------------------------------------------+
bool isNewBar_UpperTF(datetime DateTime_) 
  {  // Ôóíêöèÿ âîçâðàùàåò true, åñëè ïîÿâèòüñÿ íîâûé áàð íà ñòàðøåì òéàìôðåéìå
   if(nBars_UpperTF!=iBarShift(NULL,TF_Upper,DateTime_,false)) 
     {
      nBars_UpperTF=iBarShift(NULL,TF_Upper,DateTime_,false); return(true);
     }
   return(false);
  }
//+---------------------------------------------------------------------------+
bool CheckParameters() 
  {     // Ôóíêöèÿ ïðîâåðêè âíåøíèõ ïàðàìåòðîâ èíäèêàòîðà
   string TextMessage;
   if(nPitchfork_Upper_LowerTF<1 || nPitchfork_Lower_LowerTF<1 || 
      nPitchfork_Upper_UpperTF<1 || nPitchfork_Lower_UpperTF<1) 
     {
      TextMessage="Íåâåðíûå çíà÷åíèÿ âíåøíèõ ïàðàìåòðîâ èíäèêàòîðà!"+
                  "Êîëè÷åñòâî âèë íå ìîãåò áûòü <(ìåíüøå) 1";
      Alert(TextMessage);
      return(false);
     }
   if(TF_Upper<=Period()) 
     {
      TextMessage="Íåâåðíûå çíà÷åíèÿ âíåøíèõ ïàðàìåòðîâ èíäèêàòîðà!"+
                  "Çíà÷åíèå ñòàðøåãî òàéìôðåéìà äîëæíî áûòü >(áîëüøå) òåêóùåãî!";
      Alert(TextMessage);
      return(false);
     }

   return(true);
  }
//+-------------------------------------------------------------------------------------------------------------------------+
//+-------------------------------------------------------------------------------------------------------------------------+
//+------------------------------------------ ÔÓÍÊÖÈÈ ÎÒÐÈÑÎÂÊÈ ÂÈË ÝÍÄÐÞÑÀ ------------------------------------------------+
//+-------------------------------------------------------------------------------------------------------------------------+
//+-------------------------------------------------------------------------------------------------------------------------+

//+---------------------------------------------------------------------------+
bool DrawUpperPitchfork(int nBar,int TF=0) 
  {  // Ôóíêöèÿ îïðåäåëÿåò è ðèñóåò âîñõîäÿùèå "Âèëû Ýíäðþñà"
   double Fractals_Upper=0,Fractals_Lower=0;
   string mFractals[3][3];
   int i,j=0;
//--------------------------------------------------------- I --
// ----- îïðåäåëÿåì îïîðíûå òî÷êè
   for(i=nBar; i<Bars; i++) 
     {  // Öèêë ïî áàðàì
      Fractals_Upper=iFractals(NULL,TF,MODE_UPPER,i);
      Fractals_Lower=iFractals(NULL,TF,MODE_LOWER,i);
      // ----- ÂÀÆÍÎ! íà÷èíàåì ïðîâåðêó ñ íèæíåãî ôðàêòàëà 
      if(j<3 && Fractals_Lower>0) 
        {
         mFractals[j][0]=TimeToStr(iTime(NULL,TF,i),TIME_DATE|TIME_MINUTES);
         mFractals[j][1]=DoubleToStr(Fractals_Lower,Digits);
         mFractals[j][2]=(string)-1;
         j++;
        }
      if(j<3 && Fractals_Upper>0) 
        {
         mFractals[j][0]=TimeToStr(iTime(NULL,TF,i),TIME_DATE|TIME_MINUTES);
         mFractals[j][1]=DoubleToStr(Fractals_Upper,Digits);
         mFractals[j][2]=(string)1;
         j++;
        }
      if(j>3) break;
     }
//-------------------------------------------------------- II --
// ------ ïðîâåðÿåì ïîñëåäîâòåëüíîñòü îïîðíûõ òî÷åê: MODE_LOWER->MODE_UPPER->MODE_LOWER
   if(StrToDouble(mFractals[0][2])==-1 && StrToDouble(mFractals[1][2])==1 && StrToDouble(mFractals[2][2])==-1) 
     {
      //--------------------------------------------------------- 1 --
      // ----- ìëàäøèé òàéìôðåéì
      if(TF==0) 
        {
         if(QntPitchfork_Upper_LowerTF<nPitchfork_Upper_LowerTF) 
           {  // êîë-âî âèë íå ïðåâûøåíî, ðèñóåì íîâûå âèëû
            ObjectCreate("Pitchfork_Upper_LowerTF"+(string)QntPitchfork_Upper_LowerTF,OBJ_PITCHFORK,0,
                         StrToTime(mFractals[2][0]),StrToDouble(mFractals[2][1]),
                         StrToTime(mFractals[1][0]),StrToDouble(mFractals[1][1]),
                         StrToTime(mFractals[0][0]),StrToDouble(mFractals[0][1]));
            ObjectSet("Pitchfork_Upper_LowerTF"+(string)QntPitchfork_Upper_LowerTF,OBJPROP_COLOR,Red);
            ObjectSet("Pitchfork_Upper_LowerTF"+(string)QntPitchfork_Upper_LowerTF,OBJPROP_STYLE,STYLE_DASH);
            QntPitchfork_Upper_LowerTF++;
           }
         if(QntPitchfork_Upper_LowerTF>=nPitchfork_Upper_LowerTF) 
           {  // êîë-âî âèë ïðåâûøåíî, èçìåíÿåì ïàðàìåòðû ïåðâûõ âèë
            for(i=0; i<=QntPitchfork_Upper_LowerTF-2; i++) 
              {
               ObjectSet("Pitchfork_Upper_LowerTF"+(string)i,OBJPROP_TIME1,ObjectGet("Pitchfork_Upper_LowerTF"+(string)(i+1),OBJPROP_TIME1));
               ObjectSet("Pitchfork_Upper_LowerTF"+(string)i,OBJPROP_PRICE1,ObjectGet("Pitchfork_Upper_LowerTF"+(string)(i+1),OBJPROP_PRICE1));
               ObjectSet("Pitchfork_Upper_LowerTF"+(string)i,OBJPROP_TIME2,ObjectGet("Pitchfork_Upper_LowerTF"+(string)(i+1),OBJPROP_TIME2));
               ObjectSet("Pitchfork_Upper_LowerTF"+(string)i,OBJPROP_PRICE2,ObjectGet("Pitchfork_Upper_LowerTF"+(string)(i+1),OBJPROP_PRICE2));
               ObjectSet("Pitchfork_Upper_LowerTF"+(string)i,OBJPROP_TIME3,ObjectGet("Pitchfork_Upper_LowerTF"+(string)(i+1),OBJPROP_TIME3));
               ObjectSet("Pitchfork_Upper_LowerTF"+(string)i,OBJPROP_PRICE3,ObjectGet("Pitchfork_Upper_LowerTF"+(string)(i+1),OBJPROP_PRICE3));
              }
            ObjectSet("Pitchfork_Upper_LowerTF"+(string)(QntPitchfork_Upper_LowerTF-1),OBJPROP_TIME1,StrToTime(mFractals[2][0]));
            ObjectSet("Pitchfork_Upper_LowerTF"+(string)(QntPitchfork_Upper_LowerTF-1),OBJPROP_PRICE1,StrToDouble(mFractals[2][1]));
            ObjectSet("Pitchfork_Upper_LowerTF"+(string)(QntPitchfork_Upper_LowerTF-1),OBJPROP_TIME2,StrToTime(mFractals[1][0]));
            ObjectSet("Pitchfork_Upper_LowerTF"+(string)(QntPitchfork_Upper_LowerTF-1),OBJPROP_PRICE2,StrToDouble(mFractals[1][1]));
            ObjectSet("Pitchfork_Upper_LowerTF"+(string)(QntPitchfork_Upper_LowerTF-1),OBJPROP_TIME3,StrToTime(mFractals[0][0]));
            ObjectSet("Pitchfork_Upper_LowerTF"+(string)(QntPitchfork_Upper_LowerTF-1),OBJPROP_PRICE3,StrToDouble(mFractals[0][1]));
            ObjectSet("Pitchfork_Upper_LowerTF"+(string)(QntPitchfork_Upper_LowerTF-1),OBJPROP_STYLE,STYLE_SOLID);
           }
        }
      //--------------------------------------------------------- 2 --
      // ----- ñòàðøèé òàéìôðåéì
      if(TF!=0) 
        {
         if(QntPitchfork_Upper_UpperTF<nPitchfork_Upper_UpperTF) 
           {  // êîë-âî âèë íå ïðåâûøåíî, ðèñóåì íîâûå âèëû
            ObjectCreate("Pitchfork_Upper_UpperTF"+(string)QntPitchfork_Upper_UpperTF,OBJ_PITCHFORK,0,
                         StrToTime(mFractals[2][0]),StrToDouble(mFractals[2][1]),
                         StrToTime(mFractals[1][0]),StrToDouble(mFractals[1][1]),
                         StrToTime(mFractals[0][0]),StrToDouble(mFractals[0][1]));
            ObjectSet("Pitchfork_Upper_UpperTF"+(string)QntPitchfork_Upper_UpperTF,OBJPROP_COLOR,Red);
            ObjectSet("Pitchfork_Upper_UpperTF"+(string)QntPitchfork_Upper_UpperTF,OBJPROP_STYLE,STYLE_DASH);
            ObjectSet("Pitchfork_Upper_UpperTF"+(string)QntPitchfork_Upper_UpperTF,OBJPROP_WIDTH,2);
            QntPitchfork_Upper_UpperTF++;
           }
         if(QntPitchfork_Upper_UpperTF>=nPitchfork_Upper_UpperTF) 
           {  // êîë-âî âèë ïðåâûøåíî, èçìåíÿåì ïàðàìåòðû ïåðâûõ âèë
            for(i=0; i<=QntPitchfork_Upper_UpperTF-2; i++) 
              {
               ObjectSet("Pitchfork_Upper_UpperTF"+(string)i,OBJPROP_TIME1,ObjectGet("Pitchfork_Upper_UpperTF"+(string)(i+1),OBJPROP_TIME1));
               ObjectSet("Pitchfork_Upper_UpperTF"+(string)i,OBJPROP_PRICE1,ObjectGet("Pitchfork_Upper_UpperTF"+(string)(i+1),OBJPROP_PRICE1));
               ObjectSet("Pitchfork_Upper_UpperTF"+(string)i,OBJPROP_TIME2,ObjectGet("Pitchfork_Upper_UpperTF"+(string)(i+1),OBJPROP_TIME2));
               ObjectSet("Pitchfork_Upper_UpperTF"+(string)i,OBJPROP_PRICE2,ObjectGet("Pitchfork_Upper_UpperTF"+(string)(i+1),OBJPROP_PRICE2));
               ObjectSet("Pitchfork_Upper_UpperTF"+(string)i,OBJPROP_TIME3,ObjectGet("Pitchfork_Upper_UpperTF"+(string)(i+1),OBJPROP_TIME3));
               ObjectSet("Pitchfork_Upper_UpperTF"+(string)i,OBJPROP_PRICE3,ObjectGet("Pitchfork_Upper_UpperTF"+(string)(i+1),OBJPROP_PRICE3));
              }
            ObjectSet("Pitchfork_Upper_UpperTF"+(string)(QntPitchfork_Upper_UpperTF-1),OBJPROP_TIME1,StrToTime(mFractals[2][0]));
            ObjectSet("Pitchfork_Upper_UpperTF"+(string)(QntPitchfork_Upper_UpperTF-1),OBJPROP_PRICE1,StrToDouble(mFractals[2][1]));
            ObjectSet("Pitchfork_Upper_UpperTF"+(string)(QntPitchfork_Upper_UpperTF-1),OBJPROP_TIME2,StrToTime(mFractals[1][0]));
            ObjectSet("Pitchfork_Upper_UpperTF"+(string)(QntPitchfork_Upper_UpperTF-1),OBJPROP_PRICE2,StrToDouble(mFractals[1][1]));
            ObjectSet("Pitchfork_Upper_UpperTF"+(string)(QntPitchfork_Upper_UpperTF-1),OBJPROP_TIME3,StrToTime(mFractals[0][0]));
            ObjectSet("Pitchfork_Upper_UpperTF"+(string)(QntPitchfork_Upper_UpperTF-1),OBJPROP_PRICE3,StrToDouble(mFractals[0][1]));
            ObjectSet("Pitchfork_Upper_UpperTF"+(string)(QntPitchfork_Upper_UpperTF-1),OBJPROP_STYLE,STYLE_SOLID);
           }
        }
      return(true);
     }
   return(false);
  }
//+---------------------------------------------------------------------------+
bool DrawLowerPitchfork(int nBar,int TF=0) 
  {  // Ôóíêöèÿ îïðåäåëÿåò è ðèñóåò íèñõîäÿùèå "Âèëû Ýíäðþñà"
   double Fractals_Upper=0,Fractals_Lower=0;
   string mFractals[3][3];
   int i,j=0;
//--------------------------------------------------------- I --
// ----- îïðåäåëÿåì îïîðíûå òî÷êè
   for(i=nBar; i<Bars; i++) 
     {  // Öèêë ïî áàðàì
      Fractals_Upper=iFractals(NULL,TF,MODE_UPPER,i);
      Fractals_Lower=iFractals(NULL,TF,MODE_LOWER,i);
      // ----- ÂÀÆÍÎ! íà÷èíàåì ïðîâåðêó ñ âåðõíåãî ôðàêòàëà 
      if(j<3 && Fractals_Upper>0) 
        {
         mFractals[j][0]=TimeToStr(iTime(NULL,TF,i),TIME_DATE|TIME_MINUTES);
         mFractals[j][1]=DoubleToStr(Fractals_Upper,Digits);
         mFractals[j][2]=(string)1;
         j++;
        }
      if(j<3 && Fractals_Lower>0) 
        {
         mFractals[j][0]=TimeToStr(iTime(NULL,TF,i),TIME_DATE|TIME_MINUTES);
         mFractals[j][1]=DoubleToStr(Fractals_Lower,Digits);
         mFractals[j][2]=(string)-1;
         j++;
        }
      if(j>3) break;
     }
//-------------------------------------------------------- II --
// ------ ïðîâåðÿåì ïîñëåäîâòåëüíîñòü îïîðíûõ òî÷åê: MODE_UPPER->MODE_LOWER->MODE_UPPER
   if(StrToDouble(mFractals[0][2])==1 && StrToDouble(mFractals[1][2])==-1 && StrToDouble(mFractals[2][2])==1) 
     {
      //--------------------------------------------------------- 1 --
      // ----- ìëàäøèé òàéìôðåéì
      if(TF==0) 
        {
         if(QntPitchfork_Lower_LowerTF<nPitchfork_Lower_LowerTF) 
           {  // êîë-âî âèë íå ïðåâûøåíî, ðèñóåì íîâûå âèëû
            ObjectCreate("Pitchfork_Lower_LowerTF"+(string)QntPitchfork_Lower_LowerTF,OBJ_PITCHFORK,0,
                         StrToTime(mFractals[2][0]),StrToDouble(mFractals[2][1]),
                         StrToTime(mFractals[1][0]),StrToDouble(mFractals[1][1]),
                         StrToTime(mFractals[0][0]),StrToDouble(mFractals[0][1]));
            ObjectSet("Pitchfork_Lower_LowerTF"+(string)QntPitchfork_Lower_LowerTF,OBJPROP_COLOR,Blue);
            ObjectSet("Pitchfork_Lower_LowerTF"+(string)QntPitchfork_Lower_LowerTF,OBJPROP_STYLE,STYLE_DASH);
            QntPitchfork_Lower_LowerTF++;
           }
         if(QntPitchfork_Lower_LowerTF>=nPitchfork_Lower_LowerTF) 
           {  // êîë-âî âèë ïðåâûøåíî, èçìåíÿåì ïàðàìåòðû ïåðâûõ âèë
            for(i=0; i<=QntPitchfork_Lower_LowerTF-2; i++) 
              {
               ObjectSet("Pitchfork_Lower_LowerTF"+(string)i,OBJPROP_TIME1,ObjectGet("Pitchfork_Lower_LowerTF"+(string)(i+1),OBJPROP_TIME1));
               ObjectSet("Pitchfork_Lower_LowerTF"+(string)i,OBJPROP_PRICE1,ObjectGet("Pitchfork_Lower_LowerTF"+(string)(i+1),OBJPROP_PRICE1));
               ObjectSet("Pitchfork_Lower_LowerTF"+(string)i,OBJPROP_TIME2,ObjectGet("Pitchfork_Lower_LowerTF"+(string)(i+1),OBJPROP_TIME2));
               ObjectSet("Pitchfork_Lower_LowerTF"+(string)i,OBJPROP_PRICE2,ObjectGet("Pitchfork_Lower_LowerTF"+(string)(i+1),OBJPROP_PRICE2));
               ObjectSet("Pitchfork_Lower_LowerTF"+(string)i,OBJPROP_TIME3,ObjectGet("Pitchfork_Lower_LowerTF"+(string)(i+1),OBJPROP_TIME3));
               ObjectSet("Pitchfork_Lower_LowerTF"+(string)i,OBJPROP_PRICE3,ObjectGet("Pitchfork_Lower_LowerTF"+(string)(i+1),OBJPROP_PRICE3));
              }
            ObjectSet("Pitchfork_Lower_LowerTF"+(string)(QntPitchfork_Lower_LowerTF-1),OBJPROP_TIME1,StrToTime(mFractals[2][0]));
            ObjectSet("Pitchfork_Lower_LowerTF"+(string)(QntPitchfork_Lower_LowerTF-1),OBJPROP_PRICE1,StrToDouble(mFractals[2][1]));
            ObjectSet("Pitchfork_Lower_LowerTF"+(string)(QntPitchfork_Lower_LowerTF-1),OBJPROP_TIME2,StrToTime(mFractals[1][0]));
            ObjectSet("Pitchfork_Lower_LowerTF"+(string)(QntPitchfork_Lower_LowerTF-1),OBJPROP_PRICE2,StrToDouble(mFractals[1][1]));
            ObjectSet("Pitchfork_Lower_LowerTF"+(string)(QntPitchfork_Lower_LowerTF-1),OBJPROP_TIME3,StrToTime(mFractals[0][0]));
            ObjectSet("Pitchfork_Lower_LowerTF"+(string)(QntPitchfork_Lower_LowerTF-1),OBJPROP_PRICE3,StrToDouble(mFractals[0][1]));
            ObjectSet("Pitchfork_Lower_LowerTF"+(string)(QntPitchfork_Lower_LowerTF-1),OBJPROP_STYLE,STYLE_SOLID);
           }
        }
      //--------------------------------------------------------- 2 --
      // ----- ñòàðøèé òàéìôðåéì
      if(TF!=0) 
        {
         if(QntPitchfork_Lower_UpperTF<nPitchfork_Lower_UpperTF) 
           {  // êîë-âî âèë íå ïðåâûøåíî, ðèñóåì íîâûå âèëû
            ObjectCreate("Pitchfork_Lower_UpperTF"+(string)QntPitchfork_Lower_UpperTF,OBJ_PITCHFORK,0,
                         StrToTime(mFractals[2][0]),StrToDouble(mFractals[2][1]),
                         StrToTime(mFractals[1][0]),StrToDouble(mFractals[1][1]),
                         StrToTime(mFractals[0][0]),StrToDouble(mFractals[0][1]));
            ObjectSet("Pitchfork_Lower_UpperTF"+(string)QntPitchfork_Lower_UpperTF,OBJPROP_COLOR,Blue);
            ObjectSet("Pitchfork_Lower_UpperTF"+(string)QntPitchfork_Lower_UpperTF,OBJPROP_STYLE,STYLE_DASH);
            ObjectSet("Pitchfork_Lower_UpperTF"+(string)QntPitchfork_Lower_UpperTF,OBJPROP_WIDTH,2);
            QntPitchfork_Lower_UpperTF++;
           }
         if(QntPitchfork_Lower_UpperTF>=nPitchfork_Lower_UpperTF) 
           {  // êîë-âî âèë ïðåâûøåíî, èçìåíÿåì ïàðàìåòðû ïåðâûõ âèë
            for(i=0; i<=QntPitchfork_Lower_UpperTF-2; i++) 
              {
               ObjectSet("Pitchfork_Lower_UpperTF"+(string)i,OBJPROP_TIME1,ObjectGet("Pitchfork_Lower_UpperTF"+(string)(i+1),OBJPROP_TIME1));
               ObjectSet("Pitchfork_Lower_UpperTF"+(string)i,OBJPROP_PRICE1,ObjectGet("Pitchfork_Lower_UpperTF"+(string)(i+1),OBJPROP_PRICE1));
               ObjectSet("Pitchfork_Lower_UpperTF"+(string)i,OBJPROP_TIME2,ObjectGet("Pitchfork_Lower_UpperTF"+(string)(i+1),OBJPROP_TIME2));
               ObjectSet("Pitchfork_Lower_UpperTF"+(string)i,OBJPROP_PRICE2,ObjectGet("Pitchfork_Lower_UpperTF"+(string)(i+1),OBJPROP_PRICE2));
               ObjectSet("Pitchfork_Lower_UpperTF"+(string)i,OBJPROP_TIME3,ObjectGet("Pitchfork_Lower_UpperTF"+(string)(i+1),OBJPROP_TIME3));
               ObjectSet("Pitchfork_Lower_UpperTF"+(string)i,OBJPROP_PRICE3,ObjectGet("Pitchfork_Lower_UpperTF"+(string)(i+1),OBJPROP_PRICE3));
              }
            ObjectSet("Pitchfork_Lower_UpperTF"+(string)(QntPitchfork_Lower_UpperTF-1),OBJPROP_TIME1,StrToTime(mFractals[2][0]));
            ObjectSet("Pitchfork_Lower_UpperTF"+(string)(QntPitchfork_Lower_UpperTF-1),OBJPROP_PRICE1,StrToDouble(mFractals[2][1]));
            ObjectSet("Pitchfork_Lower_UpperTF"+(string)(QntPitchfork_Lower_UpperTF-1),OBJPROP_TIME2,StrToTime(mFractals[1][0]));
            ObjectSet("Pitchfork_Lower_UpperTF"+(string)(QntPitchfork_Lower_UpperTF-1),OBJPROP_PRICE2,StrToDouble(mFractals[1][1]));
            ObjectSet("Pitchfork_Lower_UpperTF"+(string)(QntPitchfork_Lower_UpperTF-1),OBJPROP_TIME3,StrToTime(mFractals[0][0]));
            ObjectSet("Pitchfork_Lower_UpperTF"+(string)(QntPitchfork_Lower_UpperTF-1),OBJPROP_PRICE3,StrToDouble(mFractals[0][1]));
            ObjectSet("Pitchfork_Lower_UpperTF"+(string)(QntPitchfork_Lower_UpperTF-1),OBJPROP_STYLE,STYLE_SOLID);
           }
        }
      return(true);
     }
   return(false);
  }
//+-------------------------------------------------------------------------------------------------------------------------+
//+-------------------------------------------------------------------------------------------------------------------------+
//+-------------------------------------------- ÔÓÍÊÖÈÈ ÎÒÐÈÑÎÂÊÈ ÊÀÍÀËÎÂ --------------------------------------------------+
//+-------------------------------------------------------------------------------------------------------------------------+
//+-------------------------------------------------------------------------------------------------------------------------+

//+---------------------------------------------------------------------------+
color GetChannelColor(int Index) 
  {  // Ôóíêöèÿ âîçâðàùàåò öâåò êàíàëà ïî èíäåêñó
   switch(Index) 
     {
      case 0:
         return(Channels_Color0);
      case 1:
         return(Channels_Color1);
      case 2:
         return(Channels_Color2);
      case 3:
         return(Channels_Color3);
     }
   return(Channels_Color4);
  }
//+---------------------------------------------------------------------------+
bool CheckUpperPoints(int nBar,int TF=0) 
  {  // Ôóíêöèÿ èùåò äâå ñîñåäíèå ìàêñèìàëüíûå îïîðíûå òî÷êè
   double Fractals_Upper=0,Fractals_Lower=0;
   string mFractals[3][3];
   int i,j=0;
//--------------------------------------------------------- I --
// ----- îïðåäåëÿåì îïîðíûå òî÷êè
   for(i=nBar; i<Bars; i++) 
     {  // Öèêë ïî áàðàì
      Fractals_Upper=iFractals(NULL,TF,MODE_UPPER,i);
      Fractals_Lower=iFractals(NULL,TF,MODE_LOWER,i);
      // ----- ÂÀÆÍÎ! íà÷èíàåì ïðîâåðêó ñ âåðõíåãî ôðàêòàëà 
      if(j<3 && Fractals_Upper>0) 
        {
         mFractals[j][0]=TimeToStr(iTime(NULL,TF,i),TIME_DATE|TIME_MINUTES);
         mFractals[j][1]=DoubleToStr(Fractals_Upper,Digits);
         mFractals[j][2]=(string)1;
         j++;
        }
      if(j<3 && Fractals_Lower>0) 
        {
         mFractals[j][0]=TimeToStr(iTime(NULL,TF,i),TIME_DATE|TIME_MINUTES);
         mFractals[j][1]=DoubleToStr(Fractals_Lower,Digits);
         mFractals[j][2]=(string)-1;
         j++;
        }
      if(j>3) break;
     }
//-------------------------------------------------------- II --
// ------ ïðîâåðÿåì ïîñëåäîâòåëüíîñòü îïîðíûõ òî÷åê: MODE_UPPER->MODE_LOWER->MODE_UPPER
   if(StrToDouble(mFractals[0][2])==1 && StrToDouble(mFractals[1][2])==-1 && StrToDouble(mFractals[2][2])==1) 
     {
      //--------------------------------------------------------- 1 --
      // ----- ìëàäøèé òàéìôðåéì
      if(TF==0) 
        {
         if(QntChannels_LowerTF<nChannels_LowerTF) 
           {// êîë-âî êàíàëîâ íå ïðåâûøåíî, ðèñóåì íîâûé
            if(StrToDouble(mFractals[2][1])<StrToDouble(mFractals[0][1]))
               mChannels_LowerTF[QntChannels_LowerTF][0]=(string)0;  // âîñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìàêñèìàëüíûì îïîðíûì òî÷êàì
            if(StrToDouble(mFractals[2][1])>=StrToDouble(mFractals[0][1]))
               mChannels_LowerTF[QntChannels_LowerTF][0]=(string)1;  // íèñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìàêñèìàëüíûì îïîðíûì òî÷êàì
            mChannels_LowerTF[QntChannels_LowerTF][1]=mFractals[2][0];  // âðåìÿ ïåðâîé  îïîðíîé òî÷êè
            mChannels_LowerTF[QntChannels_LowerTF][2]=mFractals[2][1];  // öåíà  ïåðâîé  îïîðíîé òî÷êè
            mChannels_LowerTF[QntChannels_LowerTF][3]=mFractals[1][0];  // âðåìÿ âòîðîé  îïîðíîé òî÷êè
            mChannels_LowerTF[QntChannels_LowerTF][4]=mFractals[1][1];  // öåíà  âòîðîé  îïîðíîé òî÷êè
            mChannels_LowerTF[QntChannels_LowerTF][5]=mFractals[0][0];  // âðåìÿ òðåòüåé îïîðíîé òî÷êè
            mChannels_LowerTF[QntChannels_LowerTF][6]=mFractals[0][1];  // öåíà  òðåòüåé îïîðíîé òî÷êè
            QntChannels_LowerTF++;
            // ----- îòðèñîâêà êàíàëà
            CheckQntChannels(0,false);
           }
         if(QntChannels_LowerTF>=nChannels_LowerTF) 
           {// êîë-âî êàíàëîâ ïðåâûøåíî, èçìåíÿåì ïàðàìåòðû îòðèñîâàííûõ
            for(i=0; i<nChannels_LowerTF-1; i++) 
              {
               mChannels_LowerTF[i][0]=mChannels_LowerTF[i+1][0];  // òèï êàíàëà
               mChannels_LowerTF[i][1]=mChannels_LowerTF[i+1][1];  // âðåìÿ ïåðâîé  îïîðíîé òî÷êè
               mChannels_LowerTF[i][2]=mChannels_LowerTF[i+1][2];  // öåíà  ïåðâîé  îïîðíîé òî÷êè
               mChannels_LowerTF[i][3]=mChannels_LowerTF[i+1][3];  // âðåìÿ âòîðîé  îïîðíîé òî÷êè
               mChannels_LowerTF[i][4]=mChannels_LowerTF[i+1][4];  // öåíà  âòîðîé  îïîðíîé òî÷êè
               mChannels_LowerTF[i][5]=mChannels_LowerTF[i+1][5];  // âðåìÿ òðåòüåé îïîðíîé òî÷êè
               mChannels_LowerTF[i][6]=mChannels_LowerTF[i+1][6];  // öåíà  òðåòüåé îïîðíîé òî÷êè
               mChannels_LowerTF[i][7]=mChannels_LowerTF[i+1][7];  // øèðèíà êàíàëà
              }
            if(StrToDouble(mFractals[2][1])<StrToDouble(mFractals[0][1]))
               mChannels_LowerTF[QntChannels_LowerTF-1][0]=(string)0;  // âîñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìàêñèìàëüíûì îïîðíûì òî÷êàì
            if(StrToDouble(mFractals[2][1])>=StrToDouble(mFractals[0][1]))
               mChannels_LowerTF[QntChannels_LowerTF-1][0]=(string)1;  // íèñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìàêñèìàëüíûì îïîðíûì òî÷êàì
            mChannels_LowerTF[QntChannels_LowerTF-1][1]=mFractals[2][0];  // âðåìÿ ïåðâîé  îïîðíîé òî÷êè
            mChannels_LowerTF[QntChannels_LowerTF-1][2]=mFractals[2][1];  // öåíà  ïåðâîé  îïîðíîé òî÷êè
            mChannels_LowerTF[QntChannels_LowerTF-1][3]=mFractals[1][0];  // âðåìÿ âòîðîé  îïîðíîé òî÷êè
            mChannels_LowerTF[QntChannels_LowerTF-1][4]=mFractals[1][1];  // öåíà  âòîðîé  îïîðíîé òî÷êè
            mChannels_LowerTF[QntChannels_LowerTF-1][5]=mFractals[0][0];  // âðåìÿ òðåòüåé îïîðíîé òî÷êè
            mChannels_LowerTF[QntChannels_LowerTF-1][6]=mFractals[0][1];  // öåíà  òðåòüåé îïîðíîé òî÷êè
                                                                          // ----- îòðèñîâêà êàíàëà
            CheckQntChannels(0,true);
           }
        }
      //--------------------------------------------------------- 2 --
      // ----- ñòàðøèé òàéìôðåéì
      if(TF!=0) 
        {
         if(QntChannels_UpperTF<nChannels_UpperTF) 
           {// êîë-âî êàíàëîâ íå ïðåâûøåíî, ðèñóåì íîâûé
            if(StrToDouble(mFractals[2][1])<StrToDouble(mFractals[0][1]))
               mChannels_UpperTF[QntChannels_UpperTF][0]=(string)0;  // âîñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìàêñèìàëüíûì îïîðíûì òî÷êàì
            if(StrToDouble(mFractals[2][1])>=StrToDouble(mFractals[0][1]))
               mChannels_UpperTF[QntChannels_UpperTF][0]=(string)1;  // íèñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìàêñèìàëüíûì îïîðíûì òî÷êàì
            mChannels_UpperTF[QntChannels_UpperTF][1]=mFractals[2][0];  // âðåìÿ ïåðâîé  îïîðíîé òî÷êè
            mChannels_UpperTF[QntChannels_UpperTF][2]=mFractals[2][1];  // öåíà  ïåðâîé  îïîðíîé òî÷êè
            mChannels_UpperTF[QntChannels_UpperTF][3]=mFractals[1][0];  // âðåìÿ âòîðîé  îïîðíîé òî÷êè
            mChannels_UpperTF[QntChannels_UpperTF][4]=mFractals[1][1];  // öåíà  âòîðîé  îïîðíîé òî÷êè
            mChannels_UpperTF[QntChannels_UpperTF][5]=mFractals[0][0];  // âðåìÿ òðåòüåé îïîðíîé òî÷êè
            mChannels_UpperTF[QntChannels_UpperTF][6]=mFractals[0][1];  // öåíà  òðåòüåé îïîðíîé òî÷êè       
            QntChannels_UpperTF++;
            // ----- îòðèñîâêà êàíàëà
            CheckQntChannels(TF_Upper,false);
           }
         if(QntChannels_UpperTF>=nChannels_UpperTF) 
           {// êîë-âî êàíàëîâ ïðåâûøåíî, èçìåíÿåì ïàðàìåòðû îòðèñîâàííûõ
            for(i=0; i<nChannels_UpperTF-1; i++) 
              {
               mChannels_UpperTF[i][0]=mChannels_UpperTF[i+1][0];  // òèï êàíàëà
               mChannels_UpperTF[i][1]=mChannels_UpperTF[i+1][1];  // âðåìÿ ïåðâîé  îïîðíîé òî÷êè
               mChannels_UpperTF[i][2]=mChannels_UpperTF[i+1][2];  // öåíà  ïåðâîé  îïîðíîé òî÷êè
               mChannels_UpperTF[i][3]=mChannels_UpperTF[i+1][3];  // âðåìÿ âòîðîé  îïîðíîé òî÷êè
               mChannels_UpperTF[i][4]=mChannels_UpperTF[i+1][4];  // öåíà  âòîðîé  îïîðíîé òî÷êè
               mChannels_UpperTF[i][5]=mChannels_UpperTF[i+1][5];  // âðåìÿ òðåòüåé îïîðíîé òî÷êè
               mChannels_UpperTF[i][6]=mChannels_UpperTF[i+1][6];  // öåíà  òðåòüåé îïîðíîé òî÷êè
               mChannels_UpperTF[i][7]=mChannels_UpperTF[i+1][7];  // øèðèíà êàíàëà
              }
            if(StrToDouble(mFractals[2][1])<StrToDouble(mFractals[0][1]))
               mChannels_UpperTF[QntChannels_UpperTF-1][0]=(string)0;  // âîñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìàêñèìàëüíûì îïîðíûì òî÷êàì
            if(StrToDouble(mFractals[2][1])>=StrToDouble(mFractals[0][1]))
               mChannels_UpperTF[QntChannels_UpperTF-1][0]=(string)1;  // íèñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìàêñèìàëüíûì îïîðíûì òî÷êàì
            mChannels_UpperTF[QntChannels_UpperTF-1][1]=mFractals[2][0];  // âðåìÿ ïåðâîé  îïîðíîé òî÷êè
            mChannels_UpperTF[QntChannels_UpperTF-1][2]=mFractals[2][1];  // öåíà  ïåðâîé  îïîðíîé òî÷êè
            mChannels_UpperTF[QntChannels_UpperTF-1][3]=mFractals[1][0];  // âðåìÿ âòîðîé  îïîðíîé òî÷êè
            mChannels_UpperTF[QntChannels_UpperTF-1][4]=mFractals[1][1];  // öåíà  âòîðîé  îïîðíîé òî÷êè
            mChannels_UpperTF[QntChannels_UpperTF-1][5]=mFractals[0][0];  // âðåìÿ òðåòüåé îïîðíîé òî÷êè
            mChannels_UpperTF[QntChannels_UpperTF-1][6]=mFractals[0][1];  // öåíà  òðåòüåé îïîðíîé òî÷êè
                                                                          // ----- îòðèñîâêà êàíàëà
            CheckQntChannels(TF_Upper,true);
           }
        }
      return(true);
     }
   return(false);
  }
//+---------------------------------------------------------------------------+
bool CheckLowerPoints(int nBar,int TF=0) 
  {  // Ôóíêöèÿ èùåò äâå ñîñåäíèå ìèíèìàëüíûå îïîðíûå òî÷êè
   double Fractals_Upper=0,Fractals_Lower=0;
   string mFractals[3][3];
   int i,j=0;
//--------------------------------------------------------- 1 --
// ----- îïðåäåëÿåì îïîðíûå òî÷êè
   for(i=nBar; i<Bars; i++) 
     {  // Öèêë ïî áàðàì
      Fractals_Upper=iFractals(NULL,TF,MODE_UPPER,i);
      Fractals_Lower=iFractals(NULL,TF,MODE_LOWER,i);
      // ----- ÂÀÆÍÎ! íà÷èíàåì ïðîâåðêó ñ íèæíåãî ôðàêòàëà 
      if(j<3 && Fractals_Lower>0) 
        {
         mFractals[j][0]=TimeToStr(iTime(NULL,TF,i),TIME_DATE|TIME_MINUTES);
         mFractals[j][1]=DoubleToStr(Fractals_Lower,Digits);
         mFractals[j][2]=(string)-1;
         j++;
        }
      if(j<3 && Fractals_Upper>0) 
        {
         mFractals[j][0]=TimeToStr(iTime(NULL,TF,i),TIME_DATE|TIME_MINUTES);
         mFractals[j][1]=DoubleToStr(Fractals_Upper,Digits);
         mFractals[j][2]=(string)1;
         j++;
        }
      if(j>3) break;
     }
//--------------------------------------------------------- 2 --
// ------ ïðîâåðÿåì ïîñëåäîâòåëüíîñòü îïîðíûõ òî÷åê: MODE_LOWER->MODE_UPPER->MODE_LOWER
   if(StrToDouble(mFractals[0][2])==-1 && StrToDouble(mFractals[1][2])==1 && StrToDouble(mFractals[2][2])==-1) 
     {
      //--------------------------------------------------------- 1 --
      // ----- ìëàäøèé òàéìôðåéì
      if(TF==0) 
        {
         if(QntChannels_LowerTF<nChannels_LowerTF) 
           {// êîë-âî êàíàëîâ íå ïðåâûøåíî, ðèñóåì íîâûé
            if(StrToDouble(mFractals[2][1])<StrToDouble(mFractals[0][1]))
               mChannels_LowerTF[QntChannels_LowerTF][0]=(string)2;  // âîñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìèíèìàëüíûì îïîðíûì òî÷êàì
            if(StrToDouble(mFractals[2][1])>=StrToDouble(mFractals[0][1]))
               mChannels_LowerTF[QntChannels_LowerTF][0]=(string)3;  // íèñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìèíèìàëüíûì îïîðíûì òî÷êàì
            mChannels_LowerTF[QntChannels_LowerTF][1]=mFractals[2][0];  // âðåìÿ ïåðâîé  îïîðíîé òî÷êè
            mChannels_LowerTF[QntChannels_LowerTF][2]=mFractals[2][1];  // öåíà  ïåðâîé  îïîðíîé òî÷êè
            mChannels_LowerTF[QntChannels_LowerTF][3]=mFractals[1][0];  // âðåìÿ âòîðîé  îïîðíîé òî÷êè
            mChannels_LowerTF[QntChannels_LowerTF][4]=mFractals[1][1];  // öåíà  âòîðîé  îïîðíîé òî÷êè
            mChannels_LowerTF[QntChannels_LowerTF][5]=mFractals[0][0];  // âðåìÿ òðåòüåé îïîðíîé òî÷êè
            mChannels_LowerTF[QntChannels_LowerTF][6]=mFractals[0][1];  // öåíà  òðåòüåé îïîðíîé òî÷êè
            QntChannels_LowerTF++;
            // ----- îòðèñîâêà êàíàëà
            CheckQntChannels(0,false);
           }
         if(QntChannels_LowerTF>=nChannels_LowerTF) 
           {// êîë-âî êàíàëîâ ïðåâûøåíî, èçìåíÿåì ïàðàìåòðû îòðèñîâàííûõ
            for(i=0; i<nChannels_LowerTF-1; i++) 
              {
               mChannels_LowerTF[i][0]=mChannels_LowerTF[i+1][0];  // òèï êàíàëà
               mChannels_LowerTF[i][1]=mChannels_LowerTF[i+1][1];  // âðåìÿ ïåðâîé  îïîðíîé òî÷êè
               mChannels_LowerTF[i][2]=mChannels_LowerTF[i+1][2];  // öåíà  ïåðâîé  îïîðíîé òî÷êè
               mChannels_LowerTF[i][3]=mChannels_LowerTF[i+1][3];  // âðåìÿ âòîðîé  îïîðíîé òî÷êè
               mChannels_LowerTF[i][4]=mChannels_LowerTF[i+1][4];  // öåíà  âòîðîé  îïîðíîé òî÷êè
               mChannels_LowerTF[i][5]=mChannels_LowerTF[i+1][5];  // âðåìÿ òðåòüåé îïîðíîé òî÷êè
               mChannels_LowerTF[i][6]=mChannels_LowerTF[i+1][6];  // öåíà  òðåòüåé îïîðíîé òî÷êè
               mChannels_LowerTF[i][7]=mChannels_LowerTF[i+1][7];  // øèðèíà êàíàëà
              }
            if(StrToDouble(mFractals[2][1])<StrToDouble(mFractals[0][1]))
               mChannels_LowerTF[QntChannels_LowerTF-1][0]=(string)2;  // âîñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìèíèìàëüíûì îïîðíûì òî÷êàì
            if(StrToDouble(mFractals[2][1])>=StrToDouble(mFractals[0][1]))
               mChannels_LowerTF[QntChannels_LowerTF-1][0]=(string)3;  // íèñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìèíèìàëüíûì îïîðíûì òî÷êàì
            mChannels_LowerTF[QntChannels_LowerTF-1][1]=mFractals[2][0];  // âðåìÿ ïåðâîé  îïîðíîé òî÷êè
            mChannels_LowerTF[QntChannels_LowerTF-1][2]=mFractals[2][1];  // öåíà  ïåðâîé  îïîðíîé òî÷êè
            mChannels_LowerTF[QntChannels_LowerTF-1][3]=mFractals[1][0];  // âðåìÿ âòîðîé  îïîðíîé òî÷êè
            mChannels_LowerTF[QntChannels_LowerTF-1][4]=mFractals[1][1];  // öåíà  âòîðîé  îïîðíîé òî÷êè
            mChannels_LowerTF[QntChannels_LowerTF-1][5]=mFractals[0][0];  // âðåìÿ òðåòüåé îïîðíîé òî÷êè
            mChannels_LowerTF[QntChannels_LowerTF-1][6]=mFractals[0][1];  // öåíà  òðåòüåé îïîðíîé òî÷êè
                                                                          // ----- îòðèñîâêà êàíàëà
            CheckQntChannels(0,true);
           }
        }
      //--------------------------------------------------------- 2 --
      // ----- ñòàðøèé òàéìôðåéì
      if(TF!=0) 
        {
         if(QntChannels_UpperTF<nChannels_UpperTF) 
           {// êîë-âî êàíàëîâ íå ïðåâûøåíî, ðèñóåì íîâûé
            if(StrToDouble(mFractals[2][1])<StrToDouble(mFractals[0][1]))
               mChannels_UpperTF[QntChannels_UpperTF][0]=(string)2;  // âîñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìèíèìàëüíûì îïîðíûì òî÷êàì
            if(StrToDouble(mFractals[2][1])>=StrToDouble(mFractals[0][1]))
               mChannels_UpperTF[QntChannels_UpperTF][0]=(string)3;  // íèñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìèíèìàëüíûì îïîðíûì òî÷êàì
            mChannels_UpperTF[QntChannels_UpperTF][1]=mFractals[2][0];  // âðåìÿ ïåðâîé  îïîðíîé òî÷êè
            mChannels_UpperTF[QntChannels_UpperTF][2]=mFractals[2][1];  // öåíà  ïåðâîé  îïîðíîé òî÷êè
            mChannels_UpperTF[QntChannels_UpperTF][3]=mFractals[1][0];  // âðåìÿ âòîðîé  îïîðíîé òî÷êè
            mChannels_UpperTF[QntChannels_UpperTF][4]=mFractals[1][1];  // öåíà  âòîðîé  îïîðíîé òî÷êè
            mChannels_UpperTF[QntChannels_UpperTF][5]=mFractals[0][0];  // âðåìÿ òðåòüåé îïîðíîé òî÷êè
            mChannels_UpperTF[QntChannels_UpperTF][6]=mFractals[0][1];  // öåíà  òðåòüåé îïîðíîé òî÷êè       
            QntChannels_UpperTF++;
            // ----- îòðèñîâêà êàíàëà
            CheckQntChannels(TF_Upper,false);
           }
         if(QntChannels_UpperTF>=nChannels_UpperTF) 
           {// êîë-âî êàíàëîâ ïðåâûøåíî, èçìåíÿåì ïàðàìåòðû îòðèñîâàííûõ
            for(i=0; i<nChannels_UpperTF-1; i++) 
              {
               mChannels_UpperTF[i][0]=mChannels_UpperTF[i+1][0];  // òèï êàíàëà
               mChannels_UpperTF[i][1]=mChannels_UpperTF[i+1][1];  // âðåìÿ ïåðâîé  îïîðíîé òî÷êè
               mChannels_UpperTF[i][2]=mChannels_UpperTF[i+1][2];  // öåíà  ïåðâîé  îïîðíîé òî÷êè
               mChannels_UpperTF[i][3]=mChannels_UpperTF[i+1][3];  // âðåìÿ âòîðîé  îïîðíîé òî÷êè
               mChannels_UpperTF[i][4]=mChannels_UpperTF[i+1][4];  // öåíà  âòîðîé  îïîðíîé òî÷êè
               mChannels_UpperTF[i][5]=mChannels_UpperTF[i+1][5];  // âðåìÿ òðåòüåé îïîðíîé òî÷êè
               mChannels_UpperTF[i][6]=mChannels_UpperTF[i+1][6];  // öåíà  òðåòüåé îïîðíîé òî÷êè
               mChannels_UpperTF[i][7]=mChannels_UpperTF[i+1][7];  // øèðèíà êàíàëà
              }
            if(StrToDouble(mFractals[2][1])<StrToDouble(mFractals[0][1]))
               mChannels_UpperTF[QntChannels_UpperTF-1][0]=(string)2;  // âîñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìèíèìàëüíûì îïîðíûì òî÷êàì
            if(StrToDouble(mFractals[2][1])>=StrToDouble(mFractals[0][1]))
               mChannels_UpperTF[QntChannels_UpperTF-1][0]=(string)3;  // íèñõîäÿùèé êàíàë ïî 2-ì ñîñåäíèì ìèíèìàëüíûì îïîðíûì òî÷êàì
            mChannels_UpperTF[QntChannels_UpperTF-1][1]=mFractals[2][0];  // âðåìÿ ïåðâîé  îïîðíîé òî÷êè
            mChannels_UpperTF[QntChannels_UpperTF-1][2]=mFractals[2][1];  // öåíà  ïåðâîé  îïîðíîé òî÷êè
            mChannels_UpperTF[QntChannels_UpperTF-1][3]=mFractals[1][0];  // âðåìÿ âòîðîé  îïîðíîé òî÷êè
            mChannels_UpperTF[QntChannels_UpperTF-1][4]=mFractals[1][1];  // öåíà  âòîðîé  îïîðíîé òî÷êè
            mChannels_UpperTF[QntChannels_UpperTF-1][5]=mFractals[0][0];  // âðåìÿ òðåòüåé îïîðíîé òî÷êè
            mChannels_UpperTF[QntChannels_UpperTF-1][6]=mFractals[0][1];  // öåíà  òðåòüåé îïîðíîé òî÷êè
                                                                          // ----- îòðèñîâêà êàíàëà
            CheckQntChannels(TF_Upper,true);
           }
        }
      return(true);
     }
   return(false);
  }
//+---------------------------------------------------------------------------+
void CheckQntChannels(int TF=0,bool ReDraw=false) 
  {  // Ôóíêöèÿ îòîáðàæàåò íîâûå êàíàëû íà ãðàôèêå
   int Index=0,i=0;
   string Channels_Name="";
//--------------------------------------------------------- 1 --
// ----- åñëè ôëàã ïåðåðèñîâêè âñåõ êàíàëîâ FALSE
   if(!ReDraw)  
     {
      if(TF==0) 
        {         // ----- ìëàäøèé òàéìôðåéì
         Index=QntChannels_LowerTF-1;
        }
      if(TF!=0) 
        {         // ----- ñòàðøèé òàéìôðåéì
         Index=QntChannels_UpperTF-1;
        }
      // ----- îòðèñîâêà îäíîãî êàíàëà
      DrawChannels(TF,Index);
     }

//--------------------------------------------------------- 2 --
// ----- åñëè ôëàã ïåðåðèñîâêè âñåõ êàíàëîâ TRUE - óäàëÿåì âñå êàíàëû
   if(ReDraw) 
     {
      if(TF==0) 
        {         // ----- ìëàäøèé òàéìôðåéì
         Index=QntChannels_LowerTF-1;
         Channels_Name="Channel_LowerTF";
        }
      if(TF!=0) 
        {         // ----- ñòàðøèé òàéìôðåéì
         Index=QntChannels_UpperTF-1;
         Channels_Name="Channel_UpperTF";
        }
      int Qnt=ObjectsTotal();
      // ----- Óäàëÿåì âñå êàíàëû äëÿ óêàçàííîãî òàéìôðåéìà
      for(i=0; i<Qnt; i++) 
        {  // Öèêë ïî îáúåêòàì
         if(StringFind(ObjectName(i),Channels_Name,0)>=0) 
           {
            ObjectDelete(ObjectName(i));
            i--; continue;
           }
         if(i>=ObjectsTotal()) break;
        }
      for(i=0; i<=Index; i++) 
        {
         // ----- îòðèñîâêà êàæäîãî êàíàëà
         DrawChannels(TF,i);
        }
     }
   return;
  }
//+---------------------------------------------------------------------------+
void DrawChannels(int TF=0,int Index=0) 
  {  // Ôóíêöèÿ îòîáðàæàåò íîâûå êàíàëû íà ãðàôèêå

//--------------------------------------------------------- 1 --
   if(TF==0) 
     {         // ----- ìëàäøèé òàéìôðåéì
      // ----- ñòðîèì êàíàë ïî 2-ì ñîñåäíèì ìàêñèìàëüíûì îïîðíûì òî÷êàì
      if(StrToDouble(mChannels_LowerTF[Index][0])==0 || StrToDouble(mChannels_LowerTF[Index][0])==1) 
        {
         // ----- îïîðíàÿ ëèíèÿ(âåðõíÿÿ ãðàíèöà) êàíàëà
         ObjectCreate("Channel_LowerTF"+(string)Index+"_UpperLine",OBJ_TREND,0,StrToTime(mChannels_LowerTF[Index][1]),StrToDouble(mChannels_LowerTF[Index][2]),
                      StrToTime(mChannels_LowerTF[Index][5]),StrToDouble(mChannels_LowerTF[Index][6]));
         ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLine",OBJPROP_RAY,True);
         ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLine",OBJPROP_WIDTH,3);
         ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLine",OBJPROP_COLOR,GetChannelColor(Index));
         // ----- âû÷èñëÿåì øèðèíó êàíàëà
         mChannels_LowerTF[Index][7]=(string)(ObjectGetValueByShift("Channel_LowerTF"+(string)Index+"_UpperLine",iBarShift(NULL,0,StrToTime(mChannels_LowerTF[Index][3])))
                                     -StrToDouble(mChannels_LowerTF[Index][4]));
         // ----- íèæíÿÿ ãðàíèöà êàíàëà
         ObjectCreate("Channel_LowerTF"+(string)Index+"_LowerLine",OBJ_TREND,0,StrToTime(mChannels_LowerTF[Index][3]),StrToDouble(mChannels_LowerTF[Index][4]),
                      StrToTime(mChannels_LowerTF[Index][5]),StrToDouble(mChannels_LowerTF[Index][6])-StrToDouble(mChannels_LowerTF[Index][7]));
         ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLine",OBJPROP_RAY,True);
         ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLine",OBJPROP_WIDTH,1);
         ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLine",OBJPROP_COLOR,GetChannelColor(Index));
         // ----- ñåðåäèíà êàíàëà ãðàíèöà êàíàëà
         ObjectCreate("Channel_LowerTF"+(string)Index+".MiddleLine",OBJ_TREND,0,StrToTime(mChannels_LowerTF[Index][1]),StrToDouble(mChannels_LowerTF[Index][2])
                      -StrToDouble(mChannels_LowerTF[Index][7])/2,
                      StrToTime(mChannels_LowerTF[Index][5]),StrToDouble(mChannels_LowerTF[Index][6])-StrToDouble(mChannels_LowerTF[Index][7])/2);
         ObjectSet("Channel_LowerTF"+(string)Index+".MiddleLine",OBJPROP_RAY,True);
         ObjectSet("Channel_LowerTF"+(string)Index+".MiddleLine",OBJPROP_STYLE,STYLE_DASHDOT);
         ObjectSet("Channel_LowerTF"+(string)Index+".MiddleLine",OBJPROP_WIDTH,1);
         ObjectSet("Channel_LowerTF"+(string)Index+".MiddleLine",OBJPROP_COLOR,GetChannelColor(Index));
         // ----- âåðõíÿÿ ëèíèÿ ÇÓÊ -10%
         ObjectCreate("Channel_LowerTF"+(string)Index+"_UpperLineZUK(-10%)",OBJ_TREND,0,StrToTime(mChannels_LowerTF[Index][1]),StrToDouble(mChannels_LowerTF[Index][2])
                      -StrToDouble(mChannels_LowerTF[Index][7])/10,
                      StrToTime(mChannels_LowerTF[Index][5]),StrToDouble(mChannels_LowerTF[Index][6])-StrToDouble(mChannels_LowerTF[Index][7])/10);
         ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLineZUK(-10%)",OBJPROP_RAY,True);
         ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLineZUK(-10%)",OBJPROP_STYLE,STYLE_DASH);
         ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLineZUK(-10%)",OBJPROP_WIDTH,1);
         ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLineZUK(-10%)",OBJPROP_COLOR,GetChannelColor(Index));
         // ----- íèæíÿÿ ëèíèÿ ÇÓÊ -10%
         ObjectCreate("Channel_LowerTF"+(string)Index+"_LowerLineZUK(-10%)",OBJ_TREND,0,StrToTime(mChannels_LowerTF[Index][3]),StrToDouble(mChannels_LowerTF[Index][4])
                      +StrToDouble(mChannels_LowerTF[Index][7])/10,
                      StrToTime(mChannels_LowerTF[Index][5]),StrToDouble(mChannels_LowerTF[Index][6])-StrToDouble(mChannels_LowerTF[Index][7])+
                      StrToDouble(mChannels_LowerTF[Index][7])/10);
         ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLineZUK(-10%)",OBJPROP_RAY,True);
         ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLineZUK(-10%)",OBJPROP_STYLE,STYLE_DASH);
         ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLineZUK(-10%)",OBJPROP_WIDTH,1);
         ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLineZUK(-10%)",OBJPROP_COLOR,GetChannelColor(Index));
         // ----- âåðõíÿÿ ëèíèÿ ÇÓÊ +10%
         ObjectCreate("Channel_LowerTF"+(string)Index+"_UpperLineZUK(+10%)",OBJ_TREND,0,StrToTime(mChannels_LowerTF[Index][1]),StrToDouble(mChannels_LowerTF[Index][2])
                      +StrToDouble(mChannels_LowerTF[Index][7])/10,
                      StrToTime(mChannels_LowerTF[Index][5]),StrToDouble(mChannels_LowerTF[Index][6])+StrToDouble(mChannels_LowerTF[Index][7])/10);
         ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLineZUK(+10%)",OBJPROP_RAY,True);
         ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLineZUK(+10%)",OBJPROP_STYLE,STYLE_DASH);
         ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLineZUK(+10%)",OBJPROP_WIDTH,1);
         ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLineZUK(+10%)",OBJPROP_COLOR,GetChannelColor(Index));
         // ----- íèæíÿÿ ëèíèÿ ÇÓÊ +10%
         ObjectCreate("Channel_LowerTF"+(string)Index+"_LowerLineZUK(+10%)",OBJ_TREND,0,StrToTime(mChannels_LowerTF[Index][3]),StrToDouble(mChannels_LowerTF[Index][4])
                      -StrToDouble(mChannels_LowerTF[Index][7])/10,
                      StrToTime(mChannels_LowerTF[Index][5]),StrToDouble(mChannels_LowerTF[Index][6])-StrToDouble(mChannels_LowerTF[Index][7])-
                      StrToDouble(mChannels_LowerTF[Index][7])/10);
         ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLineZUK(+10%)",OBJPROP_RAY,True);
         ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLineZUK(+10%)",OBJPROP_STYLE,STYLE_DASH);
         ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLineZUK(+10%)",OBJPROP_WIDTH,1);
         ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLineZUK(+10%)",OBJPROP_COLOR,GetChannelColor(Index));
        }
      // ----- ñòðîèì êàíàë ïî 2-ì ñîñåäíèì ìèíèìàëüíûì îïîðíûì òî÷êàì
      if(StrToDouble(mChannels_LowerTF[Index][0])==2 || StrToDouble(mChannels_LowerTF[Index][0])==3) 
        {
         // ----- îïîðíàÿ ëèíèÿ(íèæíÿÿ ãðàíèöà) êàíàëà
         ObjectCreate("Channel_LowerTF"+(string)Index+"_LowerLine",OBJ_TREND,0,StrToTime(mChannels_LowerTF[Index][1]),StrToDouble(mChannels_LowerTF[Index][2]),
                      StrToTime(mChannels_LowerTF[Index][5]),StrToDouble(mChannels_LowerTF[Index][6]));
         ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLine",OBJPROP_RAY,True);
         ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLine",OBJPROP_WIDTH,3);
         ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLine",OBJPROP_COLOR,GetChannelColor(Index));
         // ----- âû÷èñëÿåì øèðèíó êàíàëà
         mChannels_LowerTF[Index][7]=(string)(ObjectGetValueByShift("Channel_LowerTF"+(string)Index+"_LowerLine",iBarShift(NULL,0,StrToTime(mChannels_LowerTF[Index][3])))
                                     -StrToDouble(mChannels_LowerTF[Index][4]));
         // ----- âåðõíÿÿ ãðàíèöà êàíàëà
         ObjectCreate("Channel_LowerTF"+(string)Index+"_UpperLine",OBJ_TREND,0,StrToTime(mChannels_LowerTF[Index][3]),StrToDouble(mChannels_LowerTF[Index][4]),
                      StrToTime(mChannels_LowerTF[Index][5]),StrToDouble(mChannels_LowerTF[Index][6])-StrToDouble(mChannels_LowerTF[Index][7]));
         ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLine",OBJPROP_RAY,True);
         ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLine",OBJPROP_WIDTH,1);
         ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLine",OBJPROP_COLOR,GetChannelColor(Index));
         // ----- ñåðåäèíà êàíàëà ãðàíèöà êàíàëà
         ObjectCreate("Channel_LowerTF"+(string)Index+".MiddleLine",OBJ_TREND,0,StrToTime(mChannels_LowerTF[Index][1]),StrToDouble(mChannels_LowerTF[Index][2])
                      -StrToDouble(mChannels_LowerTF[Index][7])/2,
                      StrToTime(mChannels_LowerTF[Index][5]),StrToDouble(mChannels_LowerTF[Index][6])-StrToDouble(mChannels_LowerTF[Index][7])/2);
         ObjectSet("Channel_LowerTF"+(string)Index+".MiddleLine",OBJPROP_RAY,True);
         ObjectSet("Channel_LowerTF"+(string)Index+".MiddleLine",OBJPROP_STYLE,STYLE_DASHDOT);
         ObjectSet("Channel_LowerTF"+(string)Index+".MiddleLine",OBJPROP_WIDTH,1);
         ObjectSet("Channel_LowerTF"+(string)Index+".MiddleLine",OBJPROP_COLOR,GetChannelColor(Index));
         // ----- íèæíÿÿ ëèíèÿ ÇÓÊ -10%
         ObjectCreate("Channel_LowerTF"+(string)Index+"_LowerLineZUK(-10%)",OBJ_TREND,0,StrToTime(mChannels_LowerTF[Index][1]),StrToDouble(mChannels_LowerTF[Index][2])
                      -StrToDouble(mChannels_LowerTF[Index][7])/10,
                      StrToTime(mChannels_LowerTF[Index][5]),StrToDouble(mChannels_LowerTF[Index][6])-StrToDouble(mChannels_LowerTF[Index][7])/10);
         ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLineZUK(-10%)",OBJPROP_RAY,True);
         ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLineZUK(-10%)",OBJPROP_STYLE,STYLE_DASH);
         ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLineZUK(-10%)",OBJPROP_WIDTH,1);
         ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLineZUK(-10%)",OBJPROP_COLOR,GetChannelColor(Index));
         // ----- âåðõíÿÿ ëèíèÿ ÇÓÊ -10%
         ObjectCreate("Channel_LowerTF"+(string)Index+"_UpperLineZUK(-10%)",OBJ_TREND,0,StrToTime(mChannels_LowerTF[Index][3]),StrToDouble(mChannels_LowerTF[Index][4])
                      +StrToDouble(mChannels_LowerTF[Index][7])/10,
                      StrToTime(mChannels_LowerTF[Index][5]),StrToDouble(mChannels_LowerTF[Index][6])-StrToDouble(mChannels_LowerTF[Index][7])+
                      StrToDouble(mChannels_LowerTF[Index][7])/10);
         ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLineZUK(-10%)",OBJPROP_RAY,True);
         ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLineZUK(-10%)",OBJPROP_STYLE,STYLE_DASH);
         ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLineZUK(-10%)",OBJPROP_WIDTH,1);
         ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLineZUK(-10%)",OBJPROP_COLOR,GetChannelColor(Index));
         // ----- íèæíÿÿ ëèíèÿ ÇÓÊ +10%
         ObjectCreate("Channel_LowerTF"+(string)Index+"_LowerLineZUK(+10%)",OBJ_TREND,0,StrToTime(mChannels_LowerTF[Index][1]),StrToDouble(mChannels_LowerTF[Index][2])
                      +StrToDouble(mChannels_LowerTF[Index][7])/10,
                      StrToTime(mChannels_LowerTF[Index][5]),StrToDouble(mChannels_LowerTF[Index][6])+StrToDouble(mChannels_LowerTF[Index][7])/10);
         ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLineZUK(+10%)",OBJPROP_RAY,True);
         ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLineZUK(+10%)",OBJPROP_STYLE,STYLE_DASH);
         ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLineZUK(+10%)",OBJPROP_WIDTH,1);
         ObjectSet("Channel_LowerTF"+(string)Index+"_LowerLineZUK(+10%)",OBJPROP_COLOR,GetChannelColor(Index));
         // ----- âåðõíÿÿ ëèíèÿ ÇÓÊ +10%
         ObjectCreate("Channel_LowerTF"+(string)Index+"_UpperLineZUK(+10%)",OBJ_TREND,0,StrToTime(mChannels_LowerTF[Index][3]),StrToDouble(mChannels_LowerTF[Index][4])
                      -StrToDouble(mChannels_LowerTF[Index][7])/10,
                      StrToTime(mChannels_LowerTF[Index][5]),StrToDouble(mChannels_LowerTF[Index][6])-StrToDouble(mChannels_LowerTF[Index][7])-
                      StrToDouble(mChannels_LowerTF[Index][7])/10);
         ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLineZUK(+10%)",OBJPROP_RAY,True);
         ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLineZUK(+10%)",OBJPROP_STYLE,STYLE_DASH);
         ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLineZUK(+10%)",OBJPROP_WIDTH,1);
         ObjectSet("Channel_LowerTF"+(string)Index+"_UpperLineZUK(+10%)",OBJPROP_COLOR,GetChannelColor(Index));
        }
     }
//--------------------------------------------------------- 2 --
   if(TF!=0) 
     {         // ----- ñòàðøèé òàéìôðåéì
      // ----- ñòðîèì êàíàë ïî 2-ì ñîñåäíèì ìàêñèìàëüíûì îïîðíûì òî÷êàì
      if(StrToDouble(mChannels_UpperTF[Index][0])==0 || StrToDouble(mChannels_UpperTF[Index][0])==1) 
        {
         // ----- îïîðíàÿ ëèíèÿ(âåðõíÿÿ ãðàíèöà) êàíàëà
         ObjectCreate("Channel_UpperTF"+(string)Index+"_UpperLine",OBJ_TREND,0,StrToTime(mChannels_UpperTF[Index][1]),StrToDouble(mChannels_UpperTF[Index][2]),
                      StrToTime(mChannels_UpperTF[Index][5]),StrToDouble(mChannels_UpperTF[Index][6]));
         ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLine",OBJPROP_RAY,True);
         ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLine",OBJPROP_WIDTH,3);
         ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLine",OBJPROP_COLOR,GetChannelColor(Index));
         // ----- âû÷èñëÿåì øèðèíó êàíàëà
         mChannels_UpperTF[Index][7]=(string)(ObjectGetValueByShift("Channel_UpperTF"+(string)Index+"_UpperLine",iBarShift(NULL,0,StrToTime(mChannels_UpperTF[Index][3])))
                                     -StrToDouble(mChannels_UpperTF[Index][4]));
         // ----- íèæíÿÿ ãðàíèöà êàíàëà
         ObjectCreate("Channel_UpperTF"+(string)Index+"_LowerLine",OBJ_TREND,0,StrToTime(mChannels_UpperTF[Index][3]),StrToDouble(mChannels_UpperTF[Index][4]),
                      StrToTime(mChannels_UpperTF[Index][5]),StrToDouble(mChannels_UpperTF[Index][6])-StrToDouble(mChannels_UpperTF[Index][7]));
         ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLine",OBJPROP_RAY,True);
         ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLine",OBJPROP_WIDTH,1);
         ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLine",OBJPROP_COLOR,GetChannelColor(Index));
         // ----- ñåðåäèíà êàíàëà ãðàíèöà êàíàëà
         ObjectCreate("Channel_UpperTF"+(string)Index+".MiddleLine",OBJ_TREND,0,StrToTime(mChannels_UpperTF[Index][1]),StrToDouble(mChannels_UpperTF[Index][2])
                      -StrToDouble(mChannels_UpperTF[Index][7])/2,
                      StrToTime(mChannels_UpperTF[Index][5]),StrToDouble(mChannels_UpperTF[Index][6])-StrToDouble(mChannels_UpperTF[Index][7])/2);
         ObjectSet("Channel_UpperTF"+(string)Index+".MiddleLine",OBJPROP_RAY,True);
         ObjectSet("Channel_UpperTF"+(string)Index+".MiddleLine",OBJPROP_STYLE,STYLE_DASHDOT);
         ObjectSet("Channel_UpperTF"+(string)Index+".MiddleLine",OBJPROP_WIDTH,1);
         ObjectSet("Channel_UpperTF"+(string)Index+".MiddleLine",OBJPROP_COLOR,GetChannelColor(Index));
         // ----- âåðõíÿÿ ëèíèÿ ÇÓÊ -10%
         ObjectCreate("Channel_UpperTF"+(string)Index+"_UpperLineZUK(-10%)",OBJ_TREND,0,StrToTime(mChannels_UpperTF[Index][1]),StrToDouble(mChannels_UpperTF[Index][2])
                      -StrToDouble(mChannels_UpperTF[Index][7])/10,
                      StrToTime(mChannels_UpperTF[Index][5]),StrToDouble(mChannels_UpperTF[Index][6])-StrToDouble(mChannels_UpperTF[Index][7])/10);
         ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLineZUK(-10%)",OBJPROP_RAY,True);
         ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLineZUK(-10%)",OBJPROP_STYLE,STYLE_DASH);
         ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLineZUK(-10%)",OBJPROP_WIDTH,1);
         ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLineZUK(-10%)",OBJPROP_COLOR,GetChannelColor(Index));
         // ----- íèæíÿÿ ëèíèÿ ÇÓÊ -10%
         ObjectCreate("Channel_UpperTF"+(string)Index+"_LowerLineZUK(-10%)",OBJ_TREND,0,StrToTime(mChannels_UpperTF[Index][3]),StrToDouble(mChannels_UpperTF[Index][4])
                      +StrToDouble(mChannels_UpperTF[Index][7])/10,
                      StrToTime(mChannels_UpperTF[Index][5]),StrToDouble(mChannels_UpperTF[Index][6])-StrToDouble(mChannels_UpperTF[Index][7])+
                      StrToDouble(mChannels_UpperTF[Index][7])/10);
         ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLineZUK(-10%)",OBJPROP_RAY,True);
         ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLineZUK(-10%)",OBJPROP_STYLE,STYLE_DASH);
         ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLineZUK(-10%)",OBJPROP_WIDTH,1);
         ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLineZUK(-10%)",OBJPROP_COLOR,GetChannelColor(Index));
         // ----- âåðõíÿÿ ëèíèÿ ÇÓÊ +10%
         ObjectCreate("Channel_UpperTF"+(string)Index+"_UpperLineZUK(+10%)",OBJ_TREND,0,StrToTime(mChannels_UpperTF[Index][1]),StrToDouble(mChannels_UpperTF[Index][2])
                      +StrToDouble(mChannels_UpperTF[Index][7])/10,
                      StrToTime(mChannels_UpperTF[Index][5]),StrToDouble(mChannels_UpperTF[Index][6])+StrToDouble(mChannels_UpperTF[Index][7])/10);
         ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLineZUK(+10%)",OBJPROP_RAY,True);
         ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLineZUK(+10%)",OBJPROP_STYLE,STYLE_DASH);
         ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLineZUK(+10%)",OBJPROP_WIDTH,1);
         ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLineZUK(+10%)",OBJPROP_COLOR,GetChannelColor(Index));
         // ----- íèæíÿÿ ëèíèÿ ÇÓÊ +10%
         ObjectCreate("Channel_UpperTF"+(string)Index+"_LowerLineZUK(+10%)",OBJ_TREND,0,StrToTime(mChannels_UpperTF[Index][3]),StrToDouble(mChannels_UpperTF[Index][4])
                      -StrToDouble(mChannels_UpperTF[Index][7])/10,
                      StrToTime(mChannels_UpperTF[Index][5]),StrToDouble(mChannels_UpperTF[Index][6])-StrToDouble(mChannels_UpperTF[Index][7])-
                      StrToDouble(mChannels_UpperTF[Index][7])/10);
         ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLineZUK(+10%)",OBJPROP_RAY,True);
         ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLineZUK(+10%)",OBJPROP_STYLE,STYLE_DASH);
         ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLineZUK(+10%)",OBJPROP_WIDTH,1);
         ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLineZUK(+10%)",OBJPROP_COLOR,GetChannelColor(Index));
        }
      // ----- ñòðîèì êàíàë ïî 2-ì ñîñåäíèì ìèíèìàëüíûì îïîðíûì òî÷êàì
      if(StrToDouble(mChannels_UpperTF[Index][0])==2 || StrToDouble(mChannels_UpperTF[Index][0])==3) 
        {
         // ----- îïîðíàÿ ëèíèÿ(íèæíÿÿ ãðàíèöà) êàíàëà
         ObjectCreate("Channel_UpperTF"+(string)Index+"_LowerLine",OBJ_TREND,0,StrToTime(mChannels_UpperTF[Index][1]),StrToDouble(mChannels_UpperTF[Index][2]),
                      StrToTime(mChannels_UpperTF[Index][5]),StrToDouble(mChannels_UpperTF[Index][6]));
         ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLine",OBJPROP_RAY,True);
         ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLine",OBJPROP_WIDTH,3);
         ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLine",OBJPROP_COLOR,GetChannelColor(Index));
         // ----- âû÷èñëÿåì øèðèíó êàíàëà
         mChannels_UpperTF[Index][7]=(string)(ObjectGetValueByShift("Channel_UpperTF"+(string)Index+"_LowerLine",iBarShift(NULL,0,StrToTime(mChannels_UpperTF[Index][3])))
                                     -StrToDouble(mChannels_UpperTF[Index][4]));
         // ----- âåðõíÿÿ ãðàíèöà êàíàëà
         ObjectCreate("Channel_UpperTF"+(string)Index+"_UpperLine",OBJ_TREND,0,StrToTime(mChannels_UpperTF[Index][3]),StrToDouble(mChannels_UpperTF[Index][4]),
                      StrToTime(mChannels_UpperTF[Index][5]),StrToDouble(mChannels_UpperTF[Index][6])-StrToDouble(mChannels_UpperTF[Index][7]));
         ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLine",OBJPROP_RAY,True);
         ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLine",OBJPROP_WIDTH,1);
         ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLine",OBJPROP_COLOR,GetChannelColor(Index));
         // ----- ñåðåäèíà êàíàëà ãðàíèöà êàíàëà
         ObjectCreate("Channel_UpperTF"+(string)Index+".MiddleLine",OBJ_TREND,0,StrToTime(mChannels_UpperTF[Index][1]),StrToDouble(mChannels_UpperTF[Index][2])
                      -StrToDouble(mChannels_UpperTF[Index][7])/2,
                      StrToTime(mChannels_UpperTF[Index][5]),StrToDouble(mChannels_UpperTF[Index][6])-StrToDouble(mChannels_UpperTF[Index][7])/2);
         ObjectSet("Channel_UpperTF"+(string)Index+".MiddleLine",OBJPROP_RAY,True);
         ObjectSet("Channel_UpperTF"+(string)Index+".MiddleLine",OBJPROP_STYLE,STYLE_DASHDOT);
         ObjectSet("Channel_UpperTF"+(string)Index+".MiddleLine",OBJPROP_WIDTH,1);
         ObjectSet("Channel_UpperTF"+(string)Index+".MiddleLine",OBJPROP_COLOR,GetChannelColor(Index));
         // ----- íèæíÿÿ ëèíèÿ ÇÓÊ -10%
         ObjectCreate("Channel_UpperTF"+(string)Index+"_LowerLineZUK(-10%)",OBJ_TREND,0,StrToTime(mChannels_UpperTF[Index][1]),StrToDouble(mChannels_UpperTF[Index][2])
                      -StrToDouble(mChannels_UpperTF[Index][7])/10,
                      StrToTime(mChannels_UpperTF[Index][5]),StrToDouble(mChannels_UpperTF[Index][6])-StrToDouble(mChannels_UpperTF[Index][7])/10);
         ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLineZUK(-10%)",OBJPROP_RAY,True);
         ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLineZUK(-10%)",OBJPROP_STYLE,STYLE_DASH);
         ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLineZUK(-10%)",OBJPROP_WIDTH,1);
         ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLineZUK(-10%)",OBJPROP_COLOR,GetChannelColor(Index));
         // ----- âåðõíÿÿ ëèíèÿ ÇÓÊ -10%
         ObjectCreate("Channel_UpperTF"+(string)Index+"_UpperLineZUK(-10%)",OBJ_TREND,0,StrToTime(mChannels_UpperTF[Index][3]),StrToDouble(mChannels_UpperTF[Index][4])
                      +StrToDouble(mChannels_UpperTF[Index][7])/10,
                      StrToTime(mChannels_UpperTF[Index][5]),StrToDouble(mChannels_UpperTF[Index][6])-StrToDouble(mChannels_UpperTF[Index][7])+
                      StrToDouble(mChannels_UpperTF[Index][7])/10);
         ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLineZUK(-10%)",OBJPROP_RAY,True);
         ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLineZUK(-10%)",OBJPROP_STYLE,STYLE_DASH);
         ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLineZUK(-10%)",OBJPROP_WIDTH,1);
         ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLineZUK(-10%)",OBJPROP_COLOR,GetChannelColor(Index));
         // ----- íèæíÿÿ ëèíèÿ ÇÓÊ +10%
         ObjectCreate("Channel_UpperTF"+(string)Index+"_LowerLineZUK(+10%)",OBJ_TREND,0,StrToTime(mChannels_UpperTF[Index][1]),StrToDouble(mChannels_UpperTF[Index][2])
                      +StrToDouble(mChannels_UpperTF[Index][7])/10,
                      StrToTime(mChannels_UpperTF[Index][5]),StrToDouble(mChannels_UpperTF[Index][6])+StrToDouble(mChannels_UpperTF[Index][7])/10);
         ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLineZUK(+10%)",OBJPROP_RAY,True);
         ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLineZUK(+10%)",OBJPROP_STYLE,STYLE_DASH);
         ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLineZUK(+10%)",OBJPROP_WIDTH,1);
         ObjectSet("Channel_UpperTF"+(string)Index+"_LowerLineZUK(+10%)",OBJPROP_COLOR,GetChannelColor(Index));
         // ----- âåðõíÿÿ ëèíèÿ ÇÓÊ +10%
         ObjectCreate("Channel_UpperTF"+(string)Index+"_UpperLineZUK(+10%)",OBJ_TREND,0,StrToTime(mChannels_UpperTF[Index][3]),StrToDouble(mChannels_UpperTF[Index][4])
                      -StrToDouble(mChannels_UpperTF[Index][7])/10,
                      StrToTime(mChannels_UpperTF[Index][5]),StrToDouble(mChannels_UpperTF[Index][6])-StrToDouble(mChannels_UpperTF[Index][7])-
                      StrToDouble(mChannels_UpperTF[Index][7])/10);
         ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLineZUK(+10%)",OBJPROP_RAY,True);
         ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLineZUK(+10%)",OBJPROP_STYLE,STYLE_DASH);
         ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLineZUK(+10%)",OBJPROP_WIDTH,1);
         ObjectSet("Channel_UpperTF"+(string)Index+"_UpperLineZUK(+10%)",OBJPROP_COLOR,GetChannelColor(Index));
        }
     }

   return;
  }
//+------------------------------------------------------------------+

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---