ZH_StandardFunctionsTfQ1.lib





//+-------------------------------------------------------------------------------------------------------------------------------+
//|                                                                                               ZH_StandardFunctionsTfQ1.lib.mq4|
//|                                                                                               Copyright © Zhunko              |
//|14.09.2009 - 12.10.2009                                                                        ÌF ZHUNKO vadim@zhunko.ru       |
//+-------------------------------------------------------------------------------------------------------------------------------+
//| ÍÀÁÎÐ ÑÒÀÍÄÀÐÒÍÛÕ ÔÓÍÊÖÈÉ ÄËß ÒÔ Q1.                                                                                          |
//+-------------------------------------------------------------------------------------------------------------------------------+
//|1.Êîëè÷åñòâî áàðîâ â ÒÔ Q1.                                                                                                    |
//|  int iBars_Q1 (string symbol); // Ñèìâîëüíîå èìÿ èíñòðóìåíòà.                                                                 |
//+-------------------------------------------------------------------------------------------------------------------------------+
//|2.Íîìåð áàðà ïî âðåìåíè â ÒÔ Q1.                                                                                               |
//|  int iBarShift_Q1 (string   symbol, // Ñèìâîëüíîå èìÿ èíñòðóìåíòà.                                                            |
//|                    datetime time,   // Çíà÷åíèå âðåìåíè äëÿ ïîèñêà.                                                           |
//|                    bool     exact)  // Âîçâðàùàåìîå çíà÷åíèå åñëè áàð íå íàéäåí                                               |
//|                                     // (FALSE - iBarShift âîçâðàùàåò áëèæàéøèé/TRUE - iBarShift âîçâðàùàåò -1).               |
//+-------------------------------------------------------------------------------------------------------------------------------+
//|3.Âðåìÿ îòêðûòèÿ ïî íîìåðó áàðà â ÒÔ Q1.                                                                                       |
//|  datetime iTime_Q1 (string symbol, // Ñèìâîëüíîå èìÿ èíñòðóìåíòà                                                              |
//|                     int    shift)  // Íîìåð áàðà.                                                                             |
//+-------------------------------------------------------------------------------------------------------------------------------+
//|4.Öåíà îòêðûòèÿ âûáðàííîãî áàðà â ÒÔ Q1.                                                                                       |
//|  double iOpen_Q1 (string symbol, // Ñèìâîëüíîå èìÿ èíñòðóìåíòà.                                                               |
//|                   int    shift)  // Íîìåð áàðà.                                                                               |
//+-------------------------------------------------------------------------------------------------------------------------------+
//|5.Ìàêñèìàëüíàÿ öåíà âûáðàííîãî áàðà â ÒÔ Q1.                                                                                   |
//|  double iHigh_Q1 (string symbol, // Ñèìâîëüíîå èìÿ èíñòðóìåíòà.                                                               |
//|                   int    shift)  // Íîìåð áàðà.                                                                               |
//+-------------------------------------------------------------------------------------------------------------------------------+
//|6.Ìèíèìàëüíàÿ öåíà âûáðàííîãî áàðà â ÒÔ Q1.                                                                                    |
//|  double iLow_Q1 (string symbol, // Ââàëþòíàÿ ïàðà.                                                                            |
//|                  int    shift)  // Íîìåð áàðà.                                                                                |
//+-------------------------------------------------------------------------------------------------------------------------------+
//|7.Öåíà çàêðûòèÿ âûáðàííîãî áàðà â ÒÔ Q1.                                                                                       |
//|  double iClose_Q1 (string symbol, // Ñèìâîëüíîå èìÿ èíñòðóìåíòà.                                                              |
//|                    int    shift)  // Íîìåð áàðà.                                                                              |
//+-------------------------------------------------------------------------------------------------------------------------------+
//|8. Âîçâðàùàåò òåêóùèé íîìåð êâàðòàëüíîãî áàðà â ãîäó.                                                                          |
//|   int Quarter()                                                                                                               |
//+-------------------------------------------------------------------------------------------------------------------------------+
//|9. Âîçâðàùàåò íîìåð êâàðòàëà äëÿ óêàçàííîãî âðåìåíè.                                                                           |
//|   int TimeQuarter (datetime time) // Äàòà, ïðåäñòàâëåííàÿ â âèäå êîëè÷åñòâà ñåêóíä, ïðîøåäøèõ ïîñëå 00:00 1 ÿíâàðÿ 1970 ãîäà. |
//+-------------------------------------------------------------------------------------------------------------------------------+
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
#property copyright "Copyright © 2006 Zhunko"
#property link      "vadim@zhunko.ru"
#property library
//----Ìàññèâû.-----------------------------------------------------------------------------------------------------------------------------
//        Íå âèñîêîñíûé ãîä:   ßíâàðü   Ôåâðàëü  Ìàðò     Àïðåëü   Ìàé      Èþíü     Èþëü     Àâãóñò   Ñåíòÿáðü Îêòÿáðü  Íîÿáðü   Äåêàáðü
int ArSecondsInMonth[2][12] = {2678400, 2419200, 2678400, 2592000, 2678400, 2592000, 2678400, 2678400, 2592000, 2678400, 2592000, 2678400,
//        Âèñîêîñíûé ãîä:      ßíâàðü   Ôåâðàëü  Ìàðò     Àïðåëü   Ìàé      Èþíü     Èþëü     Àâãóñò   Ñåíòÿáðü Îêòÿáðü  Íîÿáðü   Äåêàáðü
                               2678400, 2505600, 2678400, 2592000, 2678400, 2592000, 2678400, 2678400, 2592000, 2678400, 2592000, 2678400};
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
// 1. Êîëè÷åñòâî áàðîâ â ÒÔ Q1.
int iBars_Q1 (string symbol) // Ñèìâîëüíîå èìÿ èíñòðóìåíòà.
 {
  bool     Switch_Q1 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà êâàðòàëüíûõ áàðîâ äëÿ ïåðâîãî êâàðòàëà.
  bool     Switch_Q2 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà êâàðòàëüíûõ áàðîâ äëÿ âòîðîãî êâàðòàëà.
  bool     Switch_Q3 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà êâàðòàëüíûõ áàðîâ äëÿ òðåòüåãî êâàðòàëà.
  bool     Switch_Q4 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà êâàðòàëüíûõ áàðîâ äëÿ ÷åòâ¸ðòîãî êâàðòàëà.
  datetime iTimeMN1;         // Âðåìÿ îòêðûòèÿ ìåñÿ÷íîãî áàðà.
  int      i;
  int      iBarsMN1;         // Êîëè÷åñòâî áàðîâ â ÒÔ MN1 òåêóùåãî èíñòðóìåíòà.
  int      iBarsQ1;          // Êîëè÷åñòâî áàðîâ â ÒÔ Q1.
  //----
  iBarsMN1 = iBars (symbol, PERIOD_MN1); // Êîëè÷åñòâî áàðîâ â ÒÔ MN1 òåêóùåãî èíñòðóìåíòà.
  for (i = 0, iBarsQ1 = 0; i < iBarsMN1; i++)
   {
    iTimeMN1 = iTime (symbol, PERIOD_MN1, i); // Âðåìÿ îòêðûòèÿ ìåñÿ÷íîãî áàðà.
    if (i > 0) // Íà ïåðâîé èòåðàöèè íå ïðîâåðÿì ñìåíó ãîäà.
     {// Åñëè ñìåíèëñÿ ãîä, èíèöèàëèçèðóåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ âî âñåõ êâàðòàëàõ. Ìîæåò ïðèãîäèòüñÿ ïðè îòñóòñòâèè áàðîâ âíóòðè ãîäà è íåñêîëüêèõ ëåò ïîäðÿä (äûðû â èñòîðèè).
      if (MathMod (TimeYear (iTimeMN1), TimeYear (iTime (symbol, PERIOD_MN1, i - 1))) != 0)
       {
        Switch_Q1 = true; // Èíèöèàëèçèðóåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ ïåðâîãî êâàðòàëà.
        Switch_Q2 = true; // Èíèöèàëèçèðóåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ âòîðîãî êâàðòàëà.
        Switch_Q3 = true; // Èíèöèàëèçèðóåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ òðåòüåãî êâàðòàëà.
        Switch_Q4 = true; // Èíèöèàëèçèðóåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ ÷åòâ¸ðòîãî êâàðòàëà.
       }
     }
    // Ïåðåêëþ÷àåì ïî íîìåðàì ìåñÿöåâ.
    switch (TimeMonth (iTimeMN1))
     {//----Ìåñÿöà 4-ãî êâàðòàëà.-----------------------------------------------------------------------------------------
      case 12:
      case 11:
      case 10:
       {
        Switch_Q3 = true;      // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 3-ãî êâàðòàëà.
        Switch_Q2 = true;      // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 2-ãî êâàðòàëà.
        Switch_Q1 = true;      // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 1-ãî êâàðòàëà.
        if (Switch_Q4 == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
         {
          iBarsQ1++;           // Ñ÷èòàåì êâàðòàëüíûé áàð.
          Switch_Q4 = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
          break;               // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
         }
        else continue;         // Ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
       }
      //----Ìåñÿöà 3-ãî êâàðòàëà.-----------------------------------------------------------------------------------------
      case 9:
      case 8:
      case 7:
       {
        Switch_Q4 = true;      // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 4-ãî êâàðòàëà.
        Switch_Q2 = true;      // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 2-ãî êâàðòàëà.
        Switch_Q1 = true;      // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 1-ãî êâàðòàëà.
        if (Switch_Q3 == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
         {
          iBarsQ1++;           // Ñ÷èòàåì êâàðòàëüíûé áàð.
          Switch_Q3 = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
          break;               // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
         }
        else continue;         // Ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
       }
      //----Ìåñÿöà 2-ãî êâàðòàëà.-----------------------------------------------------------------------------------------
      case 6:
      case 5:
      case 4:
       {
        Switch_Q4 = true;      // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 4-ãî êâàðòàëà.
        Switch_Q3 = true;      // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 3-ãî êâàðòàëà.
        Switch_Q1 = true;      // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 1-ãî êâàðòàëà.
        if (Switch_Q2 == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
         {
          iBarsQ1++;           // Ñ÷èòàåì êâàðòàëüíûé áàð.
          Switch_Q2 = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
          break;               // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
         }
        else continue;         // Ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
       }
      //----Ìåñÿöà 1-ãî êâàðòàëà.-----------------------------------------------------------------------------------------
      case 3:
      case 2:
      case 1:
       {
        Switch_Q4 = true;      // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 4-ãî êâàðòàëà.
        Switch_Q3 = true;      // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 3-ãî êâàðòàëà.
        Switch_Q2 = true;      // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 2-ãî êâàðòàëà.
        if (Switch_Q1 == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
         {
          iBarsQ1++;           // Ñ÷èòàåì êâàðòàëüíûé áàð.
          Switch_Q1 = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
          break;               // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
         }
        else continue;         // Ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
       }
     }
   }
  return (iBarsQ1);
 }
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
// 2. Íîìåð áàðà ïî âðåìåíè â ÒÔ Q1.
int iBarShift_Q1 (string   symbol, // Ñèìâîëüíîå èìÿ èíñòðóìåíòà.
                  datetime time,   // Çíà÷åíèå âðåìåíè äëÿ ïîèñêà.
                  bool     exact)  // Âîçâðàùàåìîå çíà÷åíèå åñëè áàð íå íàéäåí (FALSE - iBarShift âîçâðàùàåò áëèæàéøèé/TRUE - iBarShift âîçâðàùàåò -1).
 {
  bool     Switch_Q1 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà êâàðòàëüíûõ áàðîâ äëÿ ïåðâîãî êâàðòàëà.
  bool     Switch_Q2 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà êâàðòàëüíûõ áàðîâ äëÿ âòîðîãî êâàðòàëà.
  bool     Switch_Q3 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà êâàðòàëüíûõ áàðîâ äëÿ òðåòüåãî êâàðòàëà.
  bool     Switch_Q4 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà êâàðòàëüíûõ áàðîâ äëÿ ÷åòâ¸ðòîãî êâàðòàëà.
  datetime TimeFirst_Q1;     // Âðåìÿ çàêðûòèÿ ïåðâãî êâàðòàëüíîãî áàðà â èñòîðèè. Êâàðòàë íà÷àëà èñòîðèè ïàðû.
  datetime TimeLast_Q1;      // Âðåìÿ îòêðûòèÿ ïîñëåäíåãî êâàðòàëüíîãî áàðà â èñòîðèè.
  datetime iTimeMN1;         // Âðåìÿ îòêðûòèÿ òåêóùåãî áàðà íà MN1.
  datetime iTimeQ1_0;        // Âðåìÿ îòêðûòèÿ òåêóùåãî áàðà íà Q1.
  datetime iTimeQ1_1;        // Âðåìÿ îòêðûòèÿ ïðåäûäóùåãî áàðà íà Q1.
  int      AmountBar;        // Êîëè÷åñòâî äîáàâëÿåìûõ áàðîâ â ïåðâîì èëè ïîñëåäíåì êâàðòàëüíûõ áàðàõ.
  int      i, j;
  int      ShiftQ1 = 0;      // Âîçâðàùàåìîå çíà÷åíèå ñìåùåíèÿ áàðà â ÒÔ Q1.
  int      iBarsMN1;         // Êîëè÷åñòâî áàðîâ â ÒÔ MN1 òåêóùåãî èíñòðóìåíòà.
  int      LeapYear;         // Âèñîêîñíîñòü ãîäà âûáðàííîãî âðåìåíè.
  int      NumberMonth;      // Íîìåð ìåñÿöà.
  //====Ïîäãîòîâêà äàííûõ.================================================================================================================================================================================================================
  iBarsMN1 = iBars (symbol, PERIOD_MN1);                           // Êîëè÷åñòâî áàðîâ â ÒÔ MN1 òåêóùåãî èíñòðóìåíòà.
  //====Ðàñ÷¸ò âðåìåíè çàêðûòèÿ ïåðâîãî êâàðòàëüíîãî áàðà â èñòîðèè. Êâàðòàë íà÷àëà èñòîðèè ïàðû.==========================================================================================================================================
  TimeFirst_Q1 = iTime (symbol, PERIOD_MN1, iBarsMN1 - 1);         // Âðåìÿ îòêðûòèÿ ïåðâîãî â èñòîðèè ìåñÿ÷íîãî áàðà.
  if (MathMod (TimeYear (TimeFirst_Q1), 4) == 0) LeapYear = true;  // Åñëè ãîä âèñîêîñíûé.
  else LeapYear = false;                                           // Åñëè ãîä íå âèñîêîñíûé.
  NumberMonth = TimeMonth (TimeFirst_Q1);                          // Íîìåð ìåñÿöà.
  // Âû÷èñëÿåì êîëè÷åñòâî äîáàâëÿåìûõ áàðîâ â êâàðòàëüíîì áàðå.
  AmountBar = MathMod (NumberMonth, 3);                            // Åñëè áàð ïîñëåäíèé â êâàðòàëå, òî êîëè÷åñòâî äîáàâëÿåìûõ áàðîâ ðàâíî íóëþ.
  if (AmountBar > 0) AmountBar = 3 - AmountBar;                    // Åñëè áàð íå ïîñëåäíèé â êâàðòàëå, ïðîäîëæàåì âû÷èñëÿòü.
  // Ïðîèçâîäèì ïðèáàâëåíèå âðåìåíè.
  for (i = NumberMonth; i <= (NumberMonth + AmountBar); i++) TimeFirst_Q1 += ArSecondsInMonth[LeapYear][i - 1];
  //====Ðàñ÷¸ò âðåìåíè îòêðûòèÿ ïîñëåäíåãî êâàðòàëüíîãî áàðà â èñòîðèè.===================================================================================================================================================================
  TimeLast_Q1 = iTime (symbol, PERIOD_MN1, 0);                     // Âðåìÿ îòêðûòèÿ ïîñëåäíåãî â èñòîðèè ìåñÿ÷íîãî áàðà.
  if (MathMod (TimeYear (TimeLast_Q1), 4) == 0) LeapYear = true;   // Åñëè ãîä âèñîêîñíûé.
  else LeapYear = false;                                           // Åñëè ãîä íå âèñîêîñíûé.
  NumberMonth = TimeMonth (TimeLast_Q1);                           // Íîìåð ìåñÿöà.
  // Âû÷èñëÿåì êîëè÷åñòâî äîáàâëÿåìûõ áàðîâ â êâàðòàëüíîì áàðå.
  AmountBar = MathMod (NumberMonth, 3);                            // Íîìåð ìåñÿ÷íîãî áàðà â êâàðòàëå.
  if (AmountBar == 0) AmountBar = 2;                               // Åñëè áàð ïîñëåäíèé â êâàðòàëå, òî êîëè÷åñòâî äîáàâëÿåìûõ áàðîâ ðàâíî äâóì.
  else AmountBar = AmountBar - 1;                                  // Åñëè áàð íå ïîñëåäíèé â êâàðòàëå, ïðîäîëæàåì âû÷èñëþòü.
  // Ïðîèçâîäèì âû÷èòàíèå âðåìåíè. Íà÷èíàåì ñ ïîñëåäíåãî ìåñÿöà.
  for (i = (NumberMonth - AmountBar); i < NumberMonth; i++) TimeLast_Q1 -= ArSecondsInMonth[LeapYear][i - 1];
  //----Äèàãíîñòèêà.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//  Comment ("TimeFirst_Q1 = ", TimeToStr (TimeFirst_Q1, TIME_DATE|TIME_MINUTES|TIME_SECONDS), "\nLastQuarter = ", TimeToStr (TimeLast_Q1, TIME_DATE|TIME_MINUTES|TIME_SECONDS));
  //======================================================================================================================================================================================================================================
  if (time < TimeFirst_Q1 || time >= TimeLast_Q1)              // Äëÿ ýêîíîìèè âðåìåíè íà öèêëàõ, ïðè âûáðàííîì âðåìåíè ñî çíà÷åíèåì ìåíüøåì âðåìåíè íà÷àëà èñòîðèè èëè áîëüøåì òåêóùåãî êâàðòàëà. 
   {
    if (exact == true) return (-1);                            // Åñëè ïåðåêëþ÷àòåëü ðàçðåøàåò, òî âîçâðàùàåì -1 â ñëó÷àå îòñóòñòâèÿ áàðà.
    else                                                       // Åñëè ïåðåêëþ÷àòåëü çàïðåùàåò, òî âîçâðàùàåì áëèæàéøèé ïî õîäó öèêëà (ïðåäûäóùèé) áàð.
     {
      if (time < TimeFirst_Q1) return (iBars_Q1 (symbol) - 1); // Åñëè çàäàííîå çíà÷åíèå âðåìåíè äëÿ ïîèñêà ìåíüøå âðåìåíè íà÷àëà èñòîðèè, ñ÷èòàåì êîëè÷åñòâî áàðîâ.
      if (time > TimeLast_Q1) return (0);                      // Åñëè çàäàííîå çíà÷åíèå âðåìåíè äëÿ ïîèñêà áîëüøå âðåìåíè êîíöà èñòîðèè, âîçðàùàåì ïîñëåäíèé áàð.
     }
   }
  else                                                               // Åñëè çàäàííîå çíà÷åíèå âðåìåíè ñîîòâåòñòâóåò ñóùåñòâóþùåé èñòîðèè.
   {// Âðåìÿ çàêðûòèÿ íóëåâîãî áàðà ÒÔ Q1.
    iTimeQ1_0 = iTime (symbol, PERIOD_MN1, 0);                       // Âðåìÿ îòêðûòèÿ ïåðâîãî â èñòîðèè ìåñÿ÷íîãî áàðà.
    if (MathMod (TimeYear (TimeFirst_Q1), 4) == 0) LeapYear = true;  // Åñëè ãîä âèñîêîñíûé.
    else LeapYear = false;                                           // Åñëè ãîä íå âèñîêîñíûé.
    NumberMonth = TimeMonth (iTimeQ1_0);                             // Íîìåð ìåñÿöà.
    AmountBar = 3 - MathMod (NumberMonth, 3);                        // Êîëè÷åñòâî äîáàâëÿåìûõ áàðîâ â ïåðâîì êâàðòàëüíîì áàðå.
    // Âðåìÿ çàêðûòèÿ íóëåâîãî áàðà ÒÔ Q1. Ïðîèçâîäèì ïðèáàâëåíèå âðåìåíè.
    for (i = NumberMonth; i <= (NumberMonth + AmountBar); i++) iTimeQ1_0 += ArSecondsInMonth[LeapYear][i - 1];
    // Ðàñ÷¸ò ãîäà íà âèñîêîñíîñòü. Íà÷àëüíûå óñëîâèÿ.
    if (MathMod (TimeYear (TimeLast_Q1), 4) == 0) LeapYear = true;   // Åñëè ãîä âèñîêîñíûé.
    else LeapYear = false;                                           // Åñëè ãîä íå âèñîêîñíûé.
    for (i = 0, ShiftQ1 = -1; i < iBarsMN1; i++) // Öèêë ïî ìåñÿ÷íûì áàðàì. Íà÷àëî ñ íóëåâîãî áàðà.
     {
      iTimeMN1 = iTime (symbol, PERIOD_MN1, i);  // Âðåìÿ îòêðûòèÿ òåêóùåãî ìåñÿ÷íîãî áàðà.
      // Âîçâðàùàåì íîìåð áëèæàéøåãî áàðà â ñëó÷àå îòñóòñòâèÿ áàðà. Åñëè çàäàííîå âðåìÿ áîëüøå âðåìåíè îòêðûòèÿ òåêóùåãî áàðà MN1.
      if (i > 0) // Íà ïåðâîé èòåðàöèè íå ïðîâåðÿì ñìåíó ãîäà.
       {// Åñëè ñìåíèëñÿ ãîä, èíèöèàëèçèðóåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ âî âñåõ êâàðòàëàõ. Ìîæåò ïðèãîäèòüñÿ ïðè îòñóòñòâèè áàðîâ âíóòðè ãîäà è íåñêîëüêèõ ëåò ïîäðÿä (äûðû â èñòîðèè).
        if (MathMod (TimeYear (iTimeMN1), TimeYear (iTime (symbol, PERIOD_MN1, i - 1))) != 0)
         {
          Switch_Q1 = true; // Èíèöèàëèçèðóåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ ïåðâîãî êâàðòàëà.
          Switch_Q2 = true; // Èíèöèàëèçèðóåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ âòîðîãî êâàðòàëà.
          Switch_Q3 = true; // Èíèöèàëèçèðóåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ òðåòüåãî êâàðòàëà.
          Switch_Q4 = true; // Èíèöèàëèçèðóåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ ÷åòâ¸ðòîãî êâàðòàëà.
          // Ðàñ÷¸ò ãîäà íà âèñîêîñíîñòü.
          if (MathMod (TimeYear (iTimeMN1), 4) == 0) LeapYear = true; // Åñëè ãîä âèñîêîñíûé.
          else LeapYear = false;                                      // Åñëè ãîä íå âèñîêîñíûé.
         }
       }
      // Ïåðåêëþ÷àåì ïî íîìåðàì ìåñÿöåâ.
      NumberMonth = TimeMonth (iTimeMN1); // Íîìåð ìåñÿöà.
      switch (NumberMonth)
       {//----Ìåñÿöà 4-ãî êâàðòàëà.--------------------------------------------------------------------------------------
        case 12:
        case 11:
        case 10:
         {
          Switch_Q3 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 3-ãî êâàðòàëà.
          Switch_Q2 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 2-ãî êâàðòàëà.
          Switch_Q1 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 1-ãî êâàðòàëà.
          if (Switch_Q4 == true)  // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftQ1++;            // Ñ÷èòàåì êâàðòàëüíûé áàð.
            Switch_Q4 = false;    // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;          // Ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----Ìåñÿöà 3-ãî êâàðòàëà.--------------------------------------------------------------------------------------
        case 9:
        case 8:
        case 7:
         {
          Switch_Q4 = true;      // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 4-ãî êâàðòàëà.
          Switch_Q2 = true;      // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 2-ãî êâàðòàëà.
          Switch_Q1 = true;      // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 1-ãî êâàðòàëà.
          if (Switch_Q3 == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftQ1++;           // Ñ÷èòàåì êâàðòàëüíûé áàð.
            Switch_Q3 = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;               // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;         // Ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----Ìåñÿöà 2-ãî êâàðòàëà.--------------------------------------------------------------------------------------
        case 6:
        case 5:
        case 4:
         {
          Switch_Q4 = true;      // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 4-ãî êâàðòàëà.
          Switch_Q3 = true;      // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 3-ãî êâàðòàëà.
          Switch_Q1 = true;      // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 1-ãî êâàðòàëà.
          if (Switch_Q2 == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftQ1++;           // Ñ÷èòàåì êâàðòàëüíûé áàð.
            Switch_Q2 = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;               // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;         // Ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----Ìåñÿöà 1-ãî êâàðòàëà.--------------------------------------------------------------------------------------
        case 3:
        case 2:
        case 1:
         {
          Switch_Q4 = true;      // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 4-ãî êâàðòàëà.
          Switch_Q3 = true;      // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 3-ãî êâàðòàëà.
          Switch_Q2 = true;      // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 2-ãî êâàðòàëà.
          if (Switch_Q1 == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftQ1++;           // Ñ÷èòàåì êâàðòàëüíûé áàð.
            Switch_Q1 = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;               // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;         // Ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
       }
      // Åñëè ïåðåêëþ÷àòåëü ðàçðåøàåò, òî ïðîèçâîäèì ïîèñê âðåìåíè â ïðåäïîëàãàåìîé "äûðå" èñòîðèè.
      if (exact == true)
       {// Ðàñ÷¸ò âðåìåíè çàêðûòèÿ òåêóùåãî êâàðòàëüíîãî áàðà.
        iTimeQ1_1 = iTimeMN1;                         // Âðåìÿ îòêðûòèÿ ïîñëåäíåãî â êâàðòàëå ìåñÿ÷íîãî áàðà.
        // Âû÷èñëÿåì êîëè÷åñòâî äîáàâëÿåìûõ áàðîâ â êâàðòàëüíîì áàðå.
        AmountBar = MathMod (NumberMonth, 3);         // Åñëè áàð ïîñëåäíèé â êâàðòàëå, òî êîëè÷åñòâî äîáàâëÿåìûõ áàðîâ ðàâíî íóëþ.
        if (AmountBar > 0) AmountBar = 3 - AmountBar; // Åñëè áàð íå ïîñëåäíèé â êâàðòàëå, ïðîäîëæàåì âû÷èñëþòü.
        // Ïðîèçâîäèì ïðèáàâëåíèå âðåìåíè äëÿ ðàñ÷¸òà âðåìÿ çàêðûòèÿ òåêóùåãî áàðà íà Q1.
        for (j = NumberMonth; j <= (NumberMonth + AmountBar); j++) iTimeQ1_1 += ArSecondsInMonth[LeapYear][j - 1];
        // Ïðîâåðÿåì íà "äûðó" â èñòîðèè.
        if (iTimeQ1_1 < time && time < iTimeQ1_0) return (-1); // Âîçâðàùàåì -1 â ñëó÷àå îòñóòñòâèÿ áàðà.
       }
      // Ðàñ÷¸ò âðåìåíè îòêðûòèÿ òåêóùåãî êâàðòàëüíîãî áàðà.
      iTimeQ1_0 = iTimeMN1;                 // Âðåìÿ îòêðûòèÿ ïåðâîãî â èñòîðèè ìåñÿ÷íîãî áàðà.
      // Âû÷èñëÿåì êîëè÷åñòâî äîáàâëÿåìûõ áàðîâ â êâàðòàëüíîì áàðå.
      AmountBar = MathMod (NumberMonth, 3); // Íîìåð ìåñÿ÷íîãî áàðà â êâàðòàëå.
      if (AmountBar == 0) AmountBar = 2;    // Åñëè áàð ïîñëåäíèé â êâàðòàëå, òî êîëè÷åñòâî äîáàâëÿåìûõ áàðîâ ðàâíî äâóì.
      else AmountBar = AmountBar - 1;       // Åñëè áàð íå ïîñëåäíèé â êâàðòàëå, ïðîäîëæàåì âû÷èñëþòü.
      // Ïðîèçâîäèì âû÷èòàíèå âðåìåíè äëÿ ðàñ÷¸òà âðåìåíè îòêðûòèÿ òåêóùåãî áàðà íà Q1.
      for (j = (NumberMonth - AmountBar); j < NumberMonth; j++) iTimeQ1_0 -= ArSecondsInMonth[LeapYear][j - 1];
      if (time >= iTimeQ1_0) return (ShiftQ1);  // Âîçâðàùàåì íîìåð òåêóùåãî áàðà íà Q1.
     }
   }
 }
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
// 3. Âðåìÿ îòêðûòèÿ ïî íîìåðó áàðà â ÒÔ Q1.
datetime iTime_Q1 (string symbol, // Ñèìâîëüíîå èìÿ èíñòðóìåíòà
                   int    shift)  // Íîìåð áàðà.
 {
  bool     Switch_Q1 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà êâàðòàëüíûõ áàðîâ äëÿ ïåðâîãî êâàðòàëà.
  bool     Switch_Q2 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà êâàðòàëüíûõ áàðîâ äëÿ âòîðîãî êâàðòàëà.
  bool     Switch_Q3 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà êâàðòàëüíûõ áàðîâ äëÿ òðåòüåãî êâàðòàëà.
  bool     Switch_Q4 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà êâàðòàëüíûõ áàðîâ äëÿ ÷åòâ¸ðòîãî êâàðòàëà.
  datetime iTimeMN1;         // Âðåìÿ îòêðûòèÿ ìåñÿ÷íîãî áàðà.
  datetime iTimeQ1;          // Âîçâðàùàåìîå çíà÷åíèå.
  int      AmountBar;        // Êîëè÷åñòâî äîáàâëÿåìûõ áàðîâ â ïåðâîì èëè ïîñëåäíåì êâàðòàëüíûõ áàðàõ.
  int      i, j;
  int      iBarsMN1 = iBars (symbol, PERIOD_MN1); // Êîëè÷åñòâî áàðîâ â ÒÔ MN1 òåêóùåãî èíñòðóìåíòà.
  int      iBarsQ1 = iBars_Q1 (symbol);           // Êîëè÷åñòâî áàðîâ â ÒÔ Q1.
  int      LeapYear;                              // Âèñîêîñíîñòü ãîäà.
  int      NumberMonth;                           // Íîìåð ìåñÿöà.
  int      ShiftQ1;                               // Òåêóùèé íîìåð áàðà ÒÔ Q1.
  //----
  if (0 > shift || shift >= iBarsQ1) return (0); // Âîçâðàùàåì íîëü â ñëó÷àå îøèáêè.
  else                                           // Åñëè íîìåð áàðà íàõîäèòñÿ â ïðåäåëàõ èñòîðèè, èùåì åãî.
   {// Ðàñ÷¸ò ãîäà íà âèñîêîñíîñòü. Çàäà¸ì íà÷àëüíîå çíà÷åíèå.
    if (MathMod (TimeYear (MarketInfo (symbol, MODE_TIME)), 4) == 0) LeapYear = true; // Åñëè ãîä âèñîêîñíûé.
    else LeapYear = false;                                                            // Åñëè ãîä íå âèñîêîñíûé.
    for (i = 0, ShiftQ1 = -1; i < iBarsMN1; i++) // Öèêë ïî íîìåðàì ìåñÿ÷íûõ áàðîâ.
     {
      iTimeMN1 = iTime (symbol, PERIOD_MN1, i);  // Âðåìÿ îòêðûòèÿ ìåñÿ÷íîãî áàðà.
      if (i > 0) // Íà ïåðâîé èòåðàöèè íå ïðîâåðÿì ñìåíó ãîäà.
       {// Åñëè ñìåíèëñÿ ãîä, èíèöèàëèçèðóåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ âî âñåõ êâàðòàëàõ. Ìîæåò ïðèãîäèòüñÿ ïðè îòñóòñòâèè áàðîâ âíóòðè ãîäà è íåñêîëüêèõ ëåò ïîäðÿä (äûðû â èñòîðèè).
        if (MathMod (TimeYear (iTimeMN1), TimeYear (iTime (symbol, PERIOD_MN1, i - 1))) != 0)
         {
          Switch_Q1 = true; // Èíèöèàëèçèðóåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ ïåðâîãî êâàðòàëà.
          Switch_Q2 = true; // Èíèöèàëèçèðóåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ âòîðîãî êâàðòàëà.
          Switch_Q3 = true; // Èíèöèàëèçèðóåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ òðåòüåãî êâàðòàëà.
          Switch_Q4 = true; // Èíèöèàëèçèðóåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ ÷åòâ¸ðòîãî êâàðòàëà.
          // Ðàñ÷¸ò ãîäà íà âèñîêîñíîñòü.
          if (MathMod (TimeYear (iTimeMN1), 4) == 0) LeapYear = true; // Åñëè ãîä âèñîêîñíûé.
          else LeapYear = false;                                      // Åñëè ãîä íå âèñîêîñíûé.
         }
       }
      // Ïåðåêëþ÷àåì ïî íîìåðàì ìåñÿöåâ.
      NumberMonth = TimeMonth (iTimeMN1); // Íîìåð ìåñÿöà.
      switch (NumberMonth)
       {//----Ìåñÿöà 4-ãî êâàðòàëà.-----------------------------------------------------------------------------------------
        case 12:
        case 11:
        case 10:
         {
          Switch_Q3 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 3-ãî êâàðòàëà.
          Switch_Q2 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 2-ãî êâàðòàëà.
          Switch_Q1 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 1-ãî êâàðòàëà.
          if (Switch_Q4 == true)  // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftQ1++;            // Ñ÷èòàåì êâàðòàëüíûé áàð.
            Switch_Q4 = false;    // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;          // Ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----Ìåñÿöà 3-ãî êâàðòàëà.-----------------------------------------------------------------------------------------
        case 9:
        case 8:
        case 7:
         {
          Switch_Q4 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 4-ãî êâàðòàëà.
          Switch_Q2 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 2-ãî êâàðòàëà.
          Switch_Q1 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 1-ãî êâàðòàëà.
          if (Switch_Q3 == true)  // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftQ1++;            // Ñ÷èòàåì êâàðòàëüíûé áàð.
            Switch_Q3 = false;    // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;          // Ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----Ìåñÿöà 2-ãî êâàðòàëà.-----------------------------------------------------------------------------------------
        case 6:
        case 5:
        case 4:
         {
          Switch_Q4 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 4-ãî êâàðòàëà.
          Switch_Q3 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 3-ãî êâàðòàëà.
          Switch_Q1 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 1-ãî êâàðòàëà.
          if (Switch_Q2 == true)  // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftQ1++;            // Ñ÷èòàåì êâàðòàëüíûé áàð.
            Switch_Q2 = false;    // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;          // Ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----Ìåñÿöà 1-ãî êâàðòàëà.-----------------------------------------------------------------------------------------
        case 3:
        case 2:
        case 1:
         {
          Switch_Q4 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 4-ãî êâàðòàëà.
          Switch_Q3 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 3-ãî êâàðòàëà.
          Switch_Q2 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 2-ãî êâàðòàëà.
          if (Switch_Q1 == true)  // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftQ1++;            // Ñ÷èòàåì êâàðòàëüíûé áàð.
            Switch_Q1 = false;    // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;          // Ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
       }
      // Åñëè íàøëè íóæíûé áàð.
      if (shift == ShiftQ1)
       {// Ðàñ÷¸ò âðåìåíè îòêðûòèÿ íàéäåííîãî êâàðòàëüíîãî áàðà.
        iTimeQ1 = iTimeMN1;                   // Âðåìÿ îòêðûòèÿ ïîñëåäíåãî â êâàðòàëå ìåñÿ÷íîãî áàðà.
        // Âû÷èñëÿåì êîëè÷åñòâî äîáàâëÿåìûõ áàðîâ â êâàðòàëüíîì áàðå.
        AmountBar = MathMod (NumberMonth, 3); // Íîìåð ìåñÿ÷íîãî áàðà â êâàðòàëå.
        if (AmountBar == 0) AmountBar = 2;    // Åñëè áàð ïîñëåäíèé â êâàðòàëå, òî êîëè÷åñòâî äîáàâëÿåìûõ áàðîâ ðàâíî äâóì.
        else AmountBar = AmountBar - 1;       // Åñëè áàð íå ïîñëåäíèé â êâàðòàëå, ïðîäîëæàåì âû÷èñëþòü.
        // Ïðîèçâîäèì âû÷èòàíèå âðåìåíè.
        for (j = (NumberMonth - AmountBar); j < NumberMonth; j++) iTimeQ1 -= ArSecondsInMonth[LeapYear][j - 1]; // Âðåìÿ îòêðûòèÿ òåêóùåãî áàðà íà Q1.
//        Comment ("NumberMonth = ", NumberMonth, "\nShiftQ1 = ", ShiftQ1, "\niTimeQ1 = ", TimeToStr (iTimeQ1, TIME_DATE|TIME_MINUTES|TIME_SECONDS));
//        Sleep (5000);
        return (iTimeQ1);                     // Âîçâðàùàåì âðåìÿ îòêðûòèÿ êâàðòàëüíîãî áàðà.
       }
     }
   }
 }
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
// 4. Öåíà îòêðûòèÿ âûáðàííîãî áàðà â ÒÔ Q1.
double iOpen_Q1 (string symbol, // Ñèìâîëüíîå èìÿ èíñòðóìåíòà.
                 int    shift)  // Íîìåð áàðà.
 {
  bool     Switch_Q1 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà êâàðòàëüíûõ áàðîâ äëÿ ïåðâîãî êâàðòàëà.
  bool     Switch_Q2 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà êâàðòàëüíûõ áàðîâ äëÿ âòîðîãî êâàðòàëà.
  bool     Switch_Q3 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà êâàðòàëüíûõ áàðîâ äëÿ òðåòüåãî êâàðòàëà.
  bool     Switch_Q4 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà êâàðòàëüíûõ áàðîâ äëÿ ÷åòâ¸ðòîãî êâàðòàëà.
  datetime iTimeMN1;         // Âðåìÿ îòêðûòèÿ ìåñÿ÷íîãî áàðà.
  int      i, j, k;
  int      iBarsMN1 = iBars (symbol, PERIOD_MN1); // Êîëè÷åñòâî áàðîâ â ÒÔ MN1 òåêóùåãî èíñòðóìåíòà.
  int      iBarsQ1 = iBars_Q1 (symbol);           // Êîëè÷åñòâî áàðîâ â ÒÔ Q1.
  int      FirstMonth;                            // Íîìåð ïåðâîãî ìåñÿöà êâàðòàëà.
  int      ShiftQ1;                               // Òåêóùèé íîìåð áàðà ÒÔ Q1.
  //----
  if (0 > shift || shift >= iBarsQ1) return (0); // Âîçâðàùàåì íîëü â ñëó÷àå îøèáêè.
  else                                           // Åñëè íîìåð áàðà íàõîäèòñÿ â ïðåäåëàõ èñòîðèè, èùåì åãî.
   {
    for (i = 0, ShiftQ1 = -1; i < iBarsMN1; i++) // Öèêë ïî íîìåðàì ìåñÿ÷íûõ áàðîâ.
     {
      iTimeMN1 = iTime (symbol, PERIOD_MN1, i);  // Âðåìÿ îòêðûòèÿ ìåñÿ÷íîãî áàðà.
      if (i > 0) // Íà ïåðâîé èòåðàöèè íå ïðîâåðÿì ñìåíó ãîäà.
       {// Åñëè ñìåíèëñÿ ãîä, èíèöèàëèçèðóåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ âî âñåõ êâàðòàëàõ. Ìîæåò ïðèãîäèòüñÿ ïðè îòñóòñòâèè áàðîâ âíóòðè ãîäà è íåñêîëüêèõ ëåò ïîäðÿä (äûðû â èñòîðèè).
        if (MathMod (TimeYear (iTimeMN1), TimeYear (iTime (symbol, PERIOD_MN1, i - 1))) != 0)
         {
          Switch_Q1 = true; // Èíèöèàëèçèðóåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ ïåðâîãî êâàðòàëà.
          Switch_Q2 = true; // Èíèöèàëèçèðóåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ âòîðîãî êâàðòàëà.
          Switch_Q3 = true; // Èíèöèàëèçèðóåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ òðåòüåãî êâàðòàëà.
          Switch_Q4 = true; // Èíèöèàëèçèðóåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ ÷åòâ¸ðòîãî êâàðòàëà.
         }
       }
      // Ïåðåêëþ÷àåì ïî íîìåðàì ìåñÿöåâ.
      switch (TimeMonth (iTimeMN1))
       {//----Ìåñÿöà 4-ãî êâàðòàëà.-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        case 12:
        case 11:
        case 10:
         {
          Switch_Q3 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 3-ãî êâàðòàëà.
          Switch_Q2 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 2-ãî êâàðòàëà.
          Switch_Q1 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 1-ãî êâàðòàëà.
          if (Switch_Q4 == true)  // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftQ1++;            // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstMonth = 10;      // Íîìåð ïåðâîãî ìåñÿöà êâàðòàëà.
            Switch_Q4 = false;    // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;          // Ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----Ìåñÿöà 3-ãî êâàðòàëà.-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        case 9:
        case 8:
        case 7:
         {
          Switch_Q4 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 4-ãî êâàðòàëà.
          Switch_Q2 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 2-ãî êâàðòàëà.
          Switch_Q1 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 1-ãî êâàðòàëà.
          if (Switch_Q3 == true)  // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftQ1++;            // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstMonth = 7;       // Íîìåð ïåðâîãî ìåñÿöà êâàðòàëà.
            Switch_Q3 = false;    // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;          // Ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----Ìåñÿöà 2-ãî êâàðòàëà.-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        case 6:
        case 5:
        case 4:
         {
          Switch_Q4 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 4-ãî êâàðòàëà.
          Switch_Q3 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 3-ãî êâàðòàëà.
          Switch_Q1 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 1-ãî êâàðòàëà.
          if (Switch_Q2 == true)  // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftQ1++;            // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstMonth = 4;       // Íîìåð ïåðâîãî ìåñÿöà êâàðòàëà.
            Switch_Q2 = false;    // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;          // Ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----Ìåñÿöà 1-ãî êâàðòàëà.-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        case 3:
        case 2:
        case 1:
         {
          Switch_Q4 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 4-ãî êâàðòàëà.
          Switch_Q3 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 3-ãî êâàðòàëà.
          Switch_Q2 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 2-ãî êâàðòàëà.
          if (Switch_Q1 == true)  // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftQ1++;            // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstMonth = 1;       // Íîìåð ïåðâîãî ìåñÿöà êâàðòàëà.
            Switch_Q1 = false;    // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;          // Ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
       }
      if (shift == ShiftQ1) // Åñëè íàøëè íóæíûé áàð.
       {
        for (i++, k = TimeYear (iTimeMN1);; i++) // Èùèì ïåðâûé ìåñÿ÷íûé áàð êâàðòàëüíîãî áàðà.
         {
          iTimeMN1 = iTime (symbol, PERIOD_MN1, i);    // Âðåìÿ îòêðûòèÿ ìåñÿ÷íîãî áàðà.
          // Äëÿ ïåðâîãî áàðà ïåðâîãî êâàòàëà îñîáûå óñëîâèÿ ïðîâåðêè íà÷àëà.
          if (FirstMonth == 1) {if (TimeMonth (iTimeMN1) > 3 || TimeYear (iTimeMN1) != k) return (iOpen (symbol, PERIOD_MN1, i - 1));} // Îñòàíàâëèâàåì öèêë, åñëè ñëåäóþùèé áàð íàõîäèòñÿ â äðóãîì êâàðòàëå èëè ãîäó.
          else {if (TimeMonth (iTimeMN1) < FirstMonth || TimeYear (iTimeMN1) != k) return (iOpen (symbol, PERIOD_MN1, i - 1));}        // Îñòàíàâëèâàåì öèêë, åñëè ñëåäóþùèé áàð íàõîäèòñÿ â äðóãîì êâàðòàëå èëè ãîäó.
         }
       }
     }
   }
 }
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
// 5. Ìàêñèìàëüíàÿ öåíà âûáðàííîãî áàðà â ÒÔ Q1.
double iHigh_Q1 (string symbol, // Ñèìâîëüíîå èìÿ èíñòðóìåíòà.
                 int    shift)  // Íîìåð áàðà.
 {
  bool     Switch_Q1 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà êâàðòàëüíûõ áàðîâ äëÿ ïåðâîãî êâàðòàëà.
  bool     Switch_Q2 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà êâàðòàëüíûõ áàðîâ äëÿ âòîðîãî êâàðòàëà.
  bool     Switch_Q3 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà êâàðòàëüíûõ áàðîâ äëÿ òðåòüåãî êâàðòàëà.
  bool     Switch_Q4 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà êâàðòàëüíûõ áàðîâ äëÿ ÷åòâ¸ðòîãî êâàðòàëà.
  datetime iTimeMN1;         // Âðåìÿ îòêðûòèÿ ìåñÿ÷íîãî áàðà.
  datetime iTimeMN1_1;       // Âðåìÿ îòêðûòèÿ ñëåäóþùåãî ìåñÿ÷íîãî áàðà.
  int      i, l;
  int      iBarsMN1 = iBars (symbol, PERIOD_MN1); // Êîëè÷åñòâî áàðîâ â ÒÔ MN1 òåêóùåãî èíñòðóìåíòà.
  int      iBarsQ1 = iBars_Q1 (symbol);           // Êîëè÷åñòâî áàðîâ â ÒÔ Q1.
  int      FirstMonth;                            // Íîìåð ïåðâîãî ìåñÿöà êâàðòàëà.
  int      ShiftQ1;                               // Òåêóùèé íîìåð áàðà ÒÔ Q1.
  // Ìàññèâû.
  double   ArHighMN1[3]; // Ìàññèâ ñ ìàêñèìàëüíûìè öåíàìè ìåñÿ÷íûõ áàðîâ â êâàðòàëüíîì áàðå.
  //----
  if (0 > shift || shift >= iBarsQ1) return (0); // Âîçâðàùàåì íîëü â ñëó÷àå îøèáêè.
  else                                           // Åñëè íîìåð áàðà íàõîäèòñÿ â ïðåäåëàõ èñòîðèè, èùåì åãî.
   {
    for (i = 0, ShiftQ1 = -1; i < iBarsMN1; i++) // Öèêë ïî íîìåðàì ìåñÿ÷íûõ áàðîâ.
     {
      iTimeMN1 = iTime (symbol, PERIOD_MN1, i);  // Âðåìÿ îòêðûòèÿ ìåñÿ÷íîãî áàðà.
      if (i > 0) // Íà ïåðâîé èòåðàöèè íå ïðîâåðÿì ñìåíó ãîäà.
       {// Åñëè ñìåíèëñÿ ãîä, èíèöèàëèçèðóåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ âî âñåõ êâàðòàëàõ. Ìîæåò ïðèãîäèòüñÿ ïðè îòñóòñòâèè áàðîâ âíóòðè ãîäà è íåñêîëüêèõ ëåò ïîäðÿä (äûðû â èñòîðèè).
        if (MathMod (TimeYear (iTimeMN1), TimeYear (iTime (symbol, PERIOD_MN1, i - 1))) != 0)
         {
          Switch_Q1 = true; // Èíèöèàëèçèðóåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ ïåðâîãî êâàðòàëà.
          Switch_Q2 = true; // Èíèöèàëèçèðóåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ âòîðîãî êâàðòàëà.
          Switch_Q3 = true; // Èíèöèàëèçèðóåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ òðåòüåãî êâàðòàëà.
          Switch_Q4 = true; // Èíèöèàëèçèðóåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ ÷åòâ¸ðòîãî êâàðòàëà.
         }
       }
      // Ïåðåêëþ÷àåì ïî íîìåðàì ìåñÿöåâ.
      switch (TimeMonth (iTimeMN1))
       {//----Ìåñÿöà 4-ãî êâàðòàëà.-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        case 12:
        case 11:
        case 10:
         {
          Switch_Q3 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 3-ãî êâàðòàëà.
          Switch_Q2 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 2-ãî êâàðòàëà.
          Switch_Q1 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 1-ãî êâàðòàëà.
          if (Switch_Q4 == true)  // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftQ1++;            // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstMonth = 10;      // Íîìåð ïåðâîãî ìåñÿöà êâàðòàëà.
            Switch_Q4 = false;    // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;          // Ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----Ìåñÿöà 3-ãî êâàðòàëà.-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        case 9:
        case 8:
        case 7:
         {
          Switch_Q4 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 4-ãî êâàðòàëà.
          Switch_Q2 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 2-ãî êâàðòàëà.
          Switch_Q1 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 1-ãî êâàðòàëà.
          if (Switch_Q3 == true)  // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftQ1++;            // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstMonth = 7;       // Íîìåð ïåðâîãî ìåñÿöà êâàðòàëà.
            Switch_Q3 = false;    // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;          // Ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----Ìåñÿöà 2-ãî êâàðòàëà.-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        case 6:
        case 5:
        case 4:
         {
          Switch_Q4 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 4-ãî êâàðòàëà.
          Switch_Q3 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 3-ãî êâàðòàëà.
          Switch_Q1 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 1-ãî êâàðòàëà.
          if (Switch_Q2 == true)  // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftQ1++;            // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstMonth = 4;       // Íîìåð ïåðâîãî ìåñÿöà êâàðòàëà.
            Switch_Q2 = false;    // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;          // Ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----Ìåñÿöà 1-ãî êâàðòàëà.-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        case 3:
        case 2:
        case 1:
         {
          Switch_Q4 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 4-ãî êâàðòàëà.
          Switch_Q3 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 3-ãî êâàðòàëà.
          Switch_Q2 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 2-ãî êâàðòàëà.
          if (Switch_Q1 == true)  // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftQ1++;            // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstMonth = 1;       // Íîìåð ïåðâîãî ìåñÿöà êâàðòàëà.
            Switch_Q1 = false;    // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;          // Ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
       }
      if (shift == ShiftQ1) // Åñëè íàøëè íóæíûé áàð.
       {
        for (l = 0; l < 3; i++, l++)  // Èùèì ïåðâûé ìåñÿ÷íûé áàð êâàðòàëüíîãî áàðà.
         {
          iTimeMN1 = iTime (symbol, PERIOD_MN1, i);             // Âðåìÿ îòêðûòèÿ òóêóùåãî ìåñÿ÷íîãî áàðà.
          iTimeMN1_1 = iTime (symbol, PERIOD_MN1, i + 1);       // Âðåìÿ îòêðûòèÿ ñëåäóþùåãî ìåñÿ÷íîãî áàðà.
          ArHighMN1[l] = iHigh (symbol, PERIOD_MN1, i);         // Ñêëàäûâàåì ìàêñèìàëüíûå öåíû ìåñÿ÷íûûõ áàðîâ â òåõíè÷åñêèé ìàññèâ.
          // Äëÿ ïåðâîãî áàðà ïåðâîãî êâàòàëà îñîáûå óñëîâèÿ ïðîâåðêè íà÷àëà.
          if (FirstMonth == 1) {if (TimeMonth (iTimeMN1_1) > 3 || TimeYear (iTimeMN1) != TimeYear (iTimeMN1_1)) break;} // Îñòàíàâëèâàåì öèêë, åñëè ñëåäóþùèé áàð íàõîäèòñÿ â äðóãîì êâàðòàëå èëè ãîäó.
          else {if (TimeMonth (iTimeMN1_1) < FirstMonth || TimeYear (iTimeMN1) != TimeYear (iTimeMN1_1)) break;}        // Îñòàíàâëèâàåì öèêë, åñëè ñëåäóþùèé áàð íàõîäèòñÿ â äðóãîì êâàðòàëå èëè ãîäó.
         }
        return (ArHighMN1[ArrayMaximum (ArHighMN1, l + 1, 0)]); // Âîçâðàùàåì ìàêñèìàëüíóþ öåíó êâàðòàëüíîãî áàðà.
       }
     }
   }
 }
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
// 6. Ìèíèìàëüíàÿ öåíà âûáðàííîãî áàðà â ÒÔ Q1.
double iLow_Q1 (string symbol, // Ââàëþòíàÿ ïàðà.
                int    shift)  // Íîìåð áàðà.
 {
  bool     Switch_Q1 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà êâàðòàëüíûõ áàðîâ äëÿ ïåðâîãî êâàðòàëà.
  bool     Switch_Q2 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà êâàðòàëüíûõ áàðîâ äëÿ âòîðîãî êâàðòàëà.
  bool     Switch_Q3 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà êâàðòàëüíûõ áàðîâ äëÿ òðåòüåãî êâàðòàëà.
  bool     Switch_Q4 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà êâàðòàëüíûõ áàðîâ äëÿ ÷åòâ¸ðòîãî êâàðòàëà.
  datetime iTimeMN1;         // Âðåìÿ îòêðûòèÿ ìåñÿ÷íîãî áàðà.
  datetime iTimeMN1_1;       // Âðåìÿ îòêðûòèÿ ñëåäóþùåãî ìåñÿ÷íîãî áàðà.
  int      i, l;
  int      iBarsMN1 = iBars (symbol, PERIOD_MN1); // Êîëè÷åñòâî áàðîâ â ÒÔ MN1 òåêóùåãî èíñòðóìåíòà.
  int      iBarsQ1 = iBars_Q1 (symbol);           // Êîëè÷åñòâî áàðîâ â ÒÔ Q1.
  int      FirstMonth;                            // Íîìåð ïåðâîãî ìåñÿöà êâàðòàëà.
  int      ShiftQ1;                               // Òåêóùèé íîìåð áàðà ÒÔ Q1.
  // Ìàññèâû.
  double   ArLowMN1[3]; // Ìàññèâ ñ ìàêñèìàëüíûìè öåíàìè ìåñÿ÷íûõ áàðîâ â êâàðòàëüíîì áàðå.
  //----
  if (0 > shift || shift >= iBarsQ1) return (0); // Âîçâðàùàåì íîëü â ñëó÷àå îøèáêè.
  else                                           // Åñëè íîìåð áàðà íàõîäèòñÿ â ïðåäåëàõ èñòîðèè, èùåì åãî.
   {
    for (i = 0, ShiftQ1 = -1; i < iBarsMN1; i++) // Öèêë ïî íîìåðàì ìåñÿ÷íûõ áàðîâ.
     {
      iTimeMN1 = iTime (symbol, PERIOD_MN1, i);  // Âðåìÿ îòêðûòèÿ ìåñÿ÷íîãî áàðà.
      if (i > 0) // Íà ïåðâîé èòåðàöèè íå ïðîâåðÿì ñìåíó ãîäà.
       {// Åñëè ñìåíèëñÿ ãîä, èíèöèàëèçèðóåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ âî âñåõ êâàðòàëàõ. Ìîæåò ïðèãîäèòüñÿ ïðè îòñóòñòâèè áàðîâ âíóòðè ãîäà è íåñêîëüêèõ ëåò ïîäðÿä (äûðû â èñòîðèè).
        if (MathMod (TimeYear (iTimeMN1), TimeYear (iTime (symbol, PERIOD_MN1, i - 1))) != 0)
         {
          Switch_Q1 = true; // Èíèöèàëèçèðóåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ ïåðâîãî êâàðòàëà.
          Switch_Q2 = true; // Èíèöèàëèçèðóåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ âòîðîãî êâàðòàëà.
          Switch_Q3 = true; // Èíèöèàëèçèðóåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ òðåòüåãî êâàðòàëà.
          Switch_Q4 = true; // Èíèöèàëèçèðóåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ ÷åòâ¸ðòîãî êâàðòàëà.
         }
       }
      // Ïåðåêëþ÷àåì ïî íîìåðàì ìåñÿöåâ.
      switch (TimeMonth (iTimeMN1))
       {//----Ìåñÿöà 4-ãî êâàðòàëà.-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        case 12:
        case 11:
        case 10:
         {
          Switch_Q3 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 3-ãî êâàðòàëà.
          Switch_Q2 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 2-ãî êâàðòàëà.
          Switch_Q1 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 1-ãî êâàðòàëà.
          if (Switch_Q4 == true)  // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftQ1++;            // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstMonth = 10;      // Íîìåð ïåðâîãî ìåñÿöà êâàðòàëà.
            Switch_Q4 = false;    // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;          // Ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----Ìåñÿöà 3-ãî êâàðòàëà.-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        case 9:
        case 8:
        case 7:
         {
          Switch_Q4 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 4-ãî êâàðòàëà.
          Switch_Q2 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 2-ãî êâàðòàëà.
          Switch_Q1 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 1-ãî êâàðòàëà.
          if (Switch_Q3 == true)  // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftQ1++;            // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstMonth = 7;       // Íîìåð ïåðâîãî ìåñÿöà êâàðòàëà.
            Switch_Q3 = false;    // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;          // Ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----Ìåñÿöà 2-ãî êâàðòàëà.-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        case 6:
        case 5:
        case 4:
         {
          Switch_Q4 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 4-ãî êâàðòàëà.
          Switch_Q3 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 3-ãî êâàðòàëà.
          Switch_Q1 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 1-ãî êâàðòàëà.
          if (Switch_Q2 == true)  // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftQ1++;            // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstMonth = 4;       // Íîìåð ïåðâîãî ìåñÿöà êâàðòàëà.
            Switch_Q2 = false;    // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;          // Ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----Ìåñÿöà 1-ãî êâàðòàëà.-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        case 3:
        case 2:
        case 1:
         {
          Switch_Q4 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 4-ãî êâàðòàëà.
          Switch_Q3 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 3-ãî êâàðòàëà.
          Switch_Q2 = true;       // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 2-ãî êâàðòàëà.
          if (Switch_Q1 == true)  // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            ShiftQ1++;            // Ñ÷èòàåì êâàðòàëüíûé áàð.
            FirstMonth = 1;       // Íîìåð ïåðâîãî ìåñÿöà êâàðòàëà.
            Switch_Q1 = false;    // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;                // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;          // Ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
       }
      if (shift == ShiftQ1) // Åñëè íàøëè íóæíûé áàð.
       {
        for (l = 0; l < 3; i++, l++) // Èùèì ïåðâûé ìåñÿ÷íûé áàð êâàðòàëüíîãî áàðà.
         {
          iTimeMN1 = iTime (symbol, PERIOD_MN1, i);            // Âðåìÿ îòêðûòèÿ ìåñÿ÷íîãî áàðà.
          iTimeMN1_1 = iTime (symbol, PERIOD_MN1, i + 1);      // Âðåìÿ îòêðûòèÿ ñëåäóþùåãî ìåñÿ÷íîãî áàðà.
          ArLowMN1[l] = iLow (symbol, PERIOD_MN1, i);          // Ñêëàäûâàåì ìèíèìàëüíûå öåíû ìåñÿ÷íûûõ áàðîâ â òåõíè÷åñêèé ìàññèâ.
          // Äëÿ ïåðâîãî áàðà ïåðâîãî êâàòàëà îñîáûå óñëîâèÿ ïðîâåðêè íà÷àëà.
          if (FirstMonth == 1) {if (TimeMonth (iTimeMN1_1) > 3 || TimeYear (iTimeMN1) != TimeYear (iTimeMN1_1)) break;} // Îñòàíàâëèâàåì öèêë, åñëè ñëåäóþùèé áàð íàõîäèòñÿ â äðóãîì êâàðòàëå èëè ãîäó.
          else {if (TimeMonth (iTimeMN1_1) < FirstMonth || TimeYear (iTimeMN1) != TimeYear (iTimeMN1_1)) break;}        // Îñòàíàâëèâàåì öèêë, åñëè ñëåäóþùèé áàð íàõîäèòñÿ â äðóãîì êâàðòàëå èëè ãîäó.
         }
        return (ArLowMN1[ArrayMinimum (ArLowMN1, l + 1, 0)]);  // Âîçâðàùàåì ìèíèìàëüíóþ öåíó êâàðòàëüíîãî áàðà.
       }
     }
   }
 }
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
// 7. Öåíà çàêðûòèÿ âûáðàííîãî áàðà â ÒÔ Q1.
double iClose_Q1 (string symbol, // Ñèìâîëüíîå èìÿ èíñòðóìåíòà.
                  int    shift)  // Íîìåð áàðà.
 {
  bool     Switch_Q1 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà êâàðòàëüíûõ áàðîâ äëÿ ïåðâîãî êâàðòàëà.
  bool     Switch_Q2 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà êâàðòàëüíûõ áàðîâ äëÿ âòîðîãî êâàðòàëà.
  bool     Switch_Q3 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà êâàðòàëüíûõ áàðîâ äëÿ òðåòüåãî êâàðòàëà.
  bool     Switch_Q4 = true; // Âûêëþ÷àòåëü ñ÷¸ò÷èêà êâàðòàëüíûõ áàðîâ äëÿ ÷åòâ¸ðòîãî êâàðòàëà.
  datetime iTimeMN1;         // Âðåìÿ îòêðûòèÿ ìåñÿ÷íîãî áàðà.
  int      i;
  int      iBarsMN1 = iBars (symbol, PERIOD_MN1); // Êîëè÷åñòâî áàðîâ â ÒÔ MN1 òåêóùåãî èíñòðóìåíòà.
  int      iBarsQ1 = iBars_Q1 (symbol);           // Êîëè÷åñòâî áàðîâ èëè íîìåð áàðà â ÒÔ Q1.
  // Ïðîâåðêà íà íåêîððåêòíîå çíà÷åíèå íàìåðà áàðà.
  if (0 > shift || shift >= iBarsQ1) return (0); // Âîçâðàùàåì íîëü â ñëó÷àå îøèáêè.
  else                                           // Åñëè íîìåð áàðà íàõîäèòñÿ â ïðåäåëàõ èñòîðèè, èùåì åãî.
   {
    iBarsMN1 = iBars (symbol, PERIOD_MN1);       // Êîëè÷åñòâî áàðîâ â ÒÔ MN1 òåêóùåãî èíñòðóìåíòà.
    for (i = 0, iBarsQ1 = -1; i < iBarsMN1; i++)
     {
      iTimeMN1 = iTime (symbol, PERIOD_MN1, i);  // Âðåìÿ îòêðûòèÿ ìåñÿ÷íîãî áàðà.
      if (i > 0) // Íà ïåðâîé èòåðàöèè íå ïðîâåðÿì ñìåíó ãîäà.
       {// Åñëè ñìåíèëñÿ ãîä, èíèöèàëèçèðóåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ âî âñåõ êâàðòàëàõ. Ìîæåò ïðèãîäèòüñÿ ïðè îòñóòñòâèè áàðîâ âíóòðè ãîäà è íåñêîëüêèõ ëåò ïîäðÿä (äûðû â èñòîðèè).
        if (MathMod (TimeYear (iTimeMN1), TimeYear (iTime (symbol, PERIOD_MN1, i - 1))) != 0)
         {
          Switch_Q1 = true; // Èíèöèàëèçèðóåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ ïåðâîãî êâàðòàëà.
          Switch_Q2 = true; // Èíèöèàëèçèðóåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ âòîðîãî êâàðòàëà.
          Switch_Q3 = true; // Èíèöèàëèçèðóåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ òðåòüåãî êâàðòàëà.
          Switch_Q4 = true; // Èíèöèàëèçèðóåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ ÷åòâ¸ðòîãî êâàðòàëà.
         }
       }
      // Ïåðåêëþ÷àåì ïî íîìåðàì ìåñÿöåâ.
      switch (TimeMonth (iTimeMN1))
       {//----Ìåñÿöà 4-ãî êâàðòàëà.-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        case 12:
        case 11:
        case 10:
         {
          Switch_Q3 = true;      // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 3-ãî êâàðòàëà.
          Switch_Q2 = true;      // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 2-ãî êâàðòàëà.
          Switch_Q1 = true;      // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 1-ãî êâàðòàëà.
          if (Switch_Q4 == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            iBarsQ1++;           // Ñ÷èòàåì êâàðòàëüíûé áàð.
            Switch_Q4 = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;               // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;         // Ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----Ìåñÿöà 3-ãî êâàðòàëà.-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        case 9:
        case 8:
        case 7:
         {
          Switch_Q4 = true;      // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 4-ãî êâàðòàëà.
          Switch_Q2 = true;      // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 2-ãî êâàðòàëà.
          Switch_Q1 = true;      // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 1-ãî êâàðòàëà.
          if (Switch_Q3 == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            iBarsQ1++;           // Ñ÷èòàåì êâàðòàëüíûé áàð.
            Switch_Q3 = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;               // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;         // Ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----Ìåñÿöà 2-ãî êâàðòàëà.-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        case 6:
        case 5:
        case 4:
         {
          Switch_Q4 = true;      // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 4-ãî êâàðòàëà.
          Switch_Q3 = true;      // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 3-ãî êâàðòàëà.
          Switch_Q1 = true;      // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 1-ãî êâàðòàëà.
          if (Switch_Q2 == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            iBarsQ1++;           // Ñ÷èòàåì êâàðòàëüíûé áàð.
            Switch_Q2 = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;               // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;         // Ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //----Ìåñÿöà 1-ãî êâàðòàëà.-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        case 3:
        case 2:
        case 1:
         {
          Switch_Q4 = true;      // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 4-ãî êâàðòàëà.
          Switch_Q3 = true;      // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 3-ãî êâàðòàëà.
          Switch_Q2 = true;      // Ðàçðåøàåì ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ äëÿ 2-ãî êâàðòàëà.
          if (Switch_Q1 == true) // Åñëè ñ÷¸ò÷èê ðàçðåø¸í.
           {
            iBarsQ1++;           // Ñ÷èòàåì êâàðòàëüíûé áàð.
            Switch_Q1 = false;   // Çàïðåùàåì ñ÷èòàòü áàðû â ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
            break;               // Âûõîäèì èç ïåðåêëþ÷àòåëÿ.
           }
          else continue;         // Ñ÷¸ò÷èê êâàðòàëüíûõ áàðîâ çàïðåù¸í, ïåðåõîäèì ê ñëåäóþùåé èòåðàöèè ïî ìåñÿ÷íûì áàðàì.
         }
        //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
       }
      if (shift == iBarsQ1) return (iClose (symbol, PERIOD_MN1, i)); // Åñëè íàøëè íóæíûé áàð. Âîçâðàùàåì âðåìÿ çàêðûòèÿ ìåñÿ÷íîãî áàðà.
     }
   }
 }
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
// 8. Âîçâðàùàåò òåêóùèé íîìåð øåñòè÷àñîâîãî áàðà â ñóòêàõ ïîñëåäíåãî èçâåñòíîãî ñåðâåðíîãî âðåìåíè.
int Quarter()
 {
  switch (Month())
   {
    case  1:
    case  2:
    case  3: return (1);
    case  4:
    case  5:
    case  6: return (2);
    case  7:
    case  8:
    case  9: return (3);
    case 10:
    case 11:
    case 12: return (4);
   }
 }
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
// 9. Âîçâðàùàåò íîìåð êâàðòàëà äëÿ óêàçàííîãî âðåìåíè.
int TimeQuarter (datetime time) // Äàòà, ïðåäñòàâëåííàÿ â âèäå êîëè÷åñòâà ñåêóíä, ïðîøåäøèõ ïîñëå 00:00 1 ÿíâàðÿ 1970 ãîäà.
 {
  switch (TimeMonth (time))
   {
    case  1:
    case  2:
    case  3: return (1);
    case  4:
    case  5:
    case  6: return (2);
    case  7:
    case  8:
    case  9: return (3);
    case 10:
    case 11:
    case 12: return (4);
   }
 }
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ





Sample





Analysis



Market Information Used:



Indicator Curves created:


Indicators Used:



Custom Indicators Used:

Order Management characteristics:

Other Features: