ZH_All_Quotings_4_10912

Author: Copyright � Zhunko
0 Views
0 Downloads
0 Favorites
ZH_All_Quotings_4_10912
//+------------------------------------------------------------------------------------------------------------+
//|                                                                                    ZH_All_Quotings 4.10912 |
//|                                                                                    Copyright © Zhunko      |
//| 06.04.2011 - 05.02.2014                                                            vadim@zhunko.ru         |
//+------------------------------------------------------------------------------------------------------------+
//| ÓÏÐÀÂËÅÍÈÅ ÑÊÐÈÏÒÎÌ ÏÐÎÈÇÂÎÄÈÒÑß ×ÅÐÅÇ ÃËÎÁÀËÜÍÛÅ ÏÅÐÅÌÅÍÍÛÅ.                                              |
//| glAQ_TF_M1_M5_ - Âêëþ÷åíèå ïîäêà÷êè ïî âûáðàííûì ïåðèîäàì. Ãëîáàëüíàÿ ïåðåìåííàÿ ñîçäà¸òñÿ âðó÷íóþ â îêíå  |
//|                  ãëîáàëüíûõ ïåðåìåííûõ. Ïîä÷¸ðêèâàíèå â êîíöå èìåíè íåîáõîäèìî äëÿ èäåíòèôèêàöèè           |
//|                  ïîñëåäíåãî ÒÔ. Äëÿ ïîäêà÷êè ïî âñåì ïåðèîäàì ïåðåìåííóþ ìîæíî íå ñîçäàâàòü èëè ñîçäàòü ñ  |
//|                  òàêèì èìåíåì: glAQ_TF_ALL. Åñëè çíà÷åíèå ïåðåìåííîé áîëåå íóëÿ, âêëþ÷àåòñÿ ñêàíèðîâàíèå   |
//|                  âñåõ ÒÔ äî óêàçàííîãî íîìåðà ÒÔ â ïîðÿäêå âîçðàñòàíèÿ. Ïðè ýòîì èìÿ ïåðåìåííîé äëÿ        |
//|                  âûáîðî÷íîãî ñêàíèðîâàíèÿ èãíîðèðóåòñÿ.                                                    |
//+------------------------------------------------------------------------------------------------------------+
//| 1.Èçìåíåíèÿ â ZH_All_Quotings 4.10425 îò 25.04.2011.                                                       |
//| 1.1.Îòêðûòèå ãðàôèêà ñêàíèðóåìîãî èíñòðóìåíòà çàìåíåíî íà çàìåíó èíñòðóìåíòà íà óæå îòêðûòîì ãðàôèêå.      |
//| 1.Èçìåíåíèÿ â ZH_All_Quotings 4.10912 îò 12.09.2011.                                                       |
//| 1.1.Âûãðóçêà ñêðèïòà òåïåðü íå ïðèâîäèò ê àâàðèéíîé âûãðóçêå òåðìèíàëà. Òåïåðü äëÿ çàâåðøåíèÿ ðàáîòû       |
//|     ñêðèïòà äîñòàòî÷íî åãî âûãðóçèòü ñî ñêàíèðóåìîãî îêíà.                                                 |
//+------------------------------------------------------------------------------------------------------------+
#property copyright "Copyright © Zhunko"
#property link      "vadim@zhunko.ru"
#include <ServicesMT.mqh>
int abScanTF[9] = {1}; // Ìàññèâ ñî ñïèñêîì ñêàíèðóåìûõ ÒÔ.
//æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
void start()
 {
  int    i = 0;
  int    nBarsStart = 0; // Êîëè÷åñòâî áàðîâ íà ãðàôèêå â íà÷àëå ñêàíèðîâàíèÿ.
  int    nBars = 0;      // Êîëè÷åñòâî áàðîâ íà ãðàôèêå.
  int    nStart = 0;     // Ôëàã çàïóñêà öèêëà.
  string sProgress = ""; // Ïðîãðåññáàð.
  // Èíèöèàëèçèðóåì ìàññèâ âêëþ÷àòåëåé ñêàíèðóåìûõ ÒÔ èç èìåíè ãëîáàëüíîé ïåðåìåííîé "glAQ_TF_..._".
  SwitchPeriod(abScanTF);
  // Çàïóñêàåì ôóíêöèþ ïîòîêà, íî ñêàíèðîâàíèå íà÷èíàåòñÿ ñî âòîðîãî çàïóñêà ñ äðóãîãî îêíà.
  nStart = ServiceLoaderQuotesW(MLQ_CONTINUED,       // Óïðàâëåíèÿ çàãðóçêîé êîòèðîâîê:
                                                     //   MLQ_STOP_TF    ïðåêðàùåíèå çàãðóçêè êîòèðîâîê ïî òåêóùåìó ÒÔ è ïåðåõîä ê ñëåäóþùåìó èíñòðóìåíòó
                                                     //                  èëè ÒÔ â çàâèñèìîñòè îò ïàðàìåòðà "bMode";
                                                     //   MLQ_CONTINUED  çàãðóçêà êîòèðîâîê ïî òåêóùåìó ÒÔ ïðîäîëæàåòñÿ;
                                                     //   MLQ_FINISH     çàâåðøåíèå ôóíêöèè ïîòîêà.
                                true,                // Ïîðÿäîê ñêàíèðîâàíèÿ èíñòðóìåíòîâ:
                                                     //   TRUE  - ñêàíèðîâàíèÿ ïðîèçâîäèòñÿ íà êàæäûé èíñòðóìåíò ïî âñåì ÒÔ;
                                                     //   FALSE - ñêàíèðîâàíèÿ ïðîèçâîäèòñÿ íà êàæäûé ÒÔ ïî âñåì èíñòðóìåíòàì.
                                abScanTF,            // Ìàññèâ ñ ôëàãàìè ñêàíèðóåìûõ ÒÔ. Ìàññèâ äîëæåí èìåòü ðàçìåð íå ìåíåå 9 ÿ÷ååê.
                                WindowExpertName()); // Èìÿ ñêðèïòà-äàò÷èêà äëÿ ïåðåäà÷è ôëàãà ïðåêðàùåíèÿ îáíîâëåíèÿ ãðàôèêà è ïåðåêëþ÷åíèÿ íà äðóãîé èíñòðóìåíò èëè ÒÔ.
  for (i = 1, nBarsStart = Bars, sProgress = " "; nStart >= 1 && !IsStopped(); sProgress = sProgress + ">", i++)
   {// Ìîæíî ñäåëàòü äâóìÿ ñïîáàìè:
    // 1. Ïåðåäà¸ì â áèáëèîòåêó êîìàíäó î ïðåêðàùåíèè îáíîâëåíèÿ ãðàôèêà.
    if (nBars == Bars)
     {
      ServiceSensorLoadQuotes(WindowHandle(Symbol(), 0));
      return;
     }
    // 2. Ïåðåäà¸ì â áèáëèîòåêó êîìàíäó î ïðåêðàùåíèè îáíîâëåíèÿ ãðàôèêà.
/*    ServiceLoaderQuotesW(nBars != Bars, NULL, abScanTF, NULL);
    if (nBars == Bars) return;*/
    for (nBars = Bars; i % 10 != 0 && !IsStopped(); sProgress = sProgress + ">", i++)
     {
      RefreshRates();
      Comment("Bars = ", Bars - nBarsStart, "\n", sProgress);
      Sleep(200);
     }
    if (i % 30 == 0) sProgress = "";
   }
 }
//æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
void deinit()
 {//  ýòîé ôóíêöèè ñòàâèì ôèëüòð íà ïðè÷èíû óäàëåíèÿ ñêðèïòà. Ýòî àëüòåðíàòèâà ïîñëåäíåìó áëîêó â ôóíêöèè "start()".
  // Åñëè ïðîèñõîäèò óäàëåíèå ñêðèïòà ñ ãðàôèêà, òî çàâåðøàåì ïîòîê.  ñëó÷àÿõ çàêðûòèÿ ãðàôèêà îòêðûâàåì åãî çàíîâî.
  if (UninitializeReason() == REASON_REMOVE) ServiceLoaderQuotesW(MLQ_FINISH, NULL, abScanTF, NULL);
 }
//æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
// Ôóíêöèÿ óñòàíàâëèâàåò âêëþ÷àòåëè ñêàíèðóåìûõ ÒÔ.
void SwitchPeriod(int& abSwitchPeriod[])
 {
  int    j = 0, l = 0;
  string sTimeFrame = ""; // Ñòðîêà ñ ïåðå÷èñëåíèåì ñêàíèðóåìûõ ÒÔ.
  //----
  ArrayInitialize(abSwitchPeriod, false);                        // Èíèöèàëèçèðóåì ìàññèâ.
  for (j = 0; j < GlobalVariablesTotal() && !IsStopped(); j++)   // Èùåì ãëîáàëüíóþ ïåðåìåííóþ "glAQ_TF_...".
   {
    if (StringSubstr(GlobalVariableName(j), 0, 8) == "glAQ_TF_") // Åñëè íàøëè ãëîáàëüíóþ ïåðåìåííóþ ñ ïåðå÷èñëåíèåì ÒÔ.
     {
      sTimeFrame = GlobalVariableName(j); // Çàïîìèíàåì èìÿ ãëîáàëüíîé ïåðåìåííîé ñî ñïèñêîì ÒÔ.
      break;                              // Âûõîäèì èç öèêëà ïî ñïèñêó ãëîáàëüíûõ ïåðåìåííûõ.
     }
   }
  // Åñëè íå íàøëè ãëîáàëüíîé ïåðåìåííîé, ñêàíèðóåì âñå ÒÔ.
  if (j == GlobalVariablesTotal())
   {
    ArrayInitialize(abSwitchPeriod, true);
    return;
   }
  // Ïðîâåðÿåì íà çíà÷åíèå ãëîáàëüíîé ïåðåìåííîé.
  if (GlobalVariableGet(sTimeFrame) > 0) // Åñëè çíà÷åíèå áîëåå íóëÿ, âêëþ÷àåì ñêàíèðîâàíèå âñåõ ÒÔ äî óêàçàííîãî íîìåðà ÒÔ â ïîðÿäêå âîçðàñòàíèÿ.
   {
    switch (int(GlobalVariableGet(sTimeFrame)))
     {
      case 9: abSwitchPeriod[8] = true;
      case 8: abSwitchPeriod[7] = true;
      case 7: abSwitchPeriod[6] = true;
      case 6: abSwitchPeriod[5] = true;
      case 5: abSwitchPeriod[4] = true;
      case 4: abSwitchPeriod[3] = true;
      case 3: abSwitchPeriod[2] = true;
      case 2: abSwitchPeriod[1] = true;
      case 1: abSwitchPeriod[0] = true; break;
      default: ArrayInitialize(abSwitchPeriod, true); // Ïðè ÷èñëå 10 è áîëåå âêëþ÷àåì ñêàíèðîâàíèå âñåõ ÒÔ.
     }
    return;
   }
  // Åñëè ïîèñê íåóñïåøíûé èëè â èìåíè ÒÔ åñòü ñëîâî "ALL", òî âêëþ÷àåì âñå ÒÔ.
  if (StringLen(sTimeFrame) <= 8 || sTimeFrame == "" || StringFind(sTimeFrame, "ALL", 7) > 7)
   {
    ArrayInitialize(abSwitchPeriod, true);
    return;
   }
  // Åñëè çíà÷åíèå ãëîáàëüíîé ïåðåìåííîé íîëü, âêëþ÷àåì âûáîðî÷íîå ñêàíèðîâàííèå óñòàíîâëåííîå ïîëüçîâàòåëåì â èìåíè ãëîáàëüíîé ïåðåìåííîé.
  if (StringFind(sTimeFrame,  "M1_", 7) > 7) abSwitchPeriod[0] = true;
  if (StringFind(sTimeFrame,  "M5_", 7) > 7) abSwitchPeriod[1] = true;
  if (StringFind(sTimeFrame, "M15_", 7) > 7) abSwitchPeriod[2] = true;
  if (StringFind(sTimeFrame, "M30_", 7) > 7) abSwitchPeriod[3] = true;
  if (StringFind(sTimeFrame,  "H1_", 7) > 7) abSwitchPeriod[4] = true;
  if (StringFind(sTimeFrame,  "H4_", 7) > 7) abSwitchPeriod[5] = true;
  if (StringFind(sTimeFrame,  "D1_", 7) > 7) abSwitchPeriod[6] = true;
  if (StringFind(sTimeFrame,  "W1_", 7) > 7) abSwitchPeriod[7] = true;
  if (StringFind(sTimeFrame, "MN1_", 7) > 7) abSwitchPeriod[8] = true;
 }
//æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ

Comments