Miscellaneous
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 Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---