ZH_StandardFunctionsTfH2.lib





//+-----------------------------------------------------------------------------------------------------------------------------+
//|                                                                                             ZH_StandardFunctionsTfH2.lib.mq4|
//|                                                                                             Copyright © Zhunko              |
//|09.10.2009 - 12.10.2009                                                                      ÌF ZHUNKO vadim@zhunko.ru       |
//+-----------------------------------------------------------------------------------------------------------------------------+
//| Íàáîð ñòàíäàðòíûõ ôóíêöèé äëÿ ÒÔ H2.                                                                                        |
//+-----------------------------------------------------------------------------------------------------------------------------+
//|1.Êîëè÷åñòâî áàðîâ â ÒÔ H2.                                                                                                  |
//|  int iBars_H2 (string symbol); // Ñèìâîëüíîå èìÿ èíñòðóìåíòà.                                                               |
//+-----------------------------------------------------------------------------------------------------------------------------+
//|2.Íîìåð áàðà ïî âðåìåíè â ÒÔ H2.                                                                                             |
//|  int iBarShift_H2 (string   symbol, // Ñèìâîëüíîå èìÿ èíñòðóìåíòà.                                                          |
//|                    datetime time,   // Çíà÷åíèå âðåìåíè äëÿ ïîèñêà.                                                         |
//|                    bool     exact)  // Âîçâðàùàåìîå çíà÷åíèå åñëè áàð íå íàéäåí                                             |
//|                                     // (FALSE - iBarShift âîçâðàùàåò áëèæàéøèé/TRUE - iBarShift âîçâðàùàåò -1).             |
//+-----------------------------------------------------------------------------------------------------------------------------+
//|3.Âðåìÿ îòêðûòèÿ ïî íîìåðó áàðà â ÒÔ H2.                                                                                     |
//|  datetime iTime_H2 (string symbol, // Ñèìâîëüíîå èìÿ èíñòðóìåíòà                                                            |
//|                     int    shift)  // Íîìåð áàðà.                                                                           |
//+-----------------------------------------------------------------------------------------------------------------------------+
//|4.Öåíà îòêðûòèÿ âûáðàííîãî áàðà â ÒÔ H2.                                                                                     |
//|  double iOpen_H2 (string symbol, // Ñèìâîëüíîå èìÿ èíñòðóìåíòà.                                                             |
//|                   int    shift)  // Íîìåð áàðà.                                                                             |
//+-----------------------------------------------------------------------------------------------------------------------------+
//|5.Ìàêñèìàëüíàÿ öåíà âûáðàííîãî áàðà â ÒÔ H2.                                                                                 |
//|  double iHigh_H2 (string symbol, // Ñèìâîëüíîå èìÿ èíñòðóìåíòà.                                                             |
//|                   int    shift)  // Íîìåð áàðà.                                                                             |
//+-----------------------------------------------------------------------------------------------------------------------------+
//|6.Ìèíèìàëüíàÿ öåíà âûáðàííîãî áàðà â ÒÔ H2.                                                                                  |
//|  double iLow_H2 (string symbol, // Ââàëþòíàÿ ïàðà.                                                                          |
//|                  int    shift)  // Íîìåð áàðà.                                                                              |
//+-----------------------------------------------------------------------------------------------------------------------------+
//|7.Öåíà çàêðûòèÿ âûáðàííîãî áàðà â ÒÔ H2.                                                                                     |
//|  double iClose_H2 (string symbol, // Ñèìâîëüíîå èìÿ èíñòðóìåíòà.                                                            |
//|                    int    shift)  // Íîìåð áàðà.                                                                            |
//+-----------------------------------------------------------------------------------------------------------------------------+
//|8. Âîçâðàùàåò òåêóùèé íîìåð äâóõ÷àñîâîãî áàðà â ñóòêàõ ïîñëåäíåãî èçâåñòíîãî ñåðâåðíîãî âðåìåíè.                             |
//|   int Hour2()                                                                                                               |
//+-----------------------------------------------------------------------------------------------------------------------------+
//|9. Âîçâðàùàåò íîìåð äâóõ÷àñîâîãî áàðà â ñóòêàõ äëÿ óêàçàííîãî âðåìåíè.                                                       |
//|   int TimeHour2 (datetime time) // Äàòà, ïðåäñòàâëåííàÿ â âèäå êîëè÷åñòâà ñåêóíä, ïðîøåäøèõ ïîñëå 00:00 1 ÿíâàðÿ 1970 ãîäà. |
//+-----------------------------------------------------------------------------------------------------------------------------+
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
#property copyright "Copyright © 2006 Zhunko"
#property link      "vadim@zhunko.ru"
#property library
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
// 1. Êîëè÷åñòâî áàðîâ â ÒÔ H2.
int iBars_H2 (string symbol) // Ñèìâîëüíîå èìÿ èíñòðóìåíòà.
 {
  datetime iTimeH1;          // Âðåìÿ îòêðûòèÿ ÷àñîâîãî áàðà.
  int      i, j;
  int      iBarsH1;          // Êîëè÷åñòâî áàðîâ â ÒÔ H1 òåêóùåãî èíñòðóìåíòà.
  int      iBarsH2;          // Êîëè÷åñòâî áàðîâ â ÒÔ H2.
  // Ìàññèâû.
  bool     ArSwitch[12];     // Âûêëþ÷àòåëè ñ÷¸ò÷èêà øåñòè÷àñîâûõ áàðîâ.
  //----
  ArrayInitialize (ArSwitch, true);
  iBarsH1 = iBars (symbol, PERIOD_H1); // Êîëè÷åñòâî áàðîâ â ÒÔ H1 òåêóùåãî èíñòðóìåíòà.
  for (i = 0, iBarsH2 = 0; i < iBarsH1; i++)
   {
    iTimeH1 = iTime (symbol, PERIOD_H1, i); // Âðåìÿ îòêðûòèÿ ÷àñîâîãî áàðà.
    // Íà ïåðâîé èòåðàöèè íå ïðîâåðÿì ñóòîê. Åñëè ñìåíèëèñü ñóòêè, èíèöèàëèçèðóåì ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ. Ìîæåò ïðèãîäèòüñÿ ïðè îòñóòñòâèè áàðîâ âíóòðè äíÿ è íåñêîëüêèõ äíåé ïîäðÿä (äûðû â èñòîðèè).
    if (i > 0) if (MathMod (TimeDay (iTimeH1), TimeDay (iTime (symbol, PERIOD_H1, i - 1))) != 0) ArrayInitialize (ArSwitch, true);
    // Ïåðåêëþ÷àåì ïî ÷àñàì ñóòîê.
    switch (TimeHour (iTimeH1))
     {//----×àñîâûå áàðû 12-ãî äâóõ÷àñîâîãî áàðà.-----------------------------------------------------------------------------------------
      case 23:
      case 22:
       {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
        for (j = 0; j < 12; j++) if (j != 11) ArSwitch[j] = true;
        if (ArSwitch[11] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
         {
          iBarsH2++;              // Ñ÷èòàåì êâàðòàëüíûé áàð.
          ArSwitch[11] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
          break;                  // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
         }
        else continue;            // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
       }
      //----×àñîâûå áàðû 11-ãî äâóõ÷àñîâîãî áàðà.-----------------------------------------------------------------------------------------
      case 21:
      case 20:
       {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
        for (j = 0; j < 12; j++) if (j != 10) ArSwitch[j] = true;
        if (ArSwitch[10] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
         {
          iBarsH2++;              // Ñ÷èòàåì êâàðòàëüíûé áàð.
          ArSwitch[10] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
          break;                  // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
         }
        else continue;            // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
       }
      //----×àñîâûå áàðû 10-ãî äâóõ÷àñîâîãî áàðà.-----------------------------------------------------------------------------------------
      case 19:
      case 18:
       {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
        for (j = 0; j < 12; j++) if (j != 9) ArSwitch[j] = true;
        if (ArSwitch[9] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
         {
          iBarsH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
          ArSwitch[9] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
          break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
         }
        else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
       }
      //----×àñîâûå áàðû 9-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
      case 17:
      case 16:
       {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
        for (j = 0; j < 12; j++) if (j != 8) ArSwitch[j] = true;
        if (ArSwitch[8] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
         {
          iBarsH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
          ArSwitch[8] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
          break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
         }
        else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
       }
      //----×àñîâûå áàðû 8-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
      case 15:
      case 14:
       {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
        for (j = 0; j < 12; j++) if (j != 7) ArSwitch[j] = true;
        if (ArSwitch[7] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
         {
          iBarsH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
          ArSwitch[7] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
          break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
         }
        else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
       }
      //----×àñîâûå áàðû 7-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
      case 13:
      case 12:
       {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
        for (j = 0; j < 12; j++) if (j != 6) ArSwitch[j] = true;
        if (ArSwitch[6] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
         {
          iBarsH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
          ArSwitch[6] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
          break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
         }
        else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
       }
      //----×àñîâûå áàðû 6-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
      case 11:
      case 10:
       {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
        for (j = 0; j < 12; j++) if (j != 5) ArSwitch[j] = true;
        if (ArSwitch[5] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
         {
          iBarsH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
          ArSwitch[5] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
          break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
         }
        else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
       }
      //----×àñîâûå áàðû 5-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
      case  9:
      case  8:
       {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
        for (j = 0; j < 12; j++) if (j != 4) ArSwitch[j] = true;
        if (ArSwitch[4] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
         {
          iBarsH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
          ArSwitch[4] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
          break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
         }
        else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
       }
      //----×àñîâûå áàðû 4-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
      case  7:
      case  6:
       {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
        for (j = 0; j < 12; j++) if (j != 3) ArSwitch[j] = true;
        if (ArSwitch[3] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
         {
          iBarsH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
          ArSwitch[3] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
          break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
         }
        else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
       }
      //----×àñîâûå áàðû 3-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
      case 5:
      case 4:
       {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
        for (j = 0; j < 12; j++) if (j != 2) ArSwitch[j] = true;
        if (ArSwitch[2] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
         {
          iBarsH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
          ArSwitch[2] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
          break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
         }
        else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
       }
      //----×àñîâûå áàðû 2-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
      case 3:
      case 2:
       {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
        for (j = 0; j < 12; j++) if (j != 1) ArSwitch[j] = true;
        if (ArSwitch[1] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
         {
          iBarsH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
          ArSwitch[1] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
          break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
         }
        else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
       }
      //----×àñîâûå áàðû 1-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
      case 1:
      case 0:
       {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
        for (j = 0; j < 12; j++) if (j != 0) ArSwitch[j] = true;
        if (ArSwitch[0] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
         {
          iBarsH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
          ArSwitch[0] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
          break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
         }
        else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
       }
     }
   }
  return (iBarsH2);
 }
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
// 2. Íîìåð áàðà ïî âðåìåíè â ÒÔ H2.
int iBarShift_H2 (string   symbol, // Ñèìâîëüíîå èìÿ èíñòðóìåíòà.
                  datetime time,   // Çíà÷åíèå âðåìåíè äëÿ ïîèñêà.
                  bool     exact)  // Âîçâðàùàåìîå çíà÷åíèå åñëè áàð íå íàéäåí (FALSE - iBarShift âîçâðàùàåò áëèæàéøèé/TRUE - iBarShift âîçâðàùàåò -1).
 {
  datetime TimeFirst_H2;     // Âðåìÿ çàêðûòèÿ ïåðâãî áàðà H2 â èñòîðèè. Áàð íà÷àëà èñòîðèè ïàðû.
  datetime TimeLast_H2;      // Âðåìÿ îòêðûòèÿ ïîñëåäíåãî áàðà H2 â èñòîðèè.
  datetime iTimeH1;          // Âðåìÿ îòêðûòèÿ òåêóùåãî áàðà íà H1.
  datetime iTimeH2_0;        // Âðåìÿ îòêðûòèÿ òåêóùåãî áàðà íà H2.
  datetime iTimeH2_1;        // Âðåìÿ îòêðûòèÿ ïðåäûäóùåãî áàðà íà H2.
  int      AmountBar;        // Êîëè÷åñòâî äîáàâëÿåìûõ áàðîâ â ïåðâîì èëè ïîñëåäíåì êâàðòàëüíûõ áàðàõ.
  int      i, j;
  int      ShiftH2 = 0;      // Âîçâðàùàåìîå çíà÷åíèå ñìåùåíèÿ áàðà â ÒÔ H2.
  int      iBarsH1;          // Êîëè÷åñòâî áàðîâ â ÒÔ H1 òåêóùåãî èíñòðóìåíòà.
  int      NumberHour;       // Íîìåð ÷àñà.
  // Ìàññèâû.
  bool     ArSwitch[12];     // Âûêëþ÷àòåëè ñ÷¸ò÷èêà øåñòè÷àñîâûõ áàðîâ.
  //----
  ArrayInitialize (ArSwitch, true);
  //====Ïîäãîòîâêà äàííûõ.================================================================================================================================================================================================================
  iBarsH1 = iBars (symbol, PERIOD_H1);                    // Êîëè÷åñòâî áàðîâ â ÒÔ H1 òåêóùåãî èíñòðóìåíòà.
  //====Ðàñ÷¸ò âðåìåíè çàêðûòèÿ ïåðâîãî êâàðòàëüíîãî áàðà â èñòîðèè. Êâàðòàë íà÷àëà èñòîðèè ïàðû.==========================================================================================================================================
  TimeFirst_H2 = iTime (symbol, PERIOD_H1, iBarsH1 - 1);  // Âðåìÿ îòêðûòèÿ ïåðâîãî â èñòîðèè ÷àñîâîãî áàðà.
  NumberHour = TimeHour (TimeFirst_H2) + 1;               // Íîìåð ÷àñà ÎÒ 1 äî 24.
  // Âû÷èñëÿåì êîëè÷åñòâî äîáàâëÿåìûõ áàðîâ â êâàðòàëüíîì áàðå.
  if (MathMod (NumberHour, 2) == 0) TimeFirst_H2 += 3600; // Åñëè áàð ïîñëåäíèé â áàðå H2, ïðîèçâîäèì ïðèáàâëåíèå 1-ãî áàðà.
  else TimeFirst_H2 += 7200;                              // Åñëè áàð ïåðâûé â áàðå H2, ïðîèçâîäèì ïðèáàâëåíèå 2-õ áàðîâ.
  //====Ðàñ÷¸ò âðåìåíè îòêðûòèÿ ïîñëåäíåãî êâàðòàëüíîãî áàðà â èñòîðèè.===================================================================================================================================================================
  TimeLast_H2 = iTime (symbol, PERIOD_H1, 0);             // Âðåìÿ îòêðûòèÿ ïîñëåäíåãî â èñòîðèè ÷àñîâîãî áàðà.
  NumberHour = TimeHour (TimeLast_H2) + 1;                // Íîìåð ÷àñà ÎÒ 1 äî 24.
  // Âû÷èñëÿåì êîëè÷åñòâî óáàâëÿåìûõ áàðîâ â êâàðòàëüíîì áàðå.
  if (MathMod (NumberHour, 2) == 0) TimeFirst_H2 -= 3600; // Åñëè áàð ïîñëåäíèé â áàðå H2, ïðîèçâîäèì óáàâëåíèå 1-ãî áàðà.
  //----Äèàãíîñòèêà.----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//  Comment ("TimeFirst_H2 = ", TimeToStr (TimeFirst_H2, TIME_DATE|TIME_MINUTES|TIME_SECONDS), "\nLastQuarter = ", TimeToStr (TimeLast_H2, TIME_DATE|TIME_MINUTES|TIME_SECONDS));
  //======================================================================================================================================================================================================================================
  if (time < TimeFirst_H2 || time >= TimeLast_H2)              // Äëÿ ýêîíîìèè âðåìåíè íà öèêëàõ, ïðè âûáðàííîì âðåìåíè ñî çíà÷åíèåì ìåíüøåì âðåìåíè íà÷àëà èñòîðèè èëè áîëüøåì òåêóùîãî äâóõ÷àñîâîãî áàðà. 
   {
    if (exact == true) return (-1);                            // Åñëè ïåðåêëþ÷àòåëü ðàçðåøàåò, òî âîçâðàùàåì -1 â ñëó÷àå îòñóòñòâèÿ áàðà.
    else                                                       // Åñëè ïåðåêëþ÷àòåëü çàïðåùàåò, òî âîçâðàùàåì áëèæàéøèé ïî õîäó öèêëà (ïðåäûäóùèé) áàð.
     {
      if (time < TimeFirst_H2) return (iBars_H2 (symbol) - 1); // Åñëè çàäàííîå çíà÷åíèå âðåìåíè äëÿ ïîèñêà ìåíüøå âðåìåíè íà÷àëà èñòîðèè, ñ÷èòàåì êîëè÷åñòâî áàðîâ.
      if (time > TimeLast_H2) return (0);                      // Åñëè çàäàííîå çíà÷åíèå âðåìåíè äëÿ ïîèñêà áîëüøå âðåìåíè êîíöà èñòîðèè, âîçðàùàåì ïîñëåäíèé áàð.
     }
   }
  else                                                      // Åñëè çàäàííîå çíà÷åíèå âðåìåíè ñîîòâåòñòâóåò ñóùåñòâóþùåé èñòîðèè.
   {// Âðåìÿ çàêðûòèÿ íóëåâîãî áàðà ÒÔ H2.
    iTimeH2_0 = iTime (symbol, PERIOD_H1, 0);               // Âðåìÿ îòêðûòèÿ ïåðâîãî â èñòîðèè ÷àñîâîãî áàðà.
    NumberHour = TimeHour (iTimeH2_0) + 1;                  // Íîìåð ÷àñà.
    if (MathMod (NumberHour, 2) == 0) TimeFirst_H2 += 3600; // Åñëè áàð ïîñëåäíèé â áàðå H2, ïðîèçâîäèì ïðèáàâëåíèå 1-ãî áàðà.
    else TimeFirst_H2 += 7200;                              // Åñëè áàð ïåðâûé â áàðå H2, ïðîèçâîäèì ïðèáàâëåíèå 2-õ áàðîâ.
    for (i = 0, ShiftH2 = -1; i < iBarsH1; i++)             // Öèêë ïî ìåñÿ÷íûì áàðàì. Íà÷àëî ñ íóëåâîãî áàðà.
     {
      iTimeH1 = iTime (symbol, PERIOD_H1, i);               // Âðåìÿ îòêðûòèÿ òåêóùåãî ÷àñîâîãî áàðà.
      // Íà ïåðâîé èòåðàöèè íå ïðîâåðÿì ñóòîê. Åñëè ñìåíèëèñü ñóòêè, èíèöèàëèçèðóåì ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ. Ìîæåò ïðèãîäèòüñÿ ïðè îòñóòñòâèè áàðîâ âíóòðè äíÿ è íåñêîëüêèõ äíåé ïîäðÿä (äûðû â èñòîðèè).
      if (i > 0) if (MathMod (TimeDay (iTimeH1), TimeDay (iTime (symbol, PERIOD_H1, i - 1))) != 0) ArrayInitialize (ArSwitch, true);
      // Ïåðåêëþ÷àåì ïî ÷àñàì ñóòîê.
      NumberHour = TimeHour (iTimeH1); // Íîìåð ÷àñà.
      switch (NumberHour)
       {//----×àñîâûå áàðû 12-ãî äâóõ÷àñîâîãî áàðà.-----------------------------------------------------------------------------------------
        case 23:
        case 22:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 11) ArSwitch[j] = true;
          if (ArSwitch[11] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;              // Ñ÷èòàåì êâàðòàëüíûé áàð.
            ArSwitch[11] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                  // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;            // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 11-ãî äâóõ÷àñîâîãî áàðà.-----------------------------------------------------------------------------------------
        case 21:
        case 20:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 10) ArSwitch[j] = true;
          if (ArSwitch[10] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;              // Ñ÷èòàåì êâàðòàëüíûé áàð.
            ArSwitch[10] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                  // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;            // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 10-ãî äâóõ÷àñîâîãî áàðà.-----------------------------------------------------------------------------------------
        case 19:
        case 18:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 9) ArSwitch[j] = true;
          if (ArSwitch[9] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            ArSwitch[9] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 9-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 17:
        case 16:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 8) ArSwitch[j] = true;
          if (ArSwitch[8] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            ArSwitch[8] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 8-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 15:
        case 14:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 7) ArSwitch[j] = true;
          if (ArSwitch[7] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            ArSwitch[7] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 7-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 13:
        case 12:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 6) ArSwitch[j] = true;
          if (ArSwitch[6] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            ArSwitch[6] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 6-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 11:
        case 10:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 5) ArSwitch[j] = true;
          if (ArSwitch[5] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            ArSwitch[5] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 5-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case  9:
        case  8:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 4) ArSwitch[j] = true;
          if (ArSwitch[4] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            ArSwitch[4] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 4-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case  7:
        case  6:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 3) ArSwitch[j] = true;
          if (ArSwitch[3] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            ArSwitch[3] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 3-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 5:
        case 4:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 2) ArSwitch[j] = true;
          if (ArSwitch[2] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            ArSwitch[2] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 2-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 3:
        case 2:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 1) ArSwitch[j] = true;
          if (ArSwitch[1] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            ArSwitch[1] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 1-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 1:
        case 0:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 0) ArSwitch[j] = true;
          if (ArSwitch[0] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            ArSwitch[0] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         } 
       }
      // Åñëè ïåðåêëþ÷àòåëü ðàçðåøàåò, òî ïðîèçâîäèì ïîèñê âðåìåíè â ïðåäïîëàãàåìîé "äûðå" èñòîðèè.
      if (exact == true)
       {// Ðàñ÷¸ò âðåìåíè çàêðûòèÿ òåêóùåãî êâàðòàëüíîãî áàðà.
        iTimeH2_1 = iTimeH1;                                        // Âðåìÿ îòêðûòèÿ ïîñëåäíåãî â êâàðòàëå ÷àñîâîãî áàðà.
        // Âû÷èñëÿåì êîëè÷åñòâî äîáàâëÿåìûõ áàðîâ â êâàðòàëüíîì áàðå.
        if (MathMod (NumberHour + 1, 2) == 0) TimeFirst_H2 += 3600; // Åñëè áàð ïîñëåäíèé â áàðå H2, ïðîèçâîäèì ïðèáàâëåíèå 1-ãî áàðà.
        else TimeFirst_H2 += 7200;                                  // Åñëè áàð ïåðâûé â áàðå H2, ïðîèçâîäèì ïðèáàâëåíèå 2-õ áàðîâ.
        // Ïðîâåðÿåì íà "äûðó" â èñòîðèè.
        if (iTimeH2_1 < time && time < iTimeH2_0) return (-1);      // Âîçâðàùàåì -1 â ñëó÷àå îòñóòñòâèÿ áàðà.
       }
      // Ðàñ÷¸ò âðåìåíè îòêðûòèÿ òåêóùåãî êâàðòàëüíîãî áàðà.
      iTimeH2_0 = iTimeH1;                                          // Âðåìÿ îòêðûòèÿ ïåðâîãî â èñòîðèè ÷àñîâîãî áàðà.
      // Âû÷èñëÿåì êîëè÷åñòâî óáàâëÿåìûõ áàðîâ â êâàðòàëüíîì áàðå.
      if (MathMod (NumberHour + 1, 2) == 0) TimeFirst_H2 -= 3600;   // Åñëè áàð ïîñëåäíèé â áàðå H2, ïðîèçâîäèì óáàâëåíèå 1-ãî áàðà.
      else TimeFirst_H2 += 7200;                                    // Åñëè áàð ïåðâûé â áàðå H2, ïðîèçâîäèì ïðèáàâëåíèå 2-õ áàðîâ.
      if (time >= iTimeH2_0) return (ShiftH2);           // Âîçâðàùàåì íîìåð òåêóùåãî áàðà íà H2.
     }
   }
 }
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
// 3. Âðåìÿ îòêðûòèÿ ïî íîìåðó áàðà â ÒÔ H2.
datetime iTime_H2 (string symbol, // Ñèìâîëüíîå èìÿ èíñòðóìåíòà
                   int    shift)  // Íîìåð áàðà.
 {
  datetime iTimeH1;   // Âðåìÿ îòêðûòèÿ ÷àñîâîãî áàðà.
  int      AmountBar; // Êîëè÷åñòâî äîáàâëÿåìûõ áàðîâ â ïåðâîì èëè ïîñëåäíåì êâàðòàëüíûõ áàðàõ.
  int      i, j;
  int      iBarsH1 = iBars (symbol, PERIOD_H1); // Êîëè÷åñòâî áàðîâ â ÒÔ H1 òåêóùåãî èíñòðóìåíòà.
  int      iBarsH2 = iBars_H2 (symbol);         // Êîëè÷åñòâî áàðîâ â ÒÔ H2.
  int      NumberHour;                          // Íîìåð ÷àñà.
  int      ShiftH2;                             // Òåêóùèé íîìåð áàðà ÒÔ H2.
  // Ìàññèâû.
  bool     ArSwitch[12];     // Âûêëþ÷àòåëè ñ÷¸ò÷èêà øåñòè÷àñîâûõ áàðîâ.
  //----
  ArrayInitialize (ArSwitch, true);
  //----
  if (0 > shift || shift >= iBarsH2) return (0); // Âîçâðàùàåì íîëü â ñëó÷àå îøèáêè.
  else                                           // Åñëè íîìåð áàðà íàõîäèòñÿ â ïðåäåëàõ èñòîðèè, èùåì åãî.
   {// Ðàñ÷¸ò ãîäà íà âèñîêîñíîñòü. Çàäà¸ì íà÷àëüíîå çíà÷åíèå.
    for (i = 0, ShiftH2 = -1; i < iBarsH1; i++)  // Öèêë ïî íîìåðàì ìåñÿ÷íûõ áàðîâ.
     {
      iTimeH1 = iTime (symbol, PERIOD_H1, i);    // Âðåìÿ îòêðûòèÿ ÷àñîâîãî áàðà.
      // Íà ïåðâîé èòåðàöèè íå ïðîâåðÿì ñóòîê. Åñëè ñìåíèëèñü ñóòêè, èíèöèàëèçèðóåì ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ. Ìîæåò ïðèãîäèòüñÿ ïðè îòñóòñòâèè áàðîâ âíóòðè äíÿ è íåñêîëüêèõ äíåé ïîäðÿä (äûðû â èñòîðèè).
      if (i > 0) if (MathMod (TimeDay (iTimeH1), TimeDay (iTime (symbol, PERIOD_H1, i - 1))) != 0) ArrayInitialize (ArSwitch, true);
      // Ïåðåêëþ÷àåì ïî ÷àñàì ñóòîê.
      NumberHour = TimeHour (iTimeH1); // Íîìåð ÷àñà.
      switch (NumberHour)
       {//----×àñîâûå áàðû 12-ãî äâóõ÷àñîâîãî áàðà.-----------------------------------------------------------------------------------------
        case 23:
        case 22:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 11) ArSwitch[j] = true;
          if (ArSwitch[11] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;              // Ñ÷èòàåì êâàðòàëüíûé áàð.
            ArSwitch[11] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                  // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;            // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 11-ãî äâóõ÷àñîâîãî áàðà.-----------------------------------------------------------------------------------------
        case 21:
        case 20:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 10) ArSwitch[j] = true;
          if (ArSwitch[10] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;              // Ñ÷èòàåì êâàðòàëüíûé áàð.
            ArSwitch[10] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                  // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;            // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 10-ãî äâóõ÷àñîâîãî áàðà.-----------------------------------------------------------------------------------------
        case 19:
        case 18:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 9) ArSwitch[j] = true;
          if (ArSwitch[9] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            ArSwitch[9] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 9-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 17:
        case 16:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 8) ArSwitch[j] = true;
          if (ArSwitch[8] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            ArSwitch[8] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 8-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 15:
        case 14:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 7) ArSwitch[j] = true;
          if (ArSwitch[7] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            ArSwitch[7] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 7-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 13:
        case 12:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 6) ArSwitch[j] = true;
          if (ArSwitch[6] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            ArSwitch[6] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 6-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 11:
        case 10:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 5) ArSwitch[j] = true;
          if (ArSwitch[5] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            ArSwitch[5] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 5-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case  9:
        case  8:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 4) ArSwitch[j] = true;
          if (ArSwitch[4] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            ArSwitch[4] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 4-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case  7:
        case  6:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 3) ArSwitch[j] = true;
          if (ArSwitch[3] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            ArSwitch[3] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 3-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 5:
        case 4:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 2) ArSwitch[j] = true;
          if (ArSwitch[2] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            ArSwitch[2] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 2-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 3:
        case 2:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 1) ArSwitch[j] = true;
          if (ArSwitch[1] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            ArSwitch[1] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 1-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 1:
        case 0:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 0) ArSwitch[j] = true;
          if (ArSwitch[0] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            ArSwitch[0] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
       }
      // Åñëè íàøëè íóæíûé áàð.
      if (shift == ShiftH2)
       {// Âû÷èñëÿåì êîëè÷åñòâî óáàâëÿåìûõ áàðîâ â êâàðòàëüíîì áàðå.
        if (MathMod (NumberHour + 1, 2) == 0) return (iTimeH1 - 3600); // Åñëè áàð ïîñëåäíèé â áàðå H2, ïðîèçâîäèì óáàâëåíèå 1-ãî áàðà.
        else return (iTimeH1);                                         // Âîçâðàùàåì âðåìÿ îòêðûòèÿ ïåðâîãî áàðà.
       }
     }
   }
 }
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
// 4. Öåíà îòêðûòèÿ âûáðàííîãî áàðà â ÒÔ H2.
double iOpen_H2 (string symbol, // Ñèìâîëüíîå èìÿ èíñòðóìåíòà.
                 int    shift)  // Íîìåð áàðà.
 {
  bool     Switch_H1 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà øåñòè÷àñîâûõ áàðîâ äëÿ ïåðâîãî äâóõ÷àñîâîãî áàðà.
  bool     Switch_H2 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà øåñòè÷àñîâûõ áàðîâ äëÿ âòîðîãî äâóõ÷àñîâîãî áàðà.
  bool     Switch_H3 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà øåñòè÷àñîâûõ áàðîâ äëÿ òðåòüîãî äâóõ÷àñîâîãî áàðà.
  bool     Switch_H4 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà øåñòè÷àñîâûõ áàðîâ äëÿ ÷åòâ¸ðòîãî äâóõ÷àñîâîãî áàðà.
  datetime iTimeH1;          // Âðåìÿ îòêðûòèÿ ÷àñîâîãî áàðà.
  int      i, j, k;
  int      iBarsH1 = iBars (symbol, PERIOD_H1); // Êîëè÷åñòâî áàðîâ â ÒÔ H1 òåêóùåãî èíñòðóìåíòà.
  int      iBarsH2 = iBars_H2 (symbol);         // Êîëè÷åñòâî áàðîâ â ÒÔ H2.
  int      FirstH1;                             // Íîìåð ïåðâîãî ÷àñà â 2-õ ÷àñîâîì áàðå.
  int      ShiftH2;                             // Òåêóùèé íîìåð áàðà ÒÔ H2.
  // Ìàññèâû.
  bool     ArSwitch[12];     // Âûêëþ÷àòåëè ñ÷¸ò÷èêà øåñòè÷àñîâûõ áàðîâ.
  //----
  ArrayInitialize (ArSwitch, true);
  //----
  if (0 > shift || shift >= iBarsH2) return (0); // Âîçâðàùàåì íîëü â ñëó÷àå îøèáêè.
  else                                           // Åñëè íîìåð áàðà íàõîäèòñÿ â ïðåäåëàõ èñòîðèè, èùåì åãî.
   {
    for (i = 0, ShiftH2 = -1; i < iBarsH1; i++)  // Öèêë ïî íîìåðàì ìåñÿ÷íûõ áàðîâ.
     {
      iTimeH1 = iTime (symbol, PERIOD_H1, i);    // Âðåìÿ îòêðûòèÿ ÷àñîâîãî áàðà.
      // Íà ïåðâîé èòåðàöèè íå ïðîâåðÿì ñóòîê. Åñëè ñìåíèëèñü ñóòêè, èíèöèàëèçèðóåì ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ. Ìîæåò ïðèãîäèòüñÿ ïðè îòñóòñòâèè áàðîâ âíóòðè äíÿ è íåñêîëüêèõ äíåé ïîäðÿä (äûðû â èñòîðèè).
      if (i > 0) if (MathMod (TimeDay (iTimeH1), TimeDay (iTime (symbol, PERIOD_H1, i - 1))) != 0) ArrayInitialize (ArSwitch, true);
      // Ïåðåêëþ÷àåì ïî ÷àñàì ñóòîê.
      switch (TimeHour (iTimeH1))
       {//----×àñîâûå áàðû 12-ãî äâóõ÷àñîâîãî áàðà.-----------------------------------------------------------------------------------------
        case 23:
        case 22:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 11) ArSwitch[j] = true;
          if (ArSwitch[11] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;              // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstH1 = 22;           // Íîìåð ïåðâîãî ÷àñà â 2-õ ÷àñîâîì áàðå.
            ArSwitch[11] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                  // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;            // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 11-ãî äâóõ÷àñîâîãî áàðà.-----------------------------------------------------------------------------------------
        case 21:
        case 20:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 10) ArSwitch[j] = true;
          if (ArSwitch[10] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;              // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstH1 = 20;           // Íîìåð ïåðâîãî ÷àñà â 2-õ ÷àñîâîì áàðå.
            ArSwitch[10] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                  // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;            // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 10-ãî äâóõ÷àñîâîãî áàðà.-----------------------------------------------------------------------------------------
        case 19:
        case 18:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 9) ArSwitch[j] = true;
          if (ArSwitch[9] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstH1 = 18;          // Íîìåð ïåðâîãî ÷àñà â 2-õ ÷àñîâîì áàðå.
            ArSwitch[9] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 9-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 17:
        case 16:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 8) ArSwitch[j] = true;
          if (ArSwitch[8] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstH1 = 16;          // Íîìåð ïåðâîãî ÷àñà â 2-õ ÷àñîâîì áàðå.
            ArSwitch[8] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 8-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 15:
        case 14:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 7) ArSwitch[j] = true;
          if (ArSwitch[7] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstH1 = 14;          // Íîìåð ïåðâîãî ÷àñà â 2-õ ÷àñîâîì áàðå.
            ArSwitch[7] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 7-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 13:
        case 12:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 6) ArSwitch[j] = true;
          if (ArSwitch[6] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstH1 = 12;          // Íîìåð ïåðâîãî ÷àñà â 2-õ ÷àñîâîì áàðå.
            ArSwitch[6] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 6-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 11:
        case 10:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 5) ArSwitch[j] = true;
          if (ArSwitch[5] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstH1 = 10;          // Íîìåð ïåðâîãî ÷àñà â 2-õ ÷àñîâîì áàðå.
            ArSwitch[5] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 5-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case  9:
        case  8:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 4) ArSwitch[j] = true;
          if (ArSwitch[4] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstH1 = 8;           // Íîìåð ïåðâîãî ÷àñà â 2-õ ÷àñîâîì áàðå.
            ArSwitch[4] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 4-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case  7:
        case  6:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 3) ArSwitch[j] = true;
          if (ArSwitch[3] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstH1 = 6;           // Íîìåð ïåðâîãî ÷àñà â 2-õ ÷àñîâîì áàðå.
            ArSwitch[3] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 3-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 5:
        case 4:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 2) ArSwitch[j] = true;
          if (ArSwitch[2] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstH1 = 4;           // Íîìåð ïåðâîãî ÷àñà â 2-õ ÷àñîâîì áàðå.
            ArSwitch[2] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 2-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 3:
        case 2:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 1) ArSwitch[j] = true;
          if (ArSwitch[1] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstH1 = 2;           // Íîìåð ïåðâîãî ÷àñà â 2-õ ÷àñîâîì áàðå.
            ArSwitch[1] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 1-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 1:
        case 0:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 0) ArSwitch[j] = true;
          if (ArSwitch[0] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstH1 = 0;           // Íîìåð ïåðâîãî ÷àñà â 2-õ ÷àñîâîì áàðå.
            ArSwitch[0] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         } 
       }
      //------------------------------------------------------------------------------------------------------------------------------------
      if (shift == ShiftH2) // Åñëè íàøëè íóæíûé áàð.
       {
        for (i++, k = TimeDay (iTimeH1);; i++) // Èùèì ïåðâûé ìåñÿ÷íûé áàð êâàðòàëüíîãî áàðà.
         {
          iTimeH1 = iTime (symbol, PERIOD_H1, i);    // Âðåìÿ îòêðûòèÿ ÷àñîâîãî áàðà.
          // Äëÿ ïåðâîãî áàðà ïåðâîãî 2-õ ÷àñîâîãî áàðà â ñóòêè îñîáûå óñëîâèÿ ïðîâåðêè íà÷àëà. Îñòàíàâëèâàåì öèêë, åñëè ñëåäóþùèé áàð íàõîäèòñÿ â äðóãèõ ñóòêàõ èëè ìåñÿöå. Âîçâðàùàåì öåíó îòêðûòèÿ 6-è ÷àñîâîãî áàðà.
          if (FirstH1 == 0) {if (TimeHour (iTimeH1) > 1 || TimeDay (iTimeH1) != k) return (iOpen (symbol, PERIOD_H1, i - 1));}
          else {if (TimeHour (iTimeH1) < FirstH1 || TimeDay (iTimeH1) != k) return (iOpen (symbol, PERIOD_H1, i - 1));}
         }
       }
     }
   }
 }
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
// 5. Ìàêñèìàëüíàÿ öåíà âûáðàííîãî áàðà â ÒÔ H2.
double iHigh_H2 (string symbol, // Ñèìâîëüíîå èìÿ èíñòðóìåíòà.
                 int    shift)  // Íîìåð áàðà.
 {
  bool     Switch_H1 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà øåñòè÷àñîâûõ áàðîâ äëÿ ïåðâîãî äâóõ÷àñîâîãî áàðà.
  bool     Switch_H2 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà øåñòè÷àñîâûõ áàðîâ äëÿ âòîðîãî äâóõ÷àñîâîãî áàðà.
  bool     Switch_H3 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà øåñòè÷àñîâûõ áàðîâ äëÿ òðåòüîãî äâóõ÷àñîâîãî áàðà.
  bool     Switch_H4 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà øåñòè÷àñîâûõ áàðîâ äëÿ ÷åòâ¸ðòîãî äâóõ÷àñîâîãî áàðà.
  datetime iTimeH1;          // Âðåìÿ îòêðûòèÿ ÷àñîâîãî áàðà.
  datetime iTimeH1_1;        // Âðåìÿ îòêðûòèÿ ñëåäóþùåãî ÷àñîâîãî áàðà.
  int      i, j, k, l;
  int      iBarsH1 = iBars (symbol, PERIOD_H1); // Êîëè÷åñòâî áàðîâ â ÒÔ H1 òåêóùåãî èíñòðóìåíòà.
  int      iBarsH2 = iBars_H2 (symbol);         // Êîëè÷åñòâî áàðîâ â ÒÔ H2.
  int      FirstH1;                             // Íîìåð ïåðâîãî ÷àñà â 2-õ ÷àñîâîì áàðå.
  int      ShiftH2;                             // Òåêóùèé íîìåð áàðà ÒÔ H2.
  // Ìàññèâû.
  bool     ArSwitch[12]; // Âûêëþ÷àòåëè ñ÷¸ò÷èêà øåñòè÷àñîâûõ áàðîâ.
  //----
  ArrayInitialize (ArSwitch, true);
  //----
  if (0 > shift || shift >= iBarsH2) return (0); // Âîçâðàùàåì íîëü â ñëó÷àå îøèáêè.
  else                                           // Åñëè íîìåð áàðà íàõîäèòñÿ â ïðåäåëàõ èñòîðèè, èùåì åãî.
   {
    for (i = 0, ShiftH2 = -1; i < iBarsH1; i++)  // Öèêë ïî íîìåðàì ìåñÿ÷íûõ áàðîâ.
     {
      iTimeH1 = iTime (symbol, PERIOD_H1, i);    // Âðåìÿ îòêðûòèÿ ÷àñîâîãî áàðà.
      // Íà ïåðâîé èòåðàöèè íå ïðîâåðÿì ñóòîê. Åñëè ñìåíèëèñü ñóòêè, èíèöèàëèçèðóåì ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ. Ìîæåò ïðèãîäèòüñÿ ïðè îòñóòñòâèè áàðîâ âíóòðè äíÿ è íåñêîëüêèõ äíåé ïîäðÿä (äûðû â èñòîðèè).
      if (i > 0) if (MathMod (TimeDay (iTimeH1), TimeDay (iTime (symbol, PERIOD_H1, i - 1))) != 0) ArrayInitialize (ArSwitch, true);
      // Ïåðåêëþ÷àåì ïî ÷àñàì ñóòîê.
      switch (TimeHour (iTimeH1))
       {//----×àñîâûå áàðû 12-ãî äâóõ÷àñîâîãî áàðà.-----------------------------------------------------------------------------------------
        case 23:
        case 22:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 11) ArSwitch[j] = true;
          if (ArSwitch[11] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;              // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstH1 = 22;           // Íîìåð ïåðâîãî ÷àñà â 2-õ ÷àñîâîì áàðå.
            ArSwitch[11] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                  // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;            // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 11-ãî äâóõ÷àñîâîãî áàðà.-----------------------------------------------------------------------------------------
        case 21:
        case 20:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 10) ArSwitch[j] = true;
          if (ArSwitch[10] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;              // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstH1 = 20;           // Íîìåð ïåðâîãî ÷àñà â 2-õ ÷àñîâîì áàðå.
            ArSwitch[10] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                  // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;            // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 10-ãî äâóõ÷àñîâîãî áàðà.-----------------------------------------------------------------------------------------
        case 19:
        case 18:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 9) ArSwitch[j] = true;
          if (ArSwitch[9] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstH1 = 18;          // Íîìåð ïåðâîãî ÷àñà â 2-õ ÷àñîâîì áàðå.
            ArSwitch[9] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 9-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 17:
        case 16:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 8) ArSwitch[j] = true;
          if (ArSwitch[8] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstH1 = 16;          // Íîìåð ïåðâîãî ÷àñà â 2-õ ÷àñîâîì áàðå.
            ArSwitch[8] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 8-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 15:
        case 14:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 7) ArSwitch[j] = true;
          if (ArSwitch[7] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstH1 = 14;          // Íîìåð ïåðâîãî ÷àñà â 2-õ ÷àñîâîì áàðå.
            ArSwitch[7] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 7-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 13:
        case 12:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 6) ArSwitch[j] = true;
          if (ArSwitch[6] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstH1 = 12;          // Íîìåð ïåðâîãî ÷àñà â 2-õ ÷àñîâîì áàðå.
            ArSwitch[6] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 6-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 11:
        case 10:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 5) ArSwitch[j] = true;
          if (ArSwitch[5] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstH1 = 10;          // Íîìåð ïåðâîãî ÷àñà â 2-õ ÷àñîâîì áàðå.
            ArSwitch[5] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 5-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case  9:
        case  8:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 4) ArSwitch[j] = true;
          if (ArSwitch[4] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstH1 = 8;           // Íîìåð ïåðâîãî ÷àñà â 2-õ ÷àñîâîì áàðå.
            ArSwitch[4] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 4-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case  7:
        case  6:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 3) ArSwitch[j] = true;
          if (ArSwitch[3] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstH1 = 6;           // Íîìåð ïåðâîãî ÷àñà â 2-õ ÷àñîâîì áàðå.
            ArSwitch[3] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 3-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 5:
        case 4:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 2) ArSwitch[j] = true;
          if (ArSwitch[2] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstH1 = 4;           // Íîìåð ïåðâîãî ÷àñà â 2-õ ÷àñîâîì áàðå.
            ArSwitch[2] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 2-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 3:
        case 2:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 1) ArSwitch[j] = true;
          if (ArSwitch[1] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstH1 = 2;           // Íîìåð ïåðâîãî ÷àñà â 2-õ ÷àñîâîì áàðå.
            ArSwitch[1] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 1-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 1:
        case 0:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 0) ArSwitch[j] = true;
          if (ArSwitch[0] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstH1 = 0;           // Íîìåð ïåðâîãî ÷àñà â 2-õ ÷àñîâîì áàðå.
            ArSwitch[0] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         } 
       }
      //------------------------------------------------------------------------------------------------------------------------------------
      if (shift == ShiftH2) // Åñëè íàøëè íóæíûé áàð.
       {
        iTimeH1_1 = iTime (symbol, PERIOD_H1, i + 1); // Âðåìÿ îòêðûòèÿ ñëåäóþùåãî ÷àñîâîãî áàðà.
        // Åñëè ñëåäóþùèé áàð íàõîäèòñÿ â äðóãèõ ñóòêàõ èëè ìåñÿöå. Äëÿ ïåðâîãî áàðà ïåðâîãî 2-õ ÷àñîâîãî áàðà â ñóòêè îñîáûå óñëîâèÿ ïðîâåðêè íà÷àëà.
        if (FirstH1 == 0) {if (TimeHour (iTimeH1_1) > 1 || TimeDay (iTimeH1) != TimeDay (iTimeH1_1)) return (iHigh (symbol, PERIOD_H1, i));}
        else {if (TimeHour (iTimeH1_1) < FirstH1 || TimeDay (iTimeH1) != TimeDay (iTimeH1_1)) return (iHigh (symbol, PERIOD_H1, i));}
        // Åñëè ñëåäóþùèé áàð H1 íàõîäèòñÿ â òåêóùåì áàðå H2.
        return (MathMax (iHigh (symbol, PERIOD_H1, i), iHigh (symbol, PERIOD_H1, i + 1)));
       }
     }
   }
 }
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
// 6. Ìèíèìàëüíàÿ öåíà âûáðàííîãî áàðà â ÒÔ H2.
double iLow_H2 (string symbol, // Ââàëþòíàÿ ïàðà.
                int    shift)  // Íîìåð áàðà.
 {
  bool     Switch_H1 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà øåñòè÷àñîâûõ áàðîâ äëÿ ïåðâîãî äâóõ÷àñîâîãî áàðà.
  bool     Switch_H2 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà øåñòè÷àñîâûõ áàðîâ äëÿ âòîðîãî äâóõ÷àñîâîãî áàðà.
  bool     Switch_H3 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà øåñòè÷àñîâûõ áàðîâ äëÿ òðåòüîãî äâóõ÷àñîâîãî áàðà.
  bool     Switch_H4 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà øåñòè÷àñîâûõ áàðîâ äëÿ ÷åòâ¸ðòîãî äâóõ÷àñîâîãî áàðà.
  datetime iTimeH1;          // Âðåìÿ îòêðûòèÿ ÷àñîâîãî áàðà.
  datetime iTimeH1_1;        // Âðåìÿ îòêðûòèÿ ñëåäóþùåãî ÷àñîâîãî áàðà.
  int      i, j, k, l;
  int      iBarsH1 = iBars (symbol, PERIOD_H1); // Êîëè÷åñòâî áàðîâ â ÒÔ H1 òåêóùåãî èíñòðóìåíòà.
  int      iBarsH2 = iBars_H2 (symbol);         // Êîëè÷åñòâî áàðîâ â ÒÔ H2.
  int      FirstH1;                             // Íîìåð ïåðâîãî ÷àñà â 2-õ ÷àñîâîì áàðå.
  int      ShiftH2;                             // Òåêóùèé íîìåð áàðà ÒÔ H2.
  // Ìàññèâû.
  bool     ArSwitch[12]; // Âûêëþ÷àòåëè ñ÷¸ò÷èêà øåñòè÷àñîâûõ áàðîâ.
  //----
  ArrayInitialize (ArSwitch, true);
  //----
  if (0 > shift || shift >= iBarsH2) return (0); // Âîçâðàùàåì íîëü â ñëó÷àå îøèáêè.
  else                                           // Åñëè íîìåð áàðà íàõîäèòñÿ â ïðåäåëàõ èñòîðèè, èùåì åãî.
   {
    for (i = 0, ShiftH2 = -1; i < iBarsH1; i++)  // Öèêë ïî íîìåðàì ìåñÿ÷íûõ áàðîâ.
     {
      iTimeH1 = iTime (symbol, PERIOD_H1, i);    // Âðåìÿ îòêðûòèÿ ÷àñîâîãî áàðà.
      // Íà ïåðâîé èòåðàöèè íå ïðîâåðÿì ñóòîê. Åñëè ñìåíèëèñü ñóòêè, èíèöèàëèçèðóåì ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ. Ìîæåò ïðèãîäèòüñÿ ïðè îòñóòñòâèè áàðîâ âíóòðè äíÿ è íåñêîëüêèõ äíåé ïîäðÿä (äûðû â èñòîðèè).
      if (i > 0) if (MathMod (TimeDay (iTimeH1), TimeDay (iTime (symbol, PERIOD_H1, i - 1))) != 0) ArrayInitialize (ArSwitch, true);
      // Ïåðåêëþ÷àåì ïî ÷àñàì ñóòîê.
      switch (TimeHour (iTimeH1))
       {//----×àñîâûå áàðû 12-ãî äâóõ÷àñîâîãî áàðà.-----------------------------------------------------------------------------------------
        case 23:
        case 22:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 11) ArSwitch[j] = true;
          if (ArSwitch[11] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;              // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstH1 = 22;           // Íîìåð ïåðâîãî ÷àñà â 2-õ ÷àñîâîì áàðå.
            ArSwitch[11] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                  // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;            // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 11-ãî äâóõ÷àñîâîãî áàðà.-----------------------------------------------------------------------------------------
        case 21:
        case 20:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 10) ArSwitch[j] = true;
          if (ArSwitch[10] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;              // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstH1 = 20;           // Íîìåð ïåðâîãî ÷àñà â 2-õ ÷àñîâîì áàðå.
            ArSwitch[10] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                  // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;            // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 10-ãî äâóõ÷àñîâîãî áàðà.-----------------------------------------------------------------------------------------
        case 19:
        case 18:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 9) ArSwitch[j] = true;
          if (ArSwitch[9] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstH1 = 18;          // Íîìåð ïåðâîãî ÷àñà â 2-õ ÷àñîâîì áàðå.
            ArSwitch[9] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 9-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 17:
        case 16:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 8) ArSwitch[j] = true;
          if (ArSwitch[8] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstH1 = 16;          // Íîìåð ïåðâîãî ÷àñà â 2-õ ÷àñîâîì áàðå.
            ArSwitch[8] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 8-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 15:
        case 14:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 7) ArSwitch[j] = true;
          if (ArSwitch[7] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstH1 = 14;          // Íîìåð ïåðâîãî ÷àñà â 2-õ ÷àñîâîì áàðå.
            ArSwitch[7] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 7-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 13:
        case 12:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 6) ArSwitch[j] = true;
          if (ArSwitch[6] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstH1 = 12;          // Íîìåð ïåðâîãî ÷àñà â 2-õ ÷àñîâîì áàðå.
            ArSwitch[6] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 6-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 11:
        case 10:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 5) ArSwitch[j] = true;
          if (ArSwitch[5] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstH1 = 10;          // Íîìåð ïåðâîãî ÷àñà â 2-õ ÷àñîâîì áàðå.
            ArSwitch[5] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 5-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case  9:
        case  8:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 4) ArSwitch[j] = true;
          if (ArSwitch[4] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstH1 = 8;           // Íîìåð ïåðâîãî ÷àñà â 2-õ ÷àñîâîì áàðå.
            ArSwitch[4] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 4-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case  7:
        case  6:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 3) ArSwitch[j] = true;
          if (ArSwitch[3] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstH1 = 6;           // Íîìåð ïåðâîãî ÷àñà â 2-õ ÷àñîâîì áàðå.
            ArSwitch[3] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 3-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 5:
        case 4:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 2) ArSwitch[j] = true;
          if (ArSwitch[2] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstH1 = 4;           // Íîìåð ïåðâîãî ÷àñà â 2-õ ÷àñîâîì áàðå.
            ArSwitch[2] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 2-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 3:
        case 2:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 1) ArSwitch[j] = true;
          if (ArSwitch[1] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstH1 = 2;           // Íîìåð ïåðâîãî ÷àñà â 2-õ ÷àñîâîì áàðå.
            ArSwitch[1] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 1-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 1:
        case 0:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 0) ArSwitch[j] = true;
          if (ArSwitch[0] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstH1 = 0;           // Íîìåð ïåðâîãî ÷àñà â 2-õ ÷àñîâîì áàðå.
            ArSwitch[0] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         } 
       }
      //-----------------------------------------------------------------------------------------------------------------------------------
      if (shift == ShiftH2) // Åñëè íàøëè íóæíûé áàð.
       {
        iTimeH1_1 = iTime (symbol, PERIOD_H1, i + 1); // Âðåìÿ îòêðûòèÿ ñëåäóþùåãî ÷àñîâîãî áàðà.
        // Åñëè ñëåäóþùèé áàð íàõîäèòñÿ â äðóãèõ ñóòêàõ èëè ìåñÿöå. Äëÿ ïåðâîãî áàðà ïåðâîãî 2-õ ÷àñîâîãî áàðà â ñóòêè îñîáûå óñëîâèÿ ïðîâåðêè íà÷àëà.
        if (FirstH1 == 0) {if (TimeHour (iTimeH1_1) > 1 || TimeDay (iTimeH1) != TimeDay (iTimeH1_1)) return (iHigh (symbol, PERIOD_H1, i));}
        else {if (TimeHour (iTimeH1_1) < FirstH1 || TimeDay (iTimeH1) != TimeDay (iTimeH1_1)) return (iHigh (symbol, PERIOD_H1, i));}
        // Åñëè ñëåäóþùèé áàð H1 íàõîäèòñÿ â òåêóùåì áàðå H2.
        return (MathMin (iLow (symbol, PERIOD_H1, i), iLow (symbol, PERIOD_H1, i + 1)));
       }
     }
   }
 }
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
// 7. Öåíà çàêðûòèÿ âûáðàííîãî áàðà â ÒÔ H2.
double iClose_H2 (string symbol, // Ñèìâîëüíîå èìÿ èíñòðóìåíòà.
                  int    shift)  // Íîìåð áàðà.
 {
  datetime iTimeH1;                             // Âðåìÿ îòêðûòèÿ ÷àñîâîãî áàðà.
  int      i, j;
  int      iBarsH1 = iBars (symbol, PERIOD_H1); // Êîëè÷åñòâî áàðîâ â ÒÔ H1 òåêóùåãî èíñòðóìåíòà.
  int      iBarsH2 = iBars_H2 (symbol);         // Êîëè÷åñòâî áàðîâ èëè íîìåð áàðà â ÒÔ H2.
  // Ìàññèâû.
  bool     ArSwitch[12]; // Âûêëþ÷àòåëè ñ÷¸ò÷èêà øåñòè÷àñîâûõ áàðîâ.
  //----
  ArrayInitialize (ArSwitch, true);
  // Ïðîâåðêà íà íåêîððåêòíîå çíà÷åíèå íàìåðà áàðà.
  if (0 > shift || shift >= iBarsH2) return (0); // Âîçâðàùàåì íîëü â ñëó÷àå îøèáêè.
  else                                           // Åñëè íîìåð áàðà íàõîäèòñÿ â ïðåäåëàõ èñòîðèè, èùåì åãî.
   {
    iBarsH1 = iBars (symbol, PERIOD_H1); // Êîëè÷åñòâî áàðîâ â ÒÔ H1 òåêóùåãî èíñòðóìåíòà.
    for (i = 0, iBarsH2 = -1; i < iBarsH1; i++)
     {
      iTimeH1 = iTime (symbol, PERIOD_H1, i); // Âðåìÿ îòêðûòèÿ ÷àñîâîãî áàðà.
      // Íà ïåðâîé èòåðàöèè íå ïðîâåðÿì ñóòîê. Åñëè ñìåíèëèñü ñóòêè, èíèöèàëèçèðóåì ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ. Ìîæåò ïðèãîäèòüñÿ ïðè îòñóòñòâèè áàðîâ âíóòðè äíÿ è íåñêîëüêèõ äíåé ïîäðÿä (äûðû â èñòîðèè).
      if (i > 0) if (MathMod (TimeDay (iTimeH1), TimeDay (iTime (symbol, PERIOD_H1, i - 1))) != 0) ArrayInitialize (ArSwitch, true);
      // Ïåðåêëþ÷àåì ïî ÷àñàì ñóòîê.
      switch (TimeHour (iTimeH1))
       {//----×àñîâûå áàðû 12-ãî äâóõ÷àñîâîãî áàðà.-----------------------------------------------------------------------------------------
        case 23:
        case 22:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 11) ArSwitch[j] = true;
          if (ArSwitch[11] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            iBarsH2++;              // Ñ÷èòàåì êâàðòàëüíûé áàð.
            ArSwitch[11] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                  // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;            // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 11-ãî äâóõ÷àñîâîãî áàðà.-----------------------------------------------------------------------------------------
        case 21:
        case 20:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 10) ArSwitch[j] = true;
          if (ArSwitch[10] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            iBarsH2++;              // Ñ÷èòàåì êâàðòàëüíûé áàð.
            ArSwitch[10] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                  // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;            // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 10-ãî äâóõ÷àñîâîãî áàðà.-----------------------------------------------------------------------------------------
        case 19:
        case 18:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 9) ArSwitch[j] = true;
          if (ArSwitch[9] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            iBarsH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            ArSwitch[9] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 9-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 17:
        case 16:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 8) ArSwitch[j] = true;
          if (ArSwitch[8] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            iBarsH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            ArSwitch[8] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 8-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 15:
        case 14:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 7) ArSwitch[j] = true;
          if (ArSwitch[7] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            iBarsH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            ArSwitch[7] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 7-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 13:
        case 12:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 6) ArSwitch[j] = true;
          if (ArSwitch[6] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            iBarsH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            ArSwitch[6] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 6-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 11:
        case 10:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 5) ArSwitch[j] = true;
          if (ArSwitch[5] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            iBarsH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            ArSwitch[5] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 5-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case  9:
        case  8:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 4) ArSwitch[j] = true;
          if (ArSwitch[4] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            iBarsH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            ArSwitch[4] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 4-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case  7:
        case  6:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 3) ArSwitch[j] = true;
          if (ArSwitch[3] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            iBarsH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            ArSwitch[3] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 3-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 5:
        case 4:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 2) ArSwitch[j] = true;
          if (ArSwitch[2] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            iBarsH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            ArSwitch[2] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 2-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 3:
        case 2:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 1) ArSwitch[j] = true;
          if (ArSwitch[1] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            iBarsH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            ArSwitch[1] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----×àñîâûå áàðû 1-ãî äâóõ÷àñîâîãî áàðà.------------------------------------------------------------------------------------------
        case 1:
        case 0:
         {// Èíèöèàëèçèðóåì âêëþ÷àòåëè ñ÷¸ò÷èêà áàðîâ H2, êðîìå òåêóùåãî.
          for (j = 0; j < 12; j++) if (j != 0) ArSwitch[j] = true;
          if (ArSwitch[0] == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            iBarsH2++;             // Ñ÷èòàåì êâàðòàëüíûé áàð.
            ArSwitch[0] = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                 // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;           // Ñ÷¸ò÷èê øåñòè÷àñîâûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         } 
       }
      //------------------------------------------------------------------------------------------------------------------------------------
      if (shift == iBarsH2) return (iClose (symbol, PERIOD_H1, i)); // Åñëè íàøëè íóæíûé áàð. Âîçâðàùàåì âðåìÿ çàêðûòèÿ ÷àñîâîãî áàðà.
     }
   }
 }
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
// 8. Âîçâðàùàåò òåêóùèé íîìåð øåñòè÷àñîâîãî áàðà â ñóòêàõ ïîñëåäíåãî èçâåñòíîãî ñåðâåðíîãî âðåìåíè.
int Hour2()
 {
  switch (Hour())
   {
    case  0:
    case  1: return  (1);
    case  2:
    case  3: return  (2);
    case  4:
    case  5: return  (3);
    case  6:
    case  7: return  (4);
    case  8:
    case  9: return  (5);
    case 10:
    case 11: return  (6);
    case 12:
    case 13: return  (7);
    case 14:
    case 15: return  (8);
    case 16:
    case 17: return  (9);
    case 18:
    case 19: return (10);
    case 20:
    case 21: return (11);
    case 22:
    case 23: return (12);
   }
 }
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
// 8. Âîçâðàùàåò òåêóùèé íîìåð äâóõ÷àñîâîãî áàðà â ñóòêàõ ïîñëåäíåãî èçâåñòíîãî ñåðâåðíîãî âðåìåíè.
int TimeHour2 (datetime time)
 {
  switch (TimeHour (time)) // Äàòà, ïðåäñòàâëåííàÿ â âèäå êîëè÷åñòâà ñåêóíä, ïðîøåäøèõ ïîñëå 00:00 1 ÿíâàðÿ 1970 ãîäà.
   {
    case  0:
    case  1: return  (1);
    case  2:
    case  3: return  (2);
    case  4:
    case  5: return  (3);
    case  6:
    case  7: return  (4);
    case  8:
    case  9: return  (5);
    case 10:
    case 11: return  (6);
    case 12:
    case 13: return  (7);
    case 14:
    case 15: return  (8);
    case 16:
    case 17: return  (9);
    case 18:
    case 19: return (10);
    case 20:
    case 21: return (11);
    case 22:
    case 23: return (12);
   }
 }
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ





Sample





Analysis



Market Information Used:



Indicator Curves created:


Indicators Used:



Custom Indicators Used:

Order Management characteristics:

Other Features: