//+------------------------------------------------------------------+ //| s-ReConnect.mq4 | //| Copyright © 2009, Talex | //| talex.kaliningrad@gmail.com | //+------------------------------------------------------------------+ // // ÂÍÈÌÀÍÈÅ!!! // Ïåðåïîäêëþ÷àåìûé ñ÷åò äîëæåí áûòü â îêíå "Èçáðàííîå", ñàìûì âåðõíèì #property copyright "Copyright © 2009, Talex" #property link "talex.kaliningrad@gmail.com" #import "user32.dll" int GetAncestor (int hWnd, int gaFlags); int GetDlgItem (int hDlg, int nIDDlgItem); int GetLastActivePopup (int hWndOwner); int PostMessageA (int hWnd, int Msg, int wParam, int lParam); #import #define WM_COMMAND 0x0111 #define WM_KEYDOWN 0x0100 #define VK_HOME 0x24 #define VK_ENTER 0x0D int Pause=15000; // ïàóçà 15 ñåêóíä //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ void start() { bool flag=true; //------------------------------------ while(!IsStopped()) { Comment("ReConnect"); if(!flag) { Print("Ñîåäèíåíèå âîññòàíîâëåíî. Âðåìÿ ÄÖ: ",TimeToStr(TimeCurrent())); Comment("ReConnect\nÑîåäèíåíèå âîññòàíîâëåíî.\nÂðåìÿ ÄÖ: ",TimeToStr(TimeCurrent())); flag=true; } while(!IsConnected()&&!IsStopped()) { // åñëè ñîåäèíåíèÿ íåò if(flag) { Print("Íåò ñîåäèíåíèÿ ñ ñåðâåðîì. Âðåìÿ ÄÖ: ",TimeToStr(TimeCurrent())); Comment("ReConnect\nÍåò ñîåäèíåíèÿ ñ ñåðâåðîì.\nÂðåìÿ ÄÖ: ",TimeToStr(TimeCurrent())); flag=false; } Rescan(); // ïåðåñêàíèðóåì ñåðâåðû Sleep(Pause); // ïîäîæäåì êîííåêòà if(!IsConnected()) { // åñëè ñîåäèíåíèÿ íåò Reconnect(); // ïåðåïîäêëþ÷àåì ñ÷åò Sleep(Pause); // ïîäîæäåì êîííåêòà } } Sleep(60000); } Comment(""); return; } //+------------------------------------------------------------------+ //-----------------------------------------------------------------------+ // Ôóíêöèÿ ïîçâîëÿåò ïåðåñêàíèðîâàòü ñåðâåðû + //-----------------------------------------------------------------------+ void Rescan() { int hwindow=GetAncestor(WindowHandle(Symbol(),Period()),2);// ïîëó÷àåì õåíäë ãëàâíîãî îêíà //----------------------------------- Comment("ReConnect\n...ïåðåñêàíèðóåì ñåðâåðû"); if(hwindow!=0) { // íàøëè ãëàâíîå îêíî PostMessageA(hwindow,WM_COMMAND,37400,0); // ïîñûëàåì ñîîáùåíèå "ïåðåñêàíèðîâàòü ñåðâåðû" } else Print("Rescan Error:",GetLastError()); return; } //-----------------------------------------------------------------------+ //-----------------------------------------------------------------------+ // Ôóíêöèÿ ïîçâîëÿåò ïåðåïîäêëþ÷èòüñÿ ê ñ÷åòó + //-----------------------------------------------------------------------+ void Reconnect() { int hwindow=WindowHandle(Symbol(),Period()), // ïîëó÷àåì õåíäë îêíà ãðàôèêà hterminal=GetAncestor(hwindow,2); // ïîëó÷àåì õåíäë ãëàâíîãî îêíà //---------------------------- Comment("ReConnect\n...ïåðåïîäêëþ÷àåì àêêàóíò"); if(hterminal!=0) { // íàøëè ãëàâíîå îêíî hwindow=GetDlgItem(hterminal,0xE81C); hwindow=GetDlgItem(hwindow,0x52); hwindow=GetDlgItem(hwindow,0x8A70); // íàøëè Èçáðàííîå îêíà Íàâèãàòîð PostMessageA(hwindow,WM_KEYDOWN,VK_HOME,0); // âåðõíÿÿ ñòðî÷êà çàêëàäêè Èçáðàííîå îêíà Íàâèãàòîð PostMessageA(hwindow,WM_KEYDOWN,VK_ENTER,0); // íàæàëè ëîãèí Sleep(1000); // âûæäàëè hwindow=GetLastActivePopup(hterminal); // íàøëè ôîðìó ëîãèíà PostMessageA(hwindow,WM_KEYDOWN,VK_ENTER,0); // çàëîãèíèëèñü } else Print("Reconnect Error:",GetLastError()); return; } //-----------------------------------------------------------------------+
Sample
Analysis
Market Information Used:
Indicator Curves created:
Indicators Used:
Custom Indicators Used:
user32
Order Management characteristics:
Other Features: