ZG_All_Quotings_3_20401

Author: Copyright � Zhunko, getch
Miscellaneous
It opens Message Boxes to the userUses files from the file systemIt writes information to fileIt plays sound alertsIt writes information to file
0 Views
0 Downloads
0 Favorites
ZG_All_Quotings_3_20401
//+-----------------------------------------------------------------------------------------------------------+
//|                                                                                ZG_All_Quotings 3.20401.mq4|
//|24.09.2008 - 05.02.2014                                                         Copyright © Zhunko, getch  |
//+-----------------------------------------------------------------------------------------------------------+
//| Ñêðèïò ñîçäàí íà áàçå ñêðèïòà "Market Watch" îò getch.                                                    |
//| Âûðàæàþ ñâî¸ âîñõèùåíèå íåñòàíäàðòíîìó ïîäõîäó getch!                                                     |
//|                                                                 Zhunko                                    |
//+-----------------------------------------------------------------------------------------------------------+
//| Ñêàíèðîâàíèå âñåõ ÒÔ ñ îáíîâëåíèåì îêîí îòêðûòûõ ãðàôèêîâ çàïèñü â ôàéë íàçâàíèé è òîðãîâûõ óñëîâèé âñåõ  |
//|ñèìâîëîâ èç îêíà"Îáçîð ðûíêà". Òàêèì îáðàçîì, ñêðèïò ïîäêà÷èâàåò èñòîðèþ ïî âñåì èíñòðóìåíòàì òåðìèíàëà    |
//|ñàìûì "æ¸ñòêèì" ñïîñîáîì.                                                                                  |
//| Åñëè ïðè ýòîì ñïîñîáå ïîäêà÷êè èñòîðèÿ íå ïðèõîäèò, òî ýòî ïðîáëåìà ñî ñòîðîíû ñåðâåðà áðîêåðà.           |
//+-----------------------------------------------------------------------------------------------------------+
//| ÓÏÐÀÂËÅÍÈÅ ÑÊÐÈÏÒÎÌ ÏÐÎÈÇÂÎÄÈÒÑß ×ÅÐÅÇ ÃËÎÁÀËÜÍÛÅ ÏÅÐÅÌÅÍÍÛÅ.                                             |
//| glAQ_StartTool - Íîìåð èíñòðóìåíòà â ñïèñêå, ñ êîòîðîãî íà÷í¸òñÿ ñêàíèðîâàíèå. Èçìåíåíèå ýòîé ïåðåìåííîé  |
//|                  íàäî ïðîèçâîäèòü äî íà÷àëà ðàáîòû ñêðèïòà.                                               |
//| glAQ_Pause     - Ïàóçà â ñåêóíäàõ ìåæäó èòåðàöèÿìè. Èçìåíåíèå ýòîé ïåðåìåííîé ïðîèçâîäèòñÿ äî íà÷àëà      |
//|                  ðàáîòû ñêðèïòà è â ïðîöåññå ðàáîòû ñêðèïòà.                                              |
//| glAQ_TF_M1_M5_ - Âêëþ÷åíèå ïîäêà÷êè ïî âûáðàííûì ïåðèîäàì. Ãëîáàëüíàÿ ïåðåìåííàÿ ñîçäà¸òñÿ âðó÷íóþ â îêíå |
//|                  ãëîáàëüíûõ ïåðåìåííûõ äî çàïóñêà èëè âî âðåìÿ ðàáîòû ñêðèïòà. Ïîä÷¸ðêèâàíèå â êîíöå èìåíè|
//|                  íåîáõîäèìî äëÿ èäåíòèôèêàöèè ïîñëåäíåãî ÒÔ.                                              |
//|                  Äëÿ ïîäêà÷êè ïî âñåì ïåðèîäàì ïåðåìåííóþ ìîæíî íå ñîçäàâàòü èëè ñîçäàòü ñ òàêèì èìåíåì:  |
//|                  glAQ_TF_ALL. Ïîñëå çàâåðøåíèÿ ðàáîòû ñêðèïòà ïåðåìåííàÿ íàçûâàåòñÿ - glAQ_TF_ALL. Åñëè   |
//|                  çíà÷åíèå ïåðåìåííîé áîëåå íóëÿ, âêëþ÷àåòñÿ ñêàíèðîâàíèå âñåõ ÒÔ äî óêàçàííîãî íîìåðà ÒÔ â|
//|                  ïîðÿäêå âîçðàñòàíèÿ. Ïðè ýòîì èìÿ ïåðåìåííîé äëÿ âûáîðî÷íîãî ñêàíèðîâàíèÿ èãíîðèðóåòñÿ.  |
//+-----------------------------------------------------------------------------------------------------------+
//| 1.Èçìåíåíèÿ â ZG_All Quotings 1-81013 îò 13.10.2008.                                                      |
//| 1.1.Òåïåðü ñêðèïò ïåðåä íà÷àëîì ðàáîòû óäàëÿåò çà ñîáîé íåóäàë¸ííûå ãëîáàëüíûå ïåðåìåííûå ïîñëå           |
//|     àâàðèéíîãî çàâåðøåíèÿ äëÿ áåçîøèáî÷íîé ðàáîòû.                                                        |
//| 1.2.Ñ ïîìîùüþ ãëîáàëüíîé ïåðåìåííîé "glAQ_StartTool" ìîæíî çàäàòü íîìåð èíñòðóìåíòà â ñïèñêå, ñ êîòîðîãî  |
//|     íà÷í¸òñÿ ñêàíèðîâàíèå. Ýòà ãëîáàëüíàÿ ïåðåìåííàÿ ñîçäàþòñÿ ïîñëå ïåðâîãî âêëþ÷åíèÿ è íå óäàëÿåòñÿ ïî  |
//|     îêîí÷àíèè ðàáîòû ñêðèïòà.                                                                             |
//| 1.3. ëåâîì âåðõíåì óãëó ãðàôèêà ñ çàãðóæåííûì ñêðèïòîì ïîÿâëÿåòñÿ ñòðîêà ñ íîìåðîì íàçâàíèåì è ÒÔ        |
//|     òåêóùåãî èíñòðóìåíòà. Ïðè àâàðèéíîì çàâåðøåíèè ýòî ïîìîæåò íà÷àòü ñëåäóþùåå ñêàíèðîâàíèå ñ ïîñëåäíåãî |
//|     îòñêàíèðîâàííîãî èíñòðóìåíòà.                                                                         |
//| 2.Èçìåíåíèÿ â ZG_All Quotings 1-81018 îò 18.10.2008.                                                      |
//| 2.1.Ñ ïîìîùüþ ãëîáàëüíîé ïåðåìåííîé "glAQ_Pause" ìîæíî çàäàòü ïàóçó ìåæäó âûçîâàìè ôóíêöèé API â ïðîöåññå |
//|     ðàáîòû ñêðèïòà.                                                                                       |
//| 2.2.Ñ ïîìîùüþ ãëîáàëüíîé ïåðåìåííîé "glAQ_CasualPause" ìîæíî çàäàòü ðåæèì ïàóçû ìåæäó âûçîâàìè ôóíêöèé    |
//|     API â ïðîöåññå ðàáîòû ñêðèïòà.                                                                        |
//| 2.3. ëåâîì âåðõíåì óãëó ãðàôèêà ïåðâîé ñòðîêîé îòîáðàæàåòñÿ òåêóùàÿ ïàóçà.                               |
//| 2.4. ëåâîì âåðõíåì óãëó ãðàôèêà ïîñëåäíèìè ñòðîêàìè îòîáðàæàþòñÿ íå ñêàíèðîâàííûå èíñòðóìåíòû.           |
//| 3.Èçìåíåíèÿ â ZG_All Quotings 1-90207 îò 07.02.2009.                                                      |
//| 3.1.Èçìåí¸í òåêñò, çàïèñûâàåìûé â ëîãôàéë. Òåêñò òåïåðü íà àíãëèéñêîì ÿçûêå.                              |
//| 3.2.Èäåíòèôèêàöèÿ çàïèñåé â ëîãôàéëå ïðîèçâîäèòñÿ ïî èìåíè ñåðâåðà.                                       |
//| 3.3.Îïòèìèçèðîâàí êîä.                                                                                    |
//| 4.Èçìåíåíèÿ â ZG_All Quotings 1-90321 îò 21.03.2009.                                                      |
//| 4.1.Ñäåëàí ïîâòîð ñêàíèðîâàíèÿ îøèáî÷íî íåñêàíèðîâàííîãî èíñòðóìåíòà.                                     |
//| 4.2.Ââåäåíî îæèäàíèå ñâÿçè ñ èíòåðíåòîì â ñëó÷àÿõ ðàçðûâà ñâÿçè.                                          |
//| 4.3.Ïðîèçâîäèòñÿ ïîâòîð ñêàíèðîâàíèÿ èíñòðóìåíòà, åñëè ïðåðâàëàñü ñâÿçü ñ èíòåðíåòîì.                     |
//| 4.4.Òåïåðü îøèáî÷íî îòêðûòîå îêíî çàêðûâàåòñÿ.                                                            |
//| 4.5. êîììåíòàðèé çàïèñûâàåòñÿ èíñòðóìåíò îøèáî÷íî îòêðûòîãî îêíà, à íå ïðåäûäóùèé èíñòðóìåíò, êàê ðàíåå. |
//| 5.Èçìåíåíèÿ â ZG_All Quotings 1-90405 îò 05.04.2009.                                                      |
//| 5.1.Ââåäåíî ïðåäóïðåæäåíèå ïîëüçîâàòåëÿ îá íåîáõîäèìîñòè ïåðåêëþ÷èòü ÒÔ ãðàôèêà äëÿ èñïîëíåíèÿ ñêðèïòà.   |
//| 6.Èçìåíåíèÿ â ZG_All Quotings 1-91023 îò 23.10.2009.                                                      |
//| 6.1.Ñäåëàí âûâîä êîìåíòàðèåâ ñî ñ÷¸ò÷èêîì âðåìåíè ïðè ðàçðûâå ñâÿçè ñ èíòåðíåòîì.                         |
//| 6.2.Óâåëè÷åíà íà䏿íîñòü îòêðûòèÿ îêîí.                                                                   |
//| 6.3.Óáðàí ñïèñîê è ñ÷¸ò÷èê îøèáî÷íî îòêðûòûõ îêîí.                                                        |
//| 6.4.Ñäåëàíà çàïèñü â ôàéë íàçâàíèÿ ïîñëåäíåãî ñêàíèðîâàííîãî èíñòðóìåíòà è åãî íîìåðà.                    |
//| 6.5.Ñäåëàí òàéìåð âðåìåíè ïðåäïîëîæèòåëüíîãî êîíöà ðàáîòû ñêðèïòà.                                        |
//| 6.6.Óäàëåíà îïöèÿ âêëþ÷åíèÿ ñëó÷àéíîé ïàóçû.                                                              |
//| 7.Èçìåíåíèÿ â ZG_All Quotings 2-00106 îò 06.01.2010.                                                      |
//| 7.1.Óâåëè÷èíà íà䏿íîñòü çàïóñêà ñêðèïòà íà ÎÑ "Windows 7".                                               |
//| 7.2.Èñïðàâëåíà îøèáêà çàïèñè ëîãôàéëà.                                                                    |
//| 8.Èçìåíåíèÿ â ZG_All Quotings 2-00224 îò 24.02.2010.                                                      |
//| 8.1.Äîáàâëåíî óïðàâëåíèå àâòîíàæàòèåì íà êíîïêó "Home" ñ îòêëþ÷åíèåì êíîïêè àâòîñêðîëëèíãà c ïîìîùüþ      |
//|     ãëîáàëüíîé ïåðåìåííîé "glAQ_AutoHome". Ýòà ãëîáàëüíàÿ ïåðåìåííàÿ ñîçäàþòñÿ ïîñëå ïåðâîãî âêëþ÷åíèÿ è  |
//|     íå óäàëÿåòñÿ ïî îêîí÷àíèè ðàáîòû ñêðèïòà.                                                             |
//| 8.2.Ñäåëàíà âèçóàëèçàöèÿ ïîäêà÷êè èñòîðèè.                                                                |
//| 9.Èçìåíåíèÿ â ZG_All Quotings 2-00303 îò 03.03.2010.                                                      |
//| 9.1.Ñäåëàíà îïöèÿ âûáîðà ñêàíèðóåìûõ ÒÔ ÷åðåç èìÿ ãëîáàëüíîé ïåðåìåííîé "glAQ_TF_ALL".                    |
//| 9.2.Îòìåíåíî óïðàâëåíèå àâòîíàæàòèåì êíîïêè "Home".                                                       |
//|10.Èçìåíåíèÿ â ZG_All Quotings 2-00317 îò 17.03.2010.                                                      |
//|10.1.Ñäåëàí áîëåå íà䏿íàÿ îñòàíîâêà ñêàíèðîâàíèÿ ïðè îòñóòñòâèè ñâÿçè ñ ñåðâåðîì.                         |
//|10.2.Ñäåëàí ïîèñê ñòðîêè "ALL" â íàçâàíèè ãëîáàëüíîé ïåðåìåííîé âî âñ¸ì èìåíè.                             |
//|10.3.Ñäåëàí âûáîð ñêàíèðîâàíèÿ ïî çíà÷åíèþ ãëîáàëüíîé ïåðåìåííîé "glAQ_TF_ALL". Åñëè çíà÷åíèå ïåðåìåííîé   |
//|     áîëåå íóëÿ, âêëþ÷àåòñÿ ñêàíèðîâàíèå âñåõ ÒÔ äî óêàçàííîãî íîìåðà ÒÔ â ïîðÿäêå âîçðàñòàíèÿ. Ïðè ýòîì   |
//|     èìÿ ïåðåìåííîé äëÿ âûáîðî÷íîãî ñêàíèðîâàíèÿ èãíîðèðóåòñÿ.                                             |
//|11.Èçìåíåíèÿ â ZG_All_Quotings 2.00910 îò 10.09.2010.                                                      |
//|11.1.Ïåðåä çàïóñêîì ñêðèïò óäàëÿåò âñå ñâîè òåõíè÷åñêèå ãëîáàëüíûå ïåðåìåííûå.                             |
//|12.Èçìåíåíèÿ â ZG_All_Quotings 2.01026 îò 26.10.2010.                                                      |
//|12.1.Ïîâûøåíà íà䏿íîñòü áëîêà êîíòðîëÿ èçìåíåíèÿ çàêà÷åííîé èñòîðèè.                                      |
//|13.Èçìåíåíèÿ â ZG_All_Quotings 3.01107 îò 07.11.2010.                                                      |
//|13.1.WinAPI ôóíêöèè çàìåíåíû íà ôóíêöèè èç áèáëèîòåêè "ServicesMT4.dll", ÷òî ïîçâîëèëî óâåëè÷èòü ñêîðîñòü è|
//|     íà䏿íîñòü ñêðèïòà.                                                                                   |
//|13.2.Ñîêðàùåíî êîëè÷åñòâî ñëóæåáíûõ ãëîáàëüíûõ ïåðåìåííûõ.                                                 |
//|13.3.Èçìåíåíèå ïîëîæåíèÿ îêîí "Îáçîð ðûíêà" è "Íàâèãàòîð" íå âëèÿþò íà ðàáîòó ñêðèïòà.                     |
//|13.4.Òåïåðü ïðè ðàáîòå ñêðèïòà ìîæíî ïðîèçâîäèòü ëþáûå äåéñòâèÿ â òåðìèíàëå.                               |
//|13.5.Óäàëåíèå ñêàíèðóåìîãî îêíà ïðèâîäèò ê ïîâòîðíîìó åãî îòêðûòèþ è ñêàíèðîâàíèþ.                         |
//|13.6.Ïðåêðàòèòü ðàáîòó ñêðèïòà ìîæíî òîëüêî òðåìÿ ñïîñîáàìè (óäàëåíèå ñêðèïòà ñ ãðàôèêà, çàêðûòèåì îêíà    |
//|     ãðàôèêà ñêðèïòà, çàêðûòèåì ÌÒ4).                                                                      |
//|13.7.Ñäåëàíà èíòåëëåêòóàëüíàÿ ïàóçà. ×åì ÷àùå ðàçðûâû ñâÿçè ñ èíòåðíåòîì, òåì áîëüøå ñòàíîâèòüñÿ ïàóçà.    |
//|     Ïðè íîðìàëèçàöèè ñâÿçè, ïàóçà âîññòàíàâëèâàåòñÿ.                                                      |
//|13.8.Ñäåëàí êîíòðîëü íà "ìóñîðíóþ" èñòîðèþ â íà÷àëå òàéìñåðèè.                                             |
//|13.9.Ñäåëàíà ïîñòîÿííàÿ çàïèñü â ëîã-ôàéë ñêàíèðóåìûõ ñåðâåðîâ, èíñòðóìåíòîâ è ÒÔ.                         |
//|14.Èçìåíåíèÿ â ZG_All_Quotings 3.01108 îò 08.11.2010.                                                      |
//|14.1.Ñäåëàí áîëåå ñòðîãèé àíàëèç èìåíè ãëîáàëüíîé ïåðåìåííîé äëÿ ñêàíèðîâàíèÿ âûáîðî÷íûõ ÒÔ.               |
//|15.Èçìåíåíèÿ â ZG_All_Quotings 3.01202 îò 02.12.2010.                                                      |
//|15.1.Èñïðàâëåíà îøèáêà â áèáëèîòåêå "ServicesMT4.dll". Íà íåêîòîðûõ ÎÑ íå ðàáîòàëè ôóíêöèè îñíîâàííûå íà   |
//|     ïîèñêå îêíà ïî èìåíè êëàññà.                                                                          |
//|16.Èçìåíåíèÿ â ZG_All_Quotings 3.10425 îò 25.04.2011.                                                      |
//|16.1.Îòêðûòèå ãðàôèêà ñêàíèðóåìîãî èíñòðóìåíòà çàìåíåíî íà çàìåíó èíñòðóìåíòà íà óæå îòêðûòîì ãðàôèêå.     |
//|17.Èçìåíåíèÿ â ZG_All_Quotings 3.10914 îò 14.09.2011.                                                      |
//|17.1.Ïîäêëþ÷åíà íîâàÿ âåðñèÿ áèáëèîòåêè "ServicesMT4.dll".                                                 |
//|17.2.Èçìåíåíà ðàáîòà ñ ãëîáàëüíîé ïåðìåííîé ïàóçû.                                                         |
//|18.Èçìåíåíèÿ â ZG_All_Quotings 3.20401 îò 01.04.2012.                                                      |
//|18.1.Ïîäêëþ÷åíà íîâàÿ âåðñèÿ áèáëèîòåêè "ServicesMT4.dll".                                                 |
//|18.2.Èñïðàâëåíî çàâåðøåíèå ðàáîòû ñêðèïòà ïðè ìíîæåñòâåííîì çàïóñêå â ðàçíûõ òåðìèíàëàõ.                   |
//|     Ðàíåå ïðè çàâåðøåíèå ñêðèïòà èíîãäà àâàðèéíî âûãðóæàëñÿ òåðìèíàë                                      |
//|18.3.Èñïðàâëåíà îøèáêà çàïèñè ñïåöèôèêàöèé èíñòðóìåíòîâ â ôàéë.                                            |
//|18.4.Äëÿ ôàéëîâ ñêðèïòà ñäåëàí ñâîé êàòàëîã ñ èìåíåì ñêðèïòà.                                              |
//+-----------------------------------------------------------------------------------------------------------+
#property copyright "Copyright © Zhunko, getch"
#property link      "vadim@zhunko.ru"

#include <ServicesMT.mqh> // Çàãîëîâî÷íûé ôàéë áèáëèîòåêè "ServicesMT4.dll" ñåðâèñíûõ ôóíêöèé ÌÒ4.

// Ñèñòåìíûå êîíñòàíòû.
#define IDOK             1
#define IDCANCEL         2
#define IDYES            6
#define IDNO             7
#define MB_OK            0x00000000
#define MB_YESNOCANCEL   0x00000003
#define MB_ICONQUESTION  0x00000020
#define MB_ICONWARNING   0x00000030
#define VK_HOME	         0x24

// Ãëîáàëüíûå ïåðåìåííûå.
int    g_hwndChart = -1;                // Äåñêðèïòîð îêíà ãðàôèêà.
string g_sPathName = "ZG_All_Quotings\\"; // Èìÿ êàòàëîãà äëÿ ôàéëîâ ñêðèïòà.
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
void deinit()
 {
  if (g_hwndChart != NULL && GlobalVariableGet("glAQ_FileWrite") == IDCANCEL)
   {
//    ServiceSetActiveChart(g_hwndChart); // Àêòèâèðóåì ãðàôèê ïåðåä çàêðûòèåì.
//    ServiceCloseChart(g_hwndChart);     // Çàêðûëè îêíî ïîñëåäíåãî ãðàôèêà.
   }
 }
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
void start()
 {
  bool     bIsChart = true;               // Ôëàã çàêðûòèÿ ñêàíèðóåìîãî ãðàôèêà.
  datetime tDelta = 0;                    // Ñðåäíåå ïðèðàùåíèå, íà êîòîðîå óâåëè÷èâàåòñÿ èòåðàöèÿ îñíîâíîãî öèêëà.
  datetime tDiffer_0 = 0;                 // Ðàçíèöà âî âðåìåíè ìåæäó 0-é è 1-é èòåðàöèÿìè îñíîâíîãî öèêëà.
  datetime tDiffer_k = 0;                 // Ðàçíèöà âî âðåìåíè ìåæäó 0-é è k-1 èòåðàöèÿìè îñíîâíîãî öèêëà.
  datetime tElapsed = 0;                  // Îòðàáîòàííîå ñêðèïòîì âðåìÿ.
  datetime tEnd = 0;                      // Âðåìÿ êîíöà îñíîâíîãî öèêëà.
  datetime tStart = 0;                    // Âðåìÿ íà÷àëà îñíîâíîãî öèêëà.
  datetime tSum = 0;                      // Ñóììàðíîå ïðåäïîëîæèòåëüíîå âðåìÿ âûïîëíåíèÿ îñíîâíîãî öèêëà.
  int      i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, p = 0; // Ïåðåìåííûå äëÿ ñ÷¸ò÷èêîâ è öèêëîâ.
  int      nCount = 0;                    // Êîëè÷åñòâî èíñòðóìåíòîâ â ñïèñêå.
  int      hFile = -1;                    // Ñèñòåìíûé äåñêðèïòîð ôàéëà.
  int      nBars = 0;                     // Êîëè÷åñòâî áàðîâ íà ãðàôèêå.
  int      nQuestion = 0;                 // Îòâåò íà âîïðîñ îêíà.
  int      nPause = 0;                    // Òåõíè÷åñêàÿ ïàóçà â ìèëëèñåêóíäàõ.
  int      nPauseStep = 250;              // Øàã óâåëè÷åíèÿ ïàóçû.
  int      nStart = 0;                    // Íîìåð ïåðâîãî èíñòðóìåíòà â îêíå, ñ êîòîðîãî íà÷í¸òñÿ ñêàíèðîâàíèå.
  int      nTF = 0;                       // Íîìåð ÒÔ, ñ êîòîðîãî íà÷í¸òñÿ ñêàíèðîâàíèå ïîñëå âîññòàíîâëåíèÿ ñâÿçè ñ èíòåðíåòîì.
  string   sConnected = "";               // Êîìåíòàðèè ñ ïðåäóïðåæäåíèåì î ðàçðûâå ñâÿçè ñ èíòåðíåòîì.
  string   sProgress = "";                // Ïðîãðåññáàð.
  string   sLastRecord = "";              // Ïîñëåäíÿÿ çàïèñü â ôàéëå î ïîñëåäíåì ñêàíèðîâàííîì èíñòðóìåíòå.
  string   sBufNameTool = "_           "; // Èìÿ èíñòðóìåíòà.
  string   sSpaceNumber = "";             // Ïðîáåëû ïåðåä íîìåðîì èíñòðóìåíòà äëÿ âûðàâíèâàíèÿ ïðè çàïèñè â ëîã-ôàéë.
  string   sSpaceStringTF = "";           // Ïðîáåëû ïåðåä ñòðîêîé ÒÔ äëÿ âûðàâíèâàíèÿ ïðè çàïèñè â ëîã-ôàéë.
  string   sSpaceTool = "";               // Ïðîáåëû ïîñëå èíñòðóìåíòà äëÿ âûðàâíèâàíèÿ ïðè çàïèñè â ëîã-ôàéë.
  string   sStatusAutoHome = "";          // Ñòàòóñ âêëþ÷åíèÿ ïîäêà÷êè ãëóáèíû èñòðèè.
  string   sTimer = "";	                  // Âðåìÿ òàéìåðà.
  // Ìàññèâû.
  bool   abSwitchPeriod[9] = {false};
  int    aiPeriod[9] = {1, 5, 15, 30, 60, 240, 1440, 10080, 43200};
  string asStringTF[10] = {"M1", "M5", "M15", "M30", "H1", "H4", "D1", "W1", "MN1", ""};
  //õõõõ Ïîâòîðíûå çàïóñêè ñêðèïòà. õõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxõõõ
  if (GlobalVariableCheck("glAQ_IsScript")) // Çàïóñòèëè íå ïåðâûé ðàç.
   {
    if (GlobalVariableGet("glAQ_FileWrite") == IDYES) WriteSymbolTXT(); // Çàïèñûâàåì â áëîêíîò.
    if (GlobalVariableGet("glAQ_FileWrite") == IDNO) WriteSymbolCSV();  // Çàïèñûâàåì â CSV-ôàéë.
    GlobalVariableDel("glAQ_Start");                                    // Ïðèçíàê çàâåðø¸ííîãî ñêðèïòà - îòñóòñòâèå ãëîáàëüíîé ïåðåìåííîé.
   }
  //õõõõ Ïåðâûé çàïóñê ñêðèïòà. õõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxõõõ
  else
   {//==== Ïîäãîòîâêà âû÷èñëåíèé. ========================================================================================================================================================================================================
    GlobalVariableDel("glAQ_FileWrite");  // Óäàëÿåì ãëîáàëüíûå ïåðåìåííûå íà âñÿêèé ñëó÷àé.
    //---- Âîïðîñ ïîëüçîâàòåëþ ïðî çàïèñü â ôàéë ðåçóëüòàòîâ. ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    nQuestion = MessageBox("ÏÐÎÈÇÂÎÄÈÒÜ ÇÀÏÈÑÜ Â ÔÀÉË ÍÀÇÂÀÍÈÉ ÈÍÑÒÐÓÌÅÍÒÎÂ È ÒÎÐÃÎÂÛÕ ÓÑËÎÂÈÉ?" + 
                           "\n\nÅñëè ôàéë íóæåí â ôîðìàòå \"*.TXT\", íàæèìèòå \"ÄÀ\"." + 
                           "\nÅñëè ôàéë íóæåí â ôîðìàòå \"*.CSV\", íàæèìèòå \"ÍÅÒ\"." + 
                           "\nÅñëè ôàéë íå íóæåí, íàæèìèòå \"ÎÒÌÅÍÀ\".", WindowExpertName(), MB_YESNOCANCEL|MB_ICONQUESTION);
    if (nQuestion == IDYES) FileClose(FileOpen(g_sPathName + AccountServer() + ".txt", FILE_BIN|FILE_WRITE)); // Îòêðûâàåì îáíóëÿÿ ôàéë.
    if (nQuestion == IDNO)
     {
      hFile = FileOpen(g_sPathName + AccountServer() + ".csv", FILE_CSV|FILE_WRITE);
      FileWrite(hFile, "SYMBOL", "POINT", "DIGITS", "SPREAD", "STOPLEVEL", "LOTSIZE", "TICKVALUE", "TICKSIZE",
                       "SWAPLONG", "SWAPSHORT", "TRADEALLOWED", "MINLOT", "LOTSTEP", "MAXLOT", "STARTING", "EXPIRATION",
                       "Bar in M1", "Bar in M5", "Bar in M15", "Bar in M30", "Bar in H1", "Bar in H4", "Bar in D1", "Bar in W1", "Bar in MN1");
      FileClose(hFile);
     }
    //---- Ïðèñâàèâàåì çíà÷åíèÿ ãëîáàëüíûì ïåðåìåííûì. -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    GlobalVariableSet("glAQ_FileWrite", nQuestion);
    GlobalVariableSet("glAQ_IsScript", 1);
    if (!GlobalVariableCheck("glAQ_Pause")) GlobalVariableSet("glAQ_Pause", 1.0); // Åñëè ãëîáàëüíîé ïåðåìåííîé ñ ïàóçîé íå ñóùåñòâóåò, ñîçäà¸ì å¸.
    //---- Âû÷èñëåíèå äëèíû ñïèñêà â îêíå "Îáçîð ðûíêà". ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    nCount = ServiceGetNumberTools(); // Ïîëó÷èëè êîëè÷åñòâî ýëåìåíòîâ ñïèñêà.
    if (nCount == 0) // Åñëè íå óäàëîñü ïîëó÷èòü êîëè÷åñòâî èíñòðóìåíòîâ â ñïèñêå, òî çàâåðøàåì ñêðèïò.
     {
      Comment("Êîëè÷åñòâî èíñòðóìåíòîâ â ñïèñêå íå èçâåñòíî.");
      return;
     }
    //---- Âûÿñíÿåì íîìåð ïåðâîãî èíñòðóìåíòà â îêíå, ñ êîòîðîãî íà÷í¸ì. -----------------------------------------------------------------------------------------------------------------------------------------------------------------
    if (GlobalVariableCheck("glAQ_StartTool"))
     {
      nStart = GlobalVariableGet("glAQ_StartTool");
      if (nStart < 1) nStart = 1;
     }
    else nStart = 1;
    //==== Ïîäãîòîâêà. ===================================================================================================================================================================================================================
    hFile = FileOpen(g_sPathName + AccountServer() + ".log", FILE_BIN|FILE_READ|FILE_WRITE|FILE_ANSI); // Çàïèñûâàåì ëîã-ôàéë.
    FileSeek(hFile, 0, SEEK_END);                                                                      // Ïèøåì â êîíåö ôàéëà.
    for (g_hwndChart = NULL; g_hwndChart == NULL;) g_hwndChart = ServiceOpenChartByIndexW(0, "", 0);   // Îòêðûëè ãðàôèê ïåðâîãî ñèìâîëà èç îêíà "Îáçîð ðûíêà".
    if (g_hwndChart != NULL) ServiceSetAutoScroll(g_hwndChart, false);                                 // Îòêëþ÷àåì àâòîñêðîëëèíã.
    //==== Öèêë ïî èíñòðóìåíòàì. =========================================================================================================================================================================================================
    for (i = nStart, k = 0, p = 0, nTF = 0, tStart = GetTickCount(), bIsChart = true; i <= nCount && !IsStopped(); i++, k++, tStart = tEnd, tEnd = GetTickCount())
     {//---- Êîíòðîëëèðóåì ïàóçó ïîëüçîâàòåëÿ. -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      if (GlobalVariableGet("glAQ_Pause") <= 0.25) GlobalVariableSet("glAQ_Pause", 0.251);
      nPause = 1000 * GlobalVariableGet("glAQ_Pause"); // Ïîëó÷àåì ïàóçó.
      //---- Ðàñ÷¸ò òàéìåðà îñòàâøåãîñÿ âðåìåíè äî çàâåðøåíèÿ ðàáîòû ñêðèïòà. ------------------------------------------------------------------------------------------------------------------------------------------------------------
      switch(k)
       {
        case 0: tDiffer_0 = tStart; break;           // Çàïîìèíàåì âðåìÿ ñòàðòà öèêëà.
        case 1: tDiffer_0 = tEnd - tDiffer_0; break; // Âû÷èñëÿåì âðåìÿ âûïîëíåíèÿ ïåðâîé èòåðàöèè.
        default:
         {
          tDiffer_k = tEnd - tStart;                                          // Âû÷èñëÿåì âðåìÿ âûïîëíåíèÿ òåêóùåé èòåðàöèè.
          tDelta = (tDiffer_k - tDiffer_0) / (k - 1);                         // Ñðåäíåå ïðèðàùåíèå, íà êîòîðîå óâåëè÷èâàåòñÿ èòåðàöèÿ îñíîâíîãî öèêëà.
          tSum = tDiffer_0 * nCount + tDelta * nCount * (0.5 * (nCount + 1)); // Ñóììàðíîå ïðåäïîëîæèòåëüíîå âðåìÿ âûïîëíåíèÿ îñíîâíîãî öèêëà.
          tElapsed = (i - 1) * (tDiffer_0 + tDelta * (0.5 * i));              // Îòðàáîòàííîå ñêðèïòîì âðåìÿ.
          sTimer = "\nTIMER    " + TimeToStr((tSum - tElapsed) / 1000, TIME_MINUTES|TIME_SECONDS); // Âðåìÿ òàéìåðà.
         }
       }
      //---- Ìåíÿåì èíñòðóìåíò ãðàôèêà. --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      if (!bIsChart) // Åñëè ãðàôèê ñëó÷àéíî çàêðûò, îòêðûâàåì åãî çàíîâî.
       {
        for (g_hwndChart = NULL; g_hwndChart == NULL;) g_hwndChart = ServiceOpenChartByIndexW(i - 1, sBufNameTool, 12); // Îòêðûëè ãðàôèê ïåðâîãî ñèìâîëà èç îêíà "Îáçîð ðûíêà".
        if (g_hwndChart != NULL) ServiceSetAutoScroll(g_hwndChart, false);                                              // Îòêëþ÷àåì àâòîñêðîëëèíã.
       }
      else sBufNameTool = ServiceSymbolByLineW(i - 1);                                                            // Ïîëó÷àåì èìÿ èíñòðóìåíòà èç òåêóùåé ñòðîêè "Îáçîð ðûíêà".
      if (g_hwndChart != NULL) ServiceSetToolChartIndexPeriodW(g_hwndChart, sBufNameTool, 0);                     // Óñòàíàâëèâàåì èíñòðóìåíò ãðàôèêà.
      Comment("Pause = ", nPause / 1000.0, " sec.\nCurrent Tool in \"Market Watch\":\n", i, ".\nBars: ", sTimer); // Ïîêàçûâàåì â êîììåíòàðèÿõ íîìåð èíñòðóìåíòà è ïàóçó.
      Sleep(200);                                                                                                 // Ôîðìèðîâàíèå çàäåðæêè.
      // Åñëè âûáðàíû êíîïêè "Äà" èëè "Íåò", òî çàïóñêàåì ñêðèïò íà îòêðûòîì ãðàôèêå.
      if (nQuestion == IDYES || nQuestion == IDNO)
       {
        GlobalVariableSet("glAQ_Start", true);                                               // Ïðèçíàê çàïóùåííîãî ñêðèïòà.
        if (g_hwndChart != NULL) ServiceLoadScriptW(g_hwndChart, WindowExpertName(), false); // Çàïóñêàåì ñêðèïò äî óñïåøíîãî çàïóñêà.
        while (GlobalVariableCheck("glAQ_Start") && !IsStopped()) Sleep(200);                // Æä¸ì âûãðóçêè ñêðèïòà.
       }
      //---- Ïîäãîòîâêà çàïèñè â ëîã-ôàéë. -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      for (n = 3 - StringLen(i + ""), sSpaceNumber = " " + i; n >= 0; n--) sSpaceNumber = " " + sSpaceNumber;             // Ïðîáåëû ïåðåä íîìåðîì èíñòðóìåíòà äëÿ âûðàâíèâàíèÿ ïðè çàïèñè â ëîã-ôàéë.
      for (n = 12 - StringLen(sBufNameTool), sSpaceTool = " " + sBufNameTool; n >= 0; n--) sSpaceTool = sSpaceTool + " "; // Ïðîáåëû ïîñëå èíñòðóìåíòà äëÿ âûðàâíèâàíèÿ ïðè çàïèñè â ëîã-ôàéë.
      for (n = nTF, sSpaceStringTF = " "; n >= 0; n--) sSpaceStringTF = sSpaceStringTF + "     ";                         // Ïðîáåëû ïåðåä ñòðîêîé ÒÔ äëÿ âûðàâíèâàíèÿ ïðè çàïèñè â ëîã-ôàéë.
      FileWrite(hFile, TimeToStr(TimeLocal(), TIME_DATE|TIME_MINUTES|TIME_SECONDS) + "  " + AccountServer() + sSpaceNumber + sSpaceTool + sSpaceStringTF);
      FileFlush(hFile); // Ñêèäûâàåì íà äèñê.
      //---- Ïåðåêëþ÷åíèå ÒÔ è îáíîâëåíèå îêíà. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      SwitchPeriod(abSwitchPeriod); // Îïðåäåëÿåì ñêàíèðóåìûå ÒÔ.
      for (j = nTF, bIsChart = true; j < 9 && bIsChart && !IsStopped(); j++)
       {// Ïðîïóñêàåì îòêëþ÷¸ííûå ÒÔ.
        if (!abSwitchPeriod[j]) continue;
        if (g_hwndChart != NULL) ServiceSetTimeframeByIndex(g_hwndChart, j); // Óñòàíàâëèâàåì ÒÔ.
        for (nBars = -1; (nBars != iBars(sBufNameTool, aiPeriod[j]) || nBars <= 0) && bIsChart && !IsStopped() && IsConnected();)
         {// Çàìåðÿåì êîëè÷åñòâî áàðîâ íà ãðàôèêå. Ïðîâåðÿåì íàëè÷èå îêíà. Åñëè îêíî çàêðûëîñü ïî êàêîé-ëèáî ïðè÷èíå, âûõîäèì èç âñåõ öèêëîâ.
          for (l = 0, m = 0, sProgress = " ", nBars = iBars(sBufNameTool, aiPeriod[j]); l < 5 && bIsChart && !IsStopped() && IsConnected(); l++, sProgress = sProgress + ">", bIsChart = ServiceIsChart(g_hwndChart), m++)
           {
            nPause = 1000 * GlobalVariableGet("glAQ_Pause"); // Ïîëó÷àåì ïàóçó.
            if (g_hwndChart != NULL)
             {
              ServiceTickIndicators(g_hwndChart);        // Îáíîâëÿåì îêíî.
              ServiceChartKeyDown(g_hwndChart, VK_HOME); // Íàæèìàåì êíîïêó "Home".
             }
            RefreshRates();
            Comment("Pause = ", nPause / 1000.0, " sec.\nCurrent Tool in \"Market Watch\":\n", i, ". ", sBufNameTool, " ", asStringTF[j], "\nBars: ", iBars(sBufNameTool, aiPeriod[j]), sProgress, sTimer);
            if (m % 30 == 0) sProgress = " ";
            Sleep(nPause / 5);
           }
          Comment("Pause = ", nPause / 1000.0, " sec.\nCurrent Tool in \"Market Watch\":\n", i, ". ", sBufNameTool, " ", asStringTF[j], "\nBars: ", iBars(sBufNameTool, aiPeriod[j]), sProgress, sTimer);
         }
        Comment("Pause = ", nPause / 1000.0, " sec.\nCurrent Tool in \"Market Watch\":\n", i, ".\nBars: ", sTimer); // Î÷èùàåì êîìåíòàðèè îò òåêóùåãî èíñòðóìåíòà.
        if (!IsConnected()) break;
        if (StringLen(asStringTF[j]) == 2) FileWrite(hFile, asStringTF[j] + "   "); // Ïðîáåëû ïîñëå ÒÔ äëÿ âûðàâíèâàíèÿ ïðè çàïèñè â ëîã-ôàéë.
        else FileWrite(hFile, asStringTF[j] + "  "); // Áåç ïðîáåëîâ.
        FileFlush(hFile); // Ñêèäûâàåì íà äèñê.
       }
      FileWrite(hFile, "\r\n");
      FileFlush(hFile); // Ñêèäûâàåì íà äèñê.
      //---- Êîíòðîëü íà íàëè÷èå ñîåäèíåíèÿ ñ èíòåðíåòîì. --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      if (IsConnected()) // Åñëè ñâÿçü åñòü.
       {
        p = 0;                  // Îáíóëÿåì ñ÷¸ò÷èê ïîâòîðíûõ ðàçðûâîâ ñâÿçè.
        if (bIsChart) nTF = 0;  // Íîìåð ÒÔ, ñ êîòîðîãî íà÷í¸òñÿ ñêàíèðîâàíèå ïîñëå âîññòàíîâëåíèÿ ñâÿçè ñ èíòåðíåòîì. Óñòàíàâëèâàåì ñ ñàìîãî íà÷àëà.
        else                    // Åñëè ñêàíèðóåìûé ãðàôèê áûë ñëó÷àéíî çàêðûò.
         {
          i--;                  // Ïîâòîðÿåì ñêàíèðîâàíèå ïîñëåäíåãî èíñòðóìåíòà.
          nTF = j - 1;          // Íîìåð ÒÔ, ñ êîòîðîãî íà÷í¸òñÿ ñêàíèðîâàíèå ïîñëå âîññòàíîâëåíèÿ ñâÿçè ñ èíòåðíåòîì. Óñòàíàâëèâàåì ñ ìîìåíòà ðàçðûâà ñâÿçè íà òîò æå ÒÔ.
          if (nTF < 0) nTF = 0; // Çàùèòà îò îòðèöàòåëüíîãî çíà÷åíèÿ.
         }
        if (nPause > 1000 * GlobalVariableGet("glAQ_Pause")) nPause -= nPauseStep; // Óìåíüøàåì ïàóçó.
       }
      else // Ñâÿçè ñ ñåðâåðîì íåò.
       {
        i--;                  // Åñëè îáíàðóæåí ðàçðûâ ñâÿçè, òî ïîâòîðÿåì ñêàíèðîâàíèå ïîñëåäíåãî èíñòðóìåíòà.
        p++;                  // Óâåëè÷èâàåì ñ÷¸ò÷èê ïîâòîðíûõ ðàçðûâîâ ñâÿçè.
        nTF = j - 1;          // Íîìåð ÒÔ, ñ êîòîðîãî íà÷í¸òñÿ ñêàíèðîâàíèå ïîñëå âîññòàíîâëåíèÿ ñâÿçè ñ èíòåðíåòîì. Óñòàíàâëèâàåì ñ ìîìåíòà ðàçðûâà ñâÿçè íà òîò æå ÒÔ.
        nPause += nPauseStep; // Óâåëè÷èâàåì ïàóçó.
        if (p > 3)
         {
          PlaySound("Eto_vsio.wav");
          ServiceChartKeyDown(g_hwndChart, VK_HOME); // Íàæèìàåì êíîïêó "Home".
          if (MessageBox("Âîçìîæíî, â ôàéëå èñòîðèè \"" + sBufNameTool + aiPeriod[j] + ".hst\" èñïîð÷åíî íà÷àëî èñòîðèè.\n" +
                         "Îòêðîéòå àðõèâ êîòèðîâîê (F2), íå çàêðûâàÿ ýòî îêíî.\n" +
                         "Ñ ïîìîùüþ ðåäàêòîðà èñòîðèè óäàëèòå íåïðàâèëüíûå áàðû â íà÷àëå òàéìñåðèè.\n" +
                         "Çà òåì, çàêðîéòå ýòî îêíî. Ñêàíèðîâàíèå ïðîäîëæèòñÿ.",
                         WindowExpertName(), MB_OK|MB_ICONWARNING) == IDOK) p = 0; // Îáíóëÿåì ñ÷¸ò÷èê ïîâòîðíûõ ðàçðûâîâ ñâÿçè.
         }
       }
      //---- Îñòàíàâëèâàåì âûïîëíåíèå îñíîâíîãî öèêëà ïî èíñòðóìåíòàì äî ïîÿâëåíèÿ ñâÿçè ñ èíòåðíåòîì. -----------------------------------------------------------------------------------------------------------------------------------
      for (j = 1; !IsConnected() && !IsStopped(); j++, sProgress = sProgress + ">")
       {
        sConnected = "Ðàçðûâ ñâÿçè ñ ñåðâåðîì!!!\nÎæèäàåì âîçîáíîâëåíèÿ ñâÿçè ñ ñåðâåðîì: " + j; // Ôîðìèðóåì êîìåíòàðèè.
        Comment(sConnected, "\n", sProgress);
        if (j % 20 == 0)
         {// Ïåðåñêàíèðóåì ñåðâåðà íà êàæäîé 20 ñåêóíäå.
          ServiceRescanServers();
          sProgress = "";
         }
        Sleep(1000);
       }
     }
    //==== Çàêëþ÷èòåëüíûå îïåðàöèè â êîíöå ðàáîòû ñêðèïòà. ===============================================================================================================================================================================
    FileClose(hFile);                       // Çàêðûâàåì ëîã-ôàéë.
    ServiceSetActiveChart(g_hwndChart);     // Àêòèâèðóåì ãðàôèê ïåðåä çàêðûòèåì.
    ServiceCloseChart(g_hwndChart);         // Çàêðûëè îêíî ïîñëåäíåãî ãðàôèêà.
    GlobalVariablesDeleteAll("glAQ_");      // Óäàëÿåì âñå ãëîáàëüíûå ïåðåìåííûå.
    GlobalVariableSet("glAQ_StartTool", 1); // Ñîçäà¸ì ãëîáàëüíóþ ïåðåìåííóþ óïðàâëåíèÿ ñòàðòîì è óñòàíàâëèâàåì å¸ çíà÷åíèå â íà÷àëî ñïèñêà.
    GlobalVariableSet("glAQ_TF_ALL", 0);    // Ñîçäà¸ì ãëîáàëüíóþ ïåðåìåííóþ äëÿ âêëþ÷åíèÿ âûáîðî÷íîãî ñêàíèðîâàíèÿ ÒÔ.
    GlobalVariableSet("glAQ_Pause", 1);     // Ñîçäà¸ì ãëîáàëüíóþ ïåðåìåííóþ äëÿ óñòàíîâêè ïàóçû.
    if (nQuestion == IDYES) // Åñëè âûáðàíû êíîïêè "Äà", òî çàïèñûâàåì â áëîêíîò.
     {// Çàïèñûâàåì â ôàéë êîëè÷åñòâî ñèìâîëîâ â îêíå "Îáçîð ðûíêà".
      hFile = FileOpen(g_sPathName + AccountServer() + ".txt", FILE_BIN|FILE_READ|FILE_WRITE|FILE_ANSI);
      FileSeek(hFile, 0, SEEK_END); // Ïèøåì â êîíåö ôàéëà.
      FileWrite(hFile, "\r\n===================================================" +
                       "\r\nServer: " + AccountServer() +
                       "\r\nAmount tools in window \"Market Watch\": " + nCount + " pieces" +
                       "\r\nDate of the last scan: " + TimeToStr(TimeLocal(), TIME_DATE|TIME_MINUTES|TIME_SECONDS) + "\r\n");
      FileClose(hFile);
     }
    // Åñëè âûáðàíû êíîïêà "Íåò", òî çàïèñûâàåì â CSV-ôàéë.
    if (nQuestion == IDNO)
     {// Çàïèñûâàåì â ôàéë êîëè÷åñòâî ñèìâîëîâ â îêíå "Îáçîð ðûíêà".
      hFile = FileOpen(g_sPathName + AccountServer() + ".csv", FILE_CSV|FILE_READ|FILE_WRITE|FILE_ANSI);
      FileSeek(hFile, 0, SEEK_END);
      FileWrite(hFile, "Server: " + AccountServer() +
                       "\nAmount tools in window \"Market Watch\": " + nCount + " pieces" +
                       "\nDate of the last scan: " + TimeToStr(TimeLocal(), TIME_DATE|TIME_MINUTES|TIME_SECONDS));
      FileClose(hFile);
     }
    PlaySound("AllRight.wav"); // Ïðèêîëüíûé çâóê çàâåðøåíèÿ ðàáîòû ñêðèïòà.
   }
 }
//ææææææææææææææææææ
//ææææ Ôóíêöèè. ææææ
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
//==== Ôóíêöèÿ óñòàíàâëèâàåò âêëþ÷àòåëè ñêàíèðóåìûõ ÒÔ. ==================================================================================================================================================================================
void SwitchPeriod(bool& abSwitchPeriod[]) // Ìàññèâ âêëþ÷àòåëåé ÒÔ.
 {
  int    j = 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 (StringSubstr(sTimeFrame, StringLen(sTimeFrame) - 1) != "_")
   {
    GlobalVariableSet(sTimeFrame + "_", GlobalVariableGet(sTimeFrame)); // Ñîçäà¸ì íîâóþ ãëîáàëüíóþ ïåðåìåííóþ ñ ñèìâîëîì ïîä÷¸ðêèâàíèÿ â êîíöå ñòðîêè.
    GlobalVariableDel(sTimeFrame); // Óäàëÿåì ñòàðóþ ãëîáàëüíóþ ïåðåìåííóþ.
    sTimeFrame = sTimeFrame + "_"; // Èñïðàâëåííîå èìÿ ãëîáàëüíîé ïåðåìåííîé ñî ñïèñêîì ñêàíèðóåìûõ ÒÔ.
   }
  // Ïðîâåðÿåì íà çíà÷åíèå ãëîáàëüíîé ïåðåìåííîé.
  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;
 }
//==== Ôóíêöèÿ çàïèñûâàåò ñâîéñòâà òåêóùåãî òîðãîâîãî ñèìâîëà â ôàéë ôîðìàòà "*.TXT". ====================================================================================================================================================
void WriteSymbolTXT()
 {
  int    hFile = NULL;
  int    i = 0;
  string MarketInf[20];
  //----
  for (i = 0; i < 20; i++) MarketInf[i] = ""; // Èíèöèàëèçèðóåì ìàññèâ.
  //----
  MarketInf[0]  = "==================== " + Symbol() + " =====================";
  MarketInf[1]  = "Point      = " + DoubleToStr(MarketInfo(Symbol(), MODE_POINT), 5);
  MarketInf[2]  = "Digits     = " + DoubleToStr(MarketInfo(Symbol(), MODE_DIGITS), 0);
  MarketInf[3]  = "Spread     = " + DoubleToStr(MarketInfo(Symbol(), MODE_SPREAD), 1);
  MarketInf[4]  = "StopLevel  = " + DoubleToStr(MarketInfo(Symbol(), MODE_STOPLEVEL), 1);
  MarketInf[5]  = "Lot Size   = " + DoubleToStr(MarketInfo(Symbol(), MODE_LOTSIZE), 2);
  MarketInf[6]  = "Tick Value = " + DoubleToStr(MarketInfo(Symbol(), MODE_TICKVALUE), 4);
  MarketInf[7]  = "Tick Size  = " + DoubleToStr(MarketInfo(Symbol(), MODE_TICKSIZE), 5);
  MarketInf[8]  = "Swap Long  = " + DoubleToStr(MarketInfo(Symbol(), MODE_SWAPLONG), 5);
  MarketInf[9]  = "Swap Short = " + DoubleToStr(MarketInfo(Symbol(), MODE_SWAPSHORT), 5);
  MarketInf[10]  = "------ The Amount Bar In TF. ------";
  MarketInf[11] = "Bar in M1  = " + iBars(Symbol(), 1);
  MarketInf[12] = "Bar in M5  = " + iBars(Symbol(), 5);
  MarketInf[13] = "Bar in M15 = " + iBars(Symbol(), 15);
  MarketInf[14] = "Bar in M30 = " + iBars(Symbol(), 30);
  MarketInf[15] = "Bar in H1  = " + iBars(Symbol(), 60);
  MarketInf[16] = "Bar in H4  = " + iBars(Symbol(), 240);
  MarketInf[17] = "Bar in D1  = " + iBars(Symbol(), 1440);
  MarketInf[18] = "Bar in W1  = " + iBars(Symbol(), 10080);
  MarketInf[19] = "Bar in MN1 = " + iBars(Symbol(), 43200);
  //----
  hFile = FileOpen(g_sPathName + AccountServer() + ".txt", FILE_READ|FILE_WRITE|FILE_BIN);
  FileSeek(hFile, 0, SEEK_END);
  FileWriteArray(hFile, MarketInf, 0, 20);
  FileClose(hFile);
  ArrayResize(MarketInf, 0); // Óíè÷òîæàåì ìàññèâ íà âñÿêèé ñëó÷àé.
 }
//==== Ôóíêöèÿ çàïèñûâàåò ñâîéñòâà òåêóùåãî òîðãîâîãî ñèìâîëà â ôàéë ôîðìàòà "*.CSV". ====================================================================================================================================================
void WriteSymbolCSV()
 {
  int hFile = FileOpen(g_sPathName + AccountServer() + ".csv", FILE_CSV|FILE_READ|FILE_WRITE);
  FileSeek(hFile, 0, SEEK_END);
  FileWrite(hFile, Symbol(),
                     MarketInfo(Symbol(), MODE_POINT),
                     MarketInfo(Symbol(), MODE_DIGITS),
                     MarketInfo(Symbol(), MODE_SPREAD),
                     MarketInfo(Symbol(), MODE_STOPLEVEL),
                     MarketInfo(Symbol(), MODE_LOTSIZE),
                     MarketInfo(Symbol(), MODE_TICKVALUE),
                     MarketInfo(Symbol(), MODE_TICKSIZE),
                     MarketInfo(Symbol(), MODE_SWAPLONG),
                     MarketInfo(Symbol(), MODE_SWAPSHORT),
                     MarketInfo(Symbol(), MODE_TRADEALLOWED),
                     MarketInfo(Symbol(), MODE_MINLOT),
                     MarketInfo(Symbol(), MODE_LOTSTEP),
                     MarketInfo(Symbol(), MODE_MAXLOT),
                     MarketInfo(Symbol(), MODE_STARTING),
                     MarketInfo(Symbol(), MODE_EXPIRATION),
                     iBars(Symbol(), 1),
                     iBars(Symbol(), 5),
                     iBars(Symbol(), 15),
                     iBars(Symbol(), 30),
                     iBars(Symbol(), 60),
                     iBars(Symbol(), 240),
                     iBars(Symbol(), 1440),
                     iBars(Symbol(), 10080),
                     iBars(Symbol(), 43200));
  //----
  FileClose(hFile);
 }
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

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