0
Views
0
Downloads
0
Favorites
ZG_All Quotings 1-90405
//+-----------------------------------------------------------------------------------------------------------+
//| ZG_All Quotings 1-90405.mq4|
//|24.09.2008 - 05.04.2009 Copyright © Zhunko, getch |
//+-----------------------------------------------------------------------------------------------------------+
//| Ñêðèïò ñîçäàí íà áàçå ñêðèïòà "Market Watch" îò getch. |
//| Âûðàæàþ ñâî¸ âîñõèùåíèå íåñòàíäàðòíîìó ïîäõîäó getch! |
//| Zhunko |
//+-----------------------------------------------------------------------------------------------------------+
//| Ñêàíèðîâàíèå âñåõ ÒÔ ñ îáíîâëåíèåì îêîí îòêðûòûõ ãðàôèêîâ, çàïèñü â ôàéë íàçâàíèé è òîðãîâûõ óñëîâèé |
//|âñåõ ñèìâîëîâ èç îêíà "Îáçîð ðûíêà". Òàêèì îáðàçîì ñêðèïò ïîäêà÷èâàåò èñòîðèþ ïî âñåì èíñòðóìåíòàì |
//|òåðìèíàëà ñàìûì "æ¸ñòêèì" ñïîñîáîì. |
//| Åñëè ïðè ýòîì ñïîñîáå ïîäêà÷êè èñòîðèÿ íå ïðèõîäèò, òî ýòî ïðîáëåìà ñî ñòîðîíû ñåðâåðà áðîêåðà. |
//+-----------------------------------------------------------------------------------------------------------+
//| !!! ÂÎ ÂÐÅÌß ÐÀÁÎÒÛ ÑÊÐÈÏÒÀ ÍÅ ÏÐÎÈÇÂÎÄÈÒÜ ÄÅÉÑÒÂÈÉ Â ÒÅÐÌÈÍÀËÅ!!! |
//| ÂÎ ÂÐÅÌß ÐÀÁÎÒÛ ÑÊÐÈÏÒÀ ÍÅÎÁÕÎÄÈÌÎ ÂÛÃÐÓÇÈÒÜ ÁÐÀÓÇÅÐÎÏÎÄÎÁÍÛÅ ÏÐÎÃÐÀÌÌÛ. |
//+-----------------------------------------------------------------------------------------------------------+
//| ÓÏÐÀÂËÅÍÈÅ ÑÊÐÈÏÒÎÌ ÏÐÎÈÇÂÎÄÈÒÑß ×ÅÐÅÇ ÃËÎÁÀËÜÍÛÅ ÏÅÐÅÌÅÍÍÛÅ. |
//| glAQ_StartNumberFirstTool - íîìåð èíñòðóìåíòà â ñïèñêå, ñ êîòîðîãî íà÷í¸òñÿ ñêàíèðîâàíèå. Èçìåíåíèå |
//| ýòîé ïåðåìåííîé íàäî ïðîèçâîäèòü äî íà÷àëà ðàáîòû ñêðèïòà. |
//| glAQ_Pause - ïàóçà â ñåêóíäàõ ìåæäó âûçîâàìè ôóíêöèé API. Èçìåíåíèå ýòîé ïåðåìåííîé |
//| ïðîèçâîäèòñÿ â ïðîöåññå ðàáîòû ñêðèïòà. |
//| glAQ_CasualPause - âêëþ÷åíèå ñëó÷àéíîé ïàóçû ìåæäó âûçîâàìè ôóíêöèé API: 0 - âûêëþ÷åíî; |
//| 1 - âêëþ÷åíî. |
//| Äëèòåëüíîñòü ïàóçû êîëåáëåòñÿ â äèàïàçîíå îò glAQ_Pause äî |
//| (glAQ_Pause + 3 ñåêóíäû). Èçìåíåíèå ýòîé ïåðåìåííîé ïðîèçâîäèòñÿ â |
//| ïðîöåññå ðàáîòû ñêðèïòà. |
//+-----------------------------------------------------------------------------------------------------------+
//| 1.Èçìåíåíèÿ â ZG_All Quotings 1-81013 îò 13.10.2008. |
//| 1.1.Òåïåðü ñêðèïò ïåðåä íà÷àëîì ðàáîòû óäàëÿåò çà ñîáîé íåóäàë¸ííûå ãëîáàëüíûå ïåðåìåííûå ïîñëå |
//| àâàðèéíîãî çàâåðøåíèÿ äëÿ áåçîøèáî÷íîé ðàáîòû. |
//| 1.2.Ñ ïîìîùüþ ãëîáàëüíîé ïåðåìåííîé "glAQ_StartNumberFirstTool" ìîæíî çàäàòü íîìåð èíñòðóìåíòà â ñïèñêå, |
//| ñ êîòîðîãî íà÷í¸òñÿ ñêàíèðîâàíèå. Ýòà ãëîáàëüíàÿ ïåðåìåííàÿ ñîçäàþòñÿ ïîñëå ïåðâîãî âêëþ÷åíèÿ è íå |
//| óäàëÿåòñÿ ïî îêîí÷àíèè ðàáîòû ñêðèïòà. |
//| 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.Ââåäåíî ïðåäóïðåæäåíèå ïîëüçîâàòåëÿ îá íåîáõîäèìîñòè ïåðåêëþ÷èòü ÒÔ ãðàôèêà äëÿ èñïîëíåíèÿ ñêðèïòà. |
//+-----------------------------------------------------------------------------------------------------------+
#property copyright "Copyright © Zhunko, getch"
#property link "http://forum.mql4.com/ru/11241/page3"
//----
#import "user32.dll"
int GetParent (int hWnd );
int GetDlgItem (int hDlg, int nIDDlgItem);
int SendMessageA (int hWnd, int Msg, int wParam, int lParam);
int PostMessageA (int hWnd, int Msg, int wParam, int lParam);
#import
#include <WinUser32.mqh> // Çàãîëîâî÷íûé ôàéë áèáëèîòåêè "user32.dll" ôóíêöèé API Windows XP.
#define NAME_SCRIPT "ZG_All Quotings 1-90405"
//----
string FileName = "MarketWatch"; // Èìÿ ôàéëà äëÿ çàïèñè èíôîðìàöèè ïî ñèìâîëàì.
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
void start()
{
int CloseWrongWindow = 0;
int Count;
int Handle = -1;
int HandleChart;
int i, j;
int Question;
int Pause; // Òåõíè÷åñêàÿ ïàóçà â ìèëëèñåêóíäàõ.
int ErrorPostMessage;
int Start;
string NameTool = ""; // Íàçâàíèå èíñòðóìåíòà.
string NotScannedTools = "\nNot Scanned Tools:\n";
// Ìàññèâû.
int Instructions[8] = {33136, 33134, 33141, 33334, 33137, 33138, 33139, 33140};
//õõõõ Ïîâòîðíûå çàïóñêè ñêðèïòà. õõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõ
if (GlobalVariableCheck ("glAQ_SymbolHandle") == true) // Çàïóñòèëè íå ïåðâûé ðàç.
{
while (Handle <= 0 && !IsStopped()) Handle = WindowHandle (Symbol(), Period()); // Âûõîäèì èç öèêëà, òîëüêî åñëè ïîëó÷èëè äåñêðèïòîð îêíà.
GlobalVariableSet ("glAQ_SymbolHandle", Handle); // Ñèñòåìíûé äåñêðèïòîð îêíà, ãäå çàïóñòèëñÿ ñêðèïò.
GlobalVariableSet ("glAQ_Symbol " + Symbol(), 0); // Ñîçäà¸ì íîâóþ ïåðåìåííóþ ñ íàçâàíèåì èíñòðóìåíòà îêíà, ãäå çàïóñòèëñÿ ñêðèïò.
if (GlobalVariableGet ("glAQ_FileWrite") == IDYES) WriteSymbolTXT (FileName); // Çàïèñûâàåì â áëîêíîò.
if (GlobalVariableGet ("glAQ_FileWrite") == IDNO) WriteSymbolCSV (FileName); // Çàïèñûâàåì â CSV-ôàéë.
}
//õõõõ Ïåðâûé çàïóñê ñêðèïòà. õõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõ
else
{//====Ïðîâåðêà ÒÔ ãðàôèêà, íà êîòîðîì èñïîëíÿåòñÿ ñêðèïò.===============================================================================================================================================
if (Period() == 60) if (MessageBox ("Ñìåíèòå ÒÔ ãðàôèêà äëÿ èñïîëíåíèÿ\nñêðèïòà íà ëþáîé äðóãîé îòëè÷íûé îò H1.", NAME_SCRIPT, MB_OK) == IDOK) return;
//====Ïîäãîòîâêà âû÷èñëåíèé.============================================================================================================================================================================
MathSrand (TimeLocal()); // Óñòàíàâëèâàåì íà÷àëüíîå ñîñòîÿíèå äëÿ ãåíåðàöèè ñëó÷àéíûõ ÷èñåë.
//----Óäàëÿåì ãëîáàëüíûå ïåðåìåííûå íà âñÿêèé ñëó÷àé.---------------------------------------------------------------------------------------------------------------------------------------------------
GlobalVariableDel ("glAQ_FileWrite");
GlobalVariableSet ("glAQ_Pause", 0.5); // Ñîçäà¸ì ïåðåìåííóþ äëÿ óñòàíîâêè ïàóçû ìåæäó âûçîâàìè ôóíêöèé API.
GlobalVariableSet ("glAQ_CasualPause", 0); // Ñîçäà¸ì ïåðåìåííóþ äëÿ óñòàíîâêè ðåæèìà ïàóçû ìåæäó âûçîâàìè ôóíêöèé API. Ñëó÷àéíàÿ ïàóçà îòêëþ÷åíà.
//----Âîïðîñ ïîëüçîâàòåëþ ïðî çàïèñü â ôàéë ðåçóëüòàòîâ.------------------------------------------------------------------------------------------------------------------------------------------------
Question = MessageBox ("ÏÐÎÈÇÂÎÄÈÒÜ ÇÀÏÈÑÜ Â ÔÀÉË ÍÀÇÂÀÍÈÉ ÈÍÑÒÐÓÌÅÍÒÎÂ È ÒÎÐÃÎÂÛÕ ÓÑËÎÂÈÉ?" +
"\n\nÅñëè ôàéë íóæåí â ôîðìàòå \"*.TXT\", íàæèìàéòå \"ÄÀ\"." +
"\nÅñëè ôàéë íóæåí â ôîðìàòå \"*.CSV\", íàæèìàéòå \"ÍÅÒ\"." +
"\nÅñëè ôàéë íå íóæåí, íàæèìàéòå \"ÎÒÌÅÍÀ\".", NAME_SCRIPT, MB_YESNOCANCEL|MB_ICONQUESTION);
if (Question == IDYES) FileClose (FileOpen (FileName + ".txt", FILE_WRITE)); // Îòêðûâàåì îáíóëÿÿ ôàéë.
if (Question == IDNO)
{
Handle = FileOpen (FileName + ".csv", FILE_CSV|FILE_WRITE);
FileWrite (Handle, "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 (Handle);
}
//----Ïðèñâàèâàåì çíà÷åíèÿ ãëîáàëüíûì ïåðåìåííûì.-------------------------------------------------------------------------------------------------------------------------------------------------------
GlobalVariableSet ("glAQ_FileWrite", Question);
GlobalVariableSet ("glAQ_SymbolHandle", WindowHandle (Symbol(), Period()));
//----Âû÷èñëåíèå äëèíû ñïèñêà â îêíå "Îáçîð ðûíêà".-----------------------------------------------------------------------------------------------------------------------------------------------------
Handle = Parent(); // Íàøëè ãëàâíîå îêíî. Íàøëè ñïèñîê ñèìâîëîâ.
if (Handle != 0) Count = SendMessageA (GetDlgItem (GetDlgItem (GetDlgItem (Handle, 0xE81C), 0x50), 0x8A71), LVM_GETITEMCOUNT, 0, 0); // Ïîëó÷èëè êîëè÷åñòâî ýëåìåíòîâ ñïèñêà.
//----Âûÿñíÿåì íîìåð ïåðâîãî èíñòðóìåíòà â îêíå, ñ êîòîðîãî íà÷í¸ì.-------------------------------------------------------------------------------------------------------------------------------------
if (GlobalVariableCheck ("glAQ_StartNumberFirstTool") == true)
{
Start = GlobalVariableGet ("glAQ_StartNumberFirstTool");
if (Start < 1) Start = 1;
}
else Start = 1;
//====Îòêðûâàåì îêíà ñ ãðàôèêàìè.=======================================================================================================================================================================
for (i = Start; i <= Count && !IsStopped(); i++)
{//----Åñëè óñòàíîâëåí ðåæèì íå ñëó÷àéíîé ïàóçû.-------------------------------------------------------------------------------------------------------------------------------------------------------
if (GlobalVariableGet ("glAQ_CasualPause") == 0) Pause = 1000 * GlobalVariableGet ("glAQ_Pause");
OpenChart (i); // Îòêðûëè ãðàôèê î÷åðåäíîãî ñèìâîëà èç îêíà "Îáçîð ðûíêà".
PauseAndComment (i, 9, Pause, "", NotScannedTools); // Ôîðìèðîâàíèå ñëó÷àéíîé çàäåðæêè è âûâîä êîìåíòàðèåâ î òåêóùåé îïåðàöèè.
PostMessageA (Parent(), WM_COMMAND, 33042, 0); // Çàïóñòèëè íà òîëüêî, ÷òî îòêðûòîì ãðàôèêå ýòîò ñêðèïò.
PauseAndComment (i, 9, Pause, "", NotScannedTools); // Ôîðìèðîâàíèå ñëó÷àéíîé çàäåðæêè è âûâîä êîìåíòàðèåâ î òåêóùåé îïåðàöèè.
//----Âûäåëÿåì íàçâàíèå òåêóùåãî èíñòðóìåíòà èç íàçâàíèÿ ãëîáàëüíîé ïåðåìåííîé.-----------------------------------------------------------------------------------------------------------------------
for (j = 0; j < GlobalVariablesTotal(); j++)
{// Åñëè íàøëè ãëîáàëüíóþ ïåðåìåííóþ ñ íàçâàíèåì èíñòðóìåíòà ãðàôèêà.
if (StringSubstr (GlobalVariableName (j), 0, 12) == "glAQ_Symbol ")
{
NameTool = StringSubstr (GlobalVariableName (j), 12); // Íàçâàíèå òåêóùåãî èíñòðóìåíòà.
GlobalVariableDel (GlobalVariableName (j)); // Óäàëÿåì ïåðåìåííóþ.
break; // Âûõîäèì èç öèêëà ïî ñïèñêó ãëîáàëüíûõ ïåðåìåííûõ.
}
}
//----Ïîëó÷åíèå ñèñòåìíîãî äåñêðèïòîðà îòêðûòîãî îêíà.------------------------------------------------------------------------------------------------------------------------------------------------
for (HandleChart = 0; HandleChart <= 0 && !IsStopped();) // Âûõîäèì èç öèêëà, òîëüêî åñëè ïîëó÷èëè äåñêðèïòîð îêíà.
{
HandleChart = GlobalVariableGet ("glAQ_SymbolHandle"); // Îïðåäåëÿåì äåñêðèïòîð òîëüêî, ÷òî îòêðûòîãî îêíà.
Sleep (100);
}
//----Ïåðåêëþ÷åíèå ÒÔ è îáíîâëåíèå îêíà.--------------------------------------------------------------------------------------------------------------------------------------------------------------
for (j = 0; j < 9 && !IsStopped(); j++)
{
if (j != 0) // Ïåðâóþ èòåðàöèþ ïðîïóñêàåì. Ïî óìîë÷àíèþ ïåðâûé ÒÔ H1.
{
ErrorPostMessage = PostMessageA (HandleChart, WM_COMMAND, Instructions[j - 1], 0); // Óñòàíàâëèâàåì ÒÔ.
if (ErrorPostMessage == 0) // Åñëè ïåðåêëþ÷åíèå ÒÔ çàêîí÷èëîñü íåóäà÷åé äîïîëíÿåì ñïèñîê íå îòñêàíèðîâàííûõ èíñòðóìåíòîâ.
{
CloseWrongWindow++; // Ñ÷¸ò÷èê çàêðûòèÿ îøèáî÷íûõ îêîí.  ñëåäóþùåì öèêëå ïî èíñòðóìåíòàì çàêðîåì èõ.
i--; // Ïîâòîðÿåì åù¸ ðàç ñêàíèðîâàíèå ýòîãî èíñòðóìåíòà.
break; // Âûõîäèì èç öèêëà ïî ÒÔ.
}
}
PostMessageA (HandleChart, WM_COMMAND, 33324, 0); // Îáíîâëÿåì îêíî.
PauseAndComment (i, j, Pause, NameTool, NotScannedTools); // Ôîðìèðîâàíèå ñëó÷àéíîé çàäåðæêè è âûâîä êîìåíòàðèåâ î òåêóùåé îïåðàöèè.
PostMessageA (HandleChart, WM_COMMAND, 33324, 0); // Îáíîâëÿåì îêíî åù¸ ðàç.
PauseAndComment (i, j, Pause, NameTool, NotScannedTools); // Ôîðìèðîâàíèå ñëó÷àéíîé çàäåðæêè è âûâîä êîìåíòàðèåâ î òåêóùåé îïåðàöèè.
}
//----Åñëè ïåðåêëþ÷åíèå ÒÔ ïðîøëî áåç îøèáîê.---------------------------------------------------------------------------------------------------------------------------------------------------------
if (ErrorPostMessage > 0)
{
PostMessageA (GetParent (HandleChart), WM_CLOSE, 0, 0); // Çàêðûëè îêíî ãðàôèêà.
for (j = 0; j < CloseWrongWindow; j++) // Çàêðûâàåì îøèáî÷íî îòêðûòûå îêíà.
{
PostMessageA (GetParent (WindowHandle (NameTool, 60)), WM_CLOSE, 0, 0); // Çàêðûëè îêíî ïîñëåäíåãî ãðàôèêà.
if (j == (CloseWrongWindow - 1))
{
CloseWrongWindow = 0; // Îáíóëÿåì ñ÷¸ò÷èê îøèáî÷íûõ îêîí â êîíöå öèêëà.
NotScannedTools = NotScannedTools + i + ". " + NameTool + "\n"; // Çàïèñûâàåì òîëüêî îäèí ðàç íà îäíîì ãðàôèêå, åñëè ôóíêöèÿ çàâåðøèëàñü íåóäà÷íî.
}
}
}
PauseAndComment (i, 9, Pause, NameTool, NotScannedTools); // Ôîðìèðîâàíèå ñëó÷àéíîé çàäåðæêè è âûâîä êîìåíòàðèåâ î òåêóùåé îïåðàöèè.
//----Êîíòðîëü íà íàëè÷èå ñîåäèíåíèÿ ñ èíòåðíåòîì.----------------------------------------------------------------------------------------------------------------------------------------------------
if (!IsConnected()) i--; // Åñëè îáíàðóæåí ðàçðûâ ñâÿçè, òî ïîâòîðÿåì ñêàíèðîâàíèå èíñòðóìåíòà.
while (!IsConnected() && !IsStopped()) Sleep (1000); // Îñòàíàâëèâàåì âûïîëíåíèå îñíîâíîãî öèêëà ïî èíñòðóìåíòà äî ïîÿâëåíèÿ ñâÿçè ñ èíòåðíåòîì.
}
//====Çàêëþ÷èòåëüíûå îïåðàöèè â êîíöå ðàáîòû ñêðèïòà.===================================================================================================================================================
PostMessageA (GetParent (HandleChart), WM_CLOSE, 0, 0); // Çàêðûëè îêíî ïîñëåäíåãî ãðàôèêà.
GlobalVariablesDeleteAll ("glAQ_"); // Óäàëÿåì âñå ãëîáàëüíûå ïåðåìåííûå.
GlobalVariableSet ("glAQ_StartNumberFirstTool", 1); // Ñîçäà¸ì ãëîáàëüíóþ ïåðåìåííóþ óïðàâëåíèÿ ñòàðòîì è óñòàíàâëèâàåì å¸ çíà÷åíèå â íà÷àëî ñïèñêà.
if (Question == IDYES || Question == IDCANCEL) // Åñëè âûáðàíû êíîïêè "Äà" èëè "Ïðîïóñòèòü", òî çàïèñûâàåì â áëîêíîò.
{// Çàïèñûâàåì â ôàéë êîëè÷åñòâî ñèìâîëîâ â îêíå "Îáçîð ðûíêà".
Handle = FileOpen (FileName + ".txt", FILE_READ|FILE_WRITE);
FileSeek (Handle, 0, SEEK_END);
FileWrite (Handle, "===================================================" +
"\nServer: " + AccountServer() +
"\nAmount tools in window \"Market Watch\": " + Count + " pieces" +
"\nDate of the last scan: " + TimeToStr (TimeLocal(), TIME_DATE|TIME_MINUTES|TIME_SECONDS));
FileClose (Handle);
}
if (Question == IDNO) // Åñëè âûáðàíû êíîïêà "Íåò", òî çàïèñûâàåì â CSV-ôàéë.
{// Çàïèñûâàåì â ôàéë êîëè÷åñòâî ñèìâîëîâ â îêíå "Îáçîð ðûíêà".
Handle = FileOpen (FileName + ".csv", FILE_CSV|FILE_READ|FILE_WRITE);
FileSeek (Handle, 0, SEEK_END);
FileWrite (Handle, "Server: " + AccountServer() +
"\nAmount tools in window \"Market Watch\": " + Count + " pieces" +
"\nDate of the last scan: " + TimeToStr (TimeLocal(), TIME_DATE|TIME_MINUTES|TIME_SECONDS));
FileClose (Handle);
}
PlaySound ("ding_XP.wav"); // Ïðèêîëüíûé çâóê.
}
}
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
//ææææ Ôóíêöèè. ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
//==========================================================================================================================================================================================================
// Ôóíêöèÿ ôîðìèðóåò ñëó÷àéíóþ çàäåðæêó è âûâîäèò êîìåíòàðèé î òåêóùåé îïåðàöèè. ===========================================================================================================================
void PauseAndComment (int NumberTool, // Íîìåð èíñòðóìåíòà â ñïèñêå èíñòðóìåíòîâ â îêíå îáçîðà ðûíêà.
int NumberTF, // Íîìåð ÒÔ.
int Pause, // Óñòàíîâëåííàÿ ïàóçà.
string NameTool, // Èìÿ ñêàíèðóåìîãî èíñòðóìåíòà.
string NotScannedTools) // Ñïèñîê íåñêàíèðîâàííûõ èíñòðóìåíòîâ ïî îøèáêå.
{
string ArStringTF[10] = {"H1", "H4", "D1", "W1", "MN1", "M1", "M5", "M15", "M30", ""};
//----
if (GlobalVariableGet ("glAQ_CasualPause") != 0) Pause = 1000 * GlobalVariableGet ("glAQ_Pause") + MathRand() / 11; // Åñëè óñòàíîâëåí ðåæèì ñëó÷àéíîé ïàóçû.
// Ïîêàçûâàåì â êîììåíòàðèÿõ íîìåð, íàçâàíèå è ÒÔ òåêóùåãî èíñòðóìåíòà.
Comment ("Pause = ", Pause / 1000.0, " seconds.\nCurrent Tool in \"Market Watch\":\n", NumberTool, ". ", NameTool, " ", ArStringTF[NumberTF], NotScannedTools);
Sleep (Pause);
}
//==========================================================================================================================================================================================================
// Ôóíêöèÿ âîçâðàùàåò ñèñòåìíûé äåñêðèïòîð îñíîâíîãî îêíà òåðìèíàëà. =======================================================================================================================================
int Parent()
{
int Handle = -1;
int HandleParent = 0;
while (Handle <= 0 && !IsStopped()) // Âûõîäèì èç öèêëà, òîëüêî åñëè ïîëó÷èëè äåñêðèïòîð îêíà.
{
Handle = WindowHandle (Symbol(), Period()); // Ïîëó÷àåì ñèñòåìíûé äåñêðèïòîð íîâîãî îêíà.
Sleep (500); // Äåëàåì çàäåðæêó ìåæäó èòåðàöèÿìè.
}
while (!IsStopped())
{
Handle = GetParent (Handle);
if (Handle == 0) break;
HandleParent = Handle;
}
return (HandleParent);
}
//==========================================================================================================================================================================================================
// Ôóíêöèÿ îòêðûâàåò îêíî ãðàôèêà ñèìâîëà, ðàñïîëîæåííîãî â ñòðîêå íîìåð Num îêíà "Îáçîð ðûíêà". ===========================================================================================================
void OpenChart (int Num)
{
int Handle = Parent();
if (Handle != 0) // Íàøëè ãëàâíîå îêíî.
{// Íàøëè "Îáçîð ðûíêà".
Handle = GetDlgItem (GetDlgItem (GetDlgItem (Handle, 0xE81C), 0x50), 0x8A71);
PostMessageA (Handle, WM_KEYDOWN, VK_HOME,0); // Âåðõíÿÿ ñòðîêà îêíà "Îáçîð ðûíêà".
while (Num > 1 && !IsStopped())
{
PostMessageA (Handle, WM_KEYDOWN,VK_DOWN, 0); // Ñìåñòèëèñü íà íóæíóþ ñòðîêó.
Num--;
}
}
PostMessageA (Parent(), WM_COMMAND, 33160, 0); // Îòêðûëè ãðàôèê.
}
//==========================================================================================================================================================================================================
// Ôóíêöèÿ çàïèñûâàåò õàðàêòåðèñòèêà òåêóùåãî òîðãîâîãî ñèìâîëà â ôàéë ôîðìàòà "*.TXT". ====================================================================================================================
void WriteSymbolTXT (string FileName)
{
int Handle;
int i;
string MarketInf[20];
//----
for (i = 0; i < 20; i++) MarketInf[i] = ""; // Èíèöèàëèçèðóåì ìàññèâ.
//----
MarketInf[0] = "==================== " + Symbol() + " =====================";
MarketInf[1] = "Point = " + DoubleToStr (MarketInfo (Symbol(), MODE_POINT), 4);
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), 4);
MarketInf[8] = "Swap Long = " + DoubleToStr (MarketInfo (Symbol(), MODE_SWAPLONG), 2);
MarketInf[9] = "Swap Short = " + DoubleToStr (MarketInfo (Symbol(), MODE_SWAPSHORT), 2);
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);
//----
Handle = FileOpen (FileName + ".txt", FILE_READ|FILE_WRITE|FILE_BIN);
FileSeek (Handle, 0, SEEK_END);
FileWriteArray (Handle, MarketInf, 0, 20);
FileClose (Handle);
ArrayResize (MarketInf, 0); // Óíè÷òîæàåì ìàññèâ íà âñÿêèé ñëó÷àé.
}
//==========================================================================================================================================================================================================
// Ôóíêöèÿ çàïèñûâàåò õàðàêòåðèñòèêà òåêóùåãî òîðãîâîãî ñèìâîëà â ôàéë ôîðìàòà "*.CSV". ====================================================================================================================
void WriteSymbolCSV (string FileName)
{
int Handle = FileOpen (FileName + ".csv", FILE_CSV|FILE_READ|FILE_WRITE);
FileSeek (Handle, 0, SEEK_END);
FileWrite (Handle, 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 (Handle);
}
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
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
---