MT4 गोल्ड EA में सप्ताहांत पर कोई लॉग नहीं है, क्या यह अटक गया है? पहले कोटेशन और टाइमर इवेंट में अंतर करें
OnTick चार्ट प्रतीक के नए कोटेशन पर निर्भर करता है, OnTimer के लिए प्रोग्राम को सब्सक्राइब करना आवश्यक है। इवेंट प्रवेश बिंदु, लॉग स्थान और पुनः-इनिशियलाइज़ेशन रिकॉर्ड के अनुसार जाँच करें, बाज़ार बंद होने पर आउटपुट न होने को सीधे खराबी न मानें।
लेखक: थॉमस|MT4 व्यावहारिक अनुभव|14 नवंबर 2026
सारांश: सप्ताहांत पर टर्मिनल खोलने पर EA इंटरफ़ेस तो दिखता है लेकिन लंबे समय तक कोई नया लॉग नहीं होता, केवल इस घटना से यह नहीं मानना चाहिए कि प्रोग्राम अटक गया है। जाँच में सबसे पहले यह स्पष्ट करें कि प्रोग्राम किस इवेंट से ट्रिगर होता है, क्या वह वास्तव में उस प्रवेश बिंदु पर लॉग प्रिंट करेगा, और फिर टर्मिनल की स्थिति जाँचें। यह लेख लाइव ऑर्डर देकर प्रोग्राम का परीक्षण नहीं करता, और फ़्लोचार्ट को किसी EA के परीक्षण पास होने का प्रमाण नहीं मानता।
नया कोटेशन न होने पर कोटेशन इवेंट नहीं हो सकता
MetaQuotes के आधिकारिक MQL4 दस्तावेज़ के अनुसार, EA के संलग्न चार्ट प्रतीक को नया कोटेशन मिलने पर ही संबंधित NewTick इवेंट उत्पन्न होता है और सही ढंग से घोषित OnTick हैंडलर फ़ंक्शन कॉल होता है। यदि प्रोग्राम जाँच और लॉग दोनों इसी प्रवेश बिंदु में लिखता है, तो नए कोटेशन न होने की अवधि में नया निष्पादन रिकॉर्ड नहीं हो सकता।
इसका अर्थ यह नहीं कि सभी EA को कोटेशन की प्रतीक्षा करनी ही होगी। प्रोग्राम टाइमर या चार्ट इवेंट जैसे प्रवेश बिंदुओं का भी उपयोग कर सकता है। इसलिए "सप्ताहांत" देखकर सभी मौन को एक ही तरह से नहीं समझाया जा सकता, और यह भी नहीं माना जा सकता कि किसी अन्य प्रतीक के अभी भी अपडेट होने से वर्तमान गोल्ड चार्ट को निश्चित रूप से कोटेशन मिल रहा है।
पहले पहचानें कि प्रोग्राम किस इवेंट की प्रतीक्षा कर रहा है

चित्र मूल शैक्षिक फ़्लोचार्ट संकेत है, वास्तविक बाज़ार नहीं, और वास्तविक ट्रेडिंग खाता भी नहीं दिखाता। पहला पथ चार्ट प्रतीक के नए कोटेशन पर निर्भर करता है; दूसरा पथ प्रोग्राम के सफलतापूर्वक टाइमर सब्सक्राइब करने पर निर्भर करता है। टाइमर इवेंट जाँच लॉजिक को ट्रिगर कर सकता है, लेकिन इसका अर्थ यह नहीं कि वर्तमान बाज़ार में ट्रेड निष्पादित हो सकता है, प्रोग्राम को अभी भी ट्रेडिंग शर्तों और डेटा की वैधता जाँचनी होती है।
आधिकारिक सुझाव है कि इनिशियलाइज़ेशन के समय टाइमर सब्सक्राइब करें और अनलोड के समय रद्द करें। केवल OnTimer फ़ंक्शन लिखना, लेकिन सब्सक्राइब न करना, यह सिद्ध नहीं करता कि यह आवधिक रूप से चलेगा। फ़ंक्शन का नाम, पैरामीटर और रिटर्न प्रकार भी इवेंट हैंडलिंग आवश्यकताओं के अनुरूप होना चाहिए, किसी भी वर्तनी त्रुटि से अपेक्षित प्रवेश बिंदु कॉल नहीं हो सकता।
सामान्य उपयोगकर्ता चरण-दर-चरण कैसे जाँच करें
पहले खाता, सर्वर, चार्ट प्रतीक नाम और वर्तमान कनेक्शन स्थिति जाँचें, पुष्टि करें कि सही टर्मिनल देखा जा रहा है। अंतिम कोटेशन समय और प्लेटफ़ॉर्म ट्रेडिंग समय रिकॉर्ड करें, कंप्यूटर घड़ी को सर्वर बाज़ार समय का विकल्प न बनाएँ। सप्ताहांत पर सामान्य बाज़ार बंद होने का अर्थ यह भी नहीं कि अन्य उत्पादों की ट्रेडिंग व्यवस्था पूरी तरह समान है, विशिष्ट प्लेटफ़ॉर्म की घोषणा को मानक मानें।
फिर Experts और Journal आदि संबंधित लॉग देखें, अंतिम कुछ इनिशियलाइज़ेशन, अनलोड या त्रुटि रिकॉर्ड सहेजें। लॉग फ़िल्टर, तारीख और क्या किसी अन्य टर्मिनल को देखा गया, इस पर ध्यान दें। यदि EA स्वयं केवल ट्रेडिंग शर्तें पूरी होने पर प्रिंट करता है, तो नया रिकॉर्ड न होना केवल प्रिंट शर्त पूरी न होने का परिणाम हो सकता है, इससे यह सिद्ध नहीं होता कि प्रोग्राम कभी चला ही नहीं।
इसके बाद जाँचें कि EA विवरण में आवधिक जाँच, हार्टबीट आउटपुट या सप्ताहांत रखरखाव तंत्र शामिल है या नहीं। स्रोत कोड न होने पर संस्करण, पैरामीटर, चार्ट प्रतीक, अंतिम कोटेशन समय और लॉग प्रदाता को जाँच के लिए दें, यह अनुमान न लगाएँ कि सभी उत्पाद एक ही इवेंट संरचना का उपयोग करते हैं।
स्रोत कोड होने पर पहले क्या सत्यापित करें
सिम्युलेशन वातावरण में OnInit, OnTick, OnTimer आदि प्रवेश बिंदुओं की घोषणा और आवश्यक सब्सक्रिप्शन जाँचें, और उचित आवृत्ति के डायग्नोस्टिक लॉग से वास्तविक पथ की पुष्टि करें। लॉग में इवेंट प्रकार, प्रतीक और डेटा समय रिकॉर्ड कर सकते हैं, केवल "सामान्य" लिखकर समीक्षा योग्य संदर्भ न छोड़ें। खाता पासवर्ड या अन्य क्रेडेंशियल डायग्नोस्टिक आउटपुट में न लिखें।
टर्मिनल चलना, चार्ट लोड होना, इवेंट ट्रिगर होना और ट्रेड निष्पादन अलग-अलग स्तर हैं। टाइमर का आउटपुट जारी रहना यह सिद्ध नहीं करता कि बाज़ार डेटा ताज़ा है, और यह भी नहीं कि ऑर्डर निश्चित रूप से भेजा जा सकता है। कोटेशन इवेंट ट्रिगर न होने पर, ट्रेडिंग अनुमतियाँ ढीली करके या बार-बार ऑर्डर सबमिट करके यह सत्यापित न करें कि प्रोग्राम जीवित है या नहीं।
बार-बार पीरियड बदलना जाँच में बाधा क्यों डाल सकता है
आधिकारिक दस्तावेज़ के अनुसार, चार्ट प्रतीक या पीरियड परिवर्तन, इनपुट पैरामीटर परिवर्तन में अनलोड और पुनः-इनिशियलाइज़ेशन शामिल होता है। बार-बार बदलने से मूल समस्या नई इनिशियलाइज़ेशन प्रक्रिया से छिप सकती है, और प्रोग्राम की स्थिति पुनः लोड भी हो सकती है। पहले लॉग और पैरामीटर सहेजें, फिर विवरण के अनुसार सुरक्षित वातावरण में सत्यापित करें, न कि बार-बार EA दोबारा लगाकर देखें कि क्या यह कभी-कभी ठीक हो जाता है।
विभिन्न EA में पोज़िशन रिकवरी, वेरिएबल स्थायित्व और दोहरे ऑर्डर से सुरक्षा का कार्यान्वयन अलग होता है। यह लेख पुनः लोड की सुरक्षा की गारंटी नहीं देता, और वास्तविक एक्सपोज़र होने पर बिना सोचे-समझे अनलोड या रीस्टार्ट करने की सलाह नहीं देता। किसी भी रखरखाव कार्रवाई से पहले स्पष्ट करें कि पोज़िशन कौन प्रबंधित करता है।
कैसे तय करें कि जाँच पूरी हो गई है
यदि पुष्टि हो गई है कि वर्तमान प्रतीक का नया कोटेशन नहीं है, लॉजिक केवल कोटेशन प्रवेश बिंदु में है, और कोई अन्य त्रुटि प्रमाण नहीं है, तो इसे बाज़ार की प्रतीक्षा के रूप में रिकॉर्ड करें, न कि यह घोषित करें कि प्रोग्राम ठीक हो गया है। यदि टाइमर प्रवेश बिंदु को चलना चाहिए था लेकिन लगातार कोई आउटपुट नहीं है, तो सब्सक्रिप्शन, इनिशियलाइज़ेशन परिणाम और प्रोग्राम त्रुटियों की जाँच जारी रखें, बाज़ार बंद होने से सब कुछ न समझाएँ।
कोटेशन बहाल होने के बाद भी पहले टाइमस्टैम्प और स्थिति जाँचें, फिर पुष्टि करें कि प्रोग्राम नए इवेंट को अपेक्षा के अनुसार संसाधित करता है। इवेंट बहाली यह सिद्ध नहीं करती कि ट्रेडिंग रणनीति में लाभ लाभ है, ऑर्डर अभी भी स्प्रेड, स्लिपेज और निष्पादन जोखिम का सामना करते हैं। जाँच का लक्ष्य यह पता लगाना है कि प्रोग्राम वास्तव में किस स्तर पर रुका है, न कि लाइव ट्रेडिंग के जोखिम से उत्तर प्राप्त करना।