जब हम एक सिस्टम ट्रेडिंग (जैसे Expert Advisor (EA)) का उपयोग करते हैं, तो जैसे ही नया टिक कोट आता है, MetaTrader टर्मिनल डिफ़ॉल्ट OnTick() इवेंट हैंडलिंग फ़ंक्शन को कॉल करता है। लेकिन, नए बार (कैंडल) की शुरुआत पर कोई डिफ़ॉल्ट इवेंट हैंडलिंग फ़ंक्शन नहीं होता है।
नए बार की पहचान करने के लिए, वर्तमान में सबसे हाल के बार का ओपनिंग टाइम मॉनिटर करना जरूरी है। जब यह बदलता है, तो यह नए बार की शुरुआत का संकेत देता है, और आप इस पर प्रतिक्रिया दे सकते हैं। नीचे दिया गया उदाहरण कोड, जो MQL4 और MQL5 दोनों के साथ संगत है, इस प्रक्रिया का एक तरीका दर्शाता है:
// डिफ़ॉल्ट टिक इवेंट हैंडलर void OnTick() { // नए बार की जांच करें (MQL4 और MQL5 दोनों के लिए संगत)। static datetime dtBarCurrent = WRONG_VALUE; datetime dtBarPrevious = dtBarCurrent; dtBarCurrent = iTime( _Symbol, _Period, 0 ); bool bNewBarEvent = ( dtBarCurrent != dtBarPrevious ); // नए बार की घटना पर प्रतिक्रिया दें और इसे हैंडल करें। if( bNewBarEvent ) { // पहले टिक की पहचान करें और इसे हैंडल करें। /* उदाहरण के लिए, जब यह पहले चार्ट से जोड़ा गया है और बार अपनी प्रगति के मध्य में है और यह वास्तव में नए बार की शुरुआत नहीं है। */ if( dtBarPrevious == WRONG_VALUE ) { // पहले टिक या बार के मध्य में कुछ करें ... } else { // सामान्य बार की शुरुआत पर कुछ करें ... }; // ऊपर की स्थिति के बावजूद कुछ करें ... } else { // कुछ और करें ... }; // अन्य कार्य करें ... };
उपरोक्त कोड में, स्टैटिक वेरिएबल बार के ओपनिंग टाइम को ट्रैक करता है, यहां तक कि OnTick() फ़ंक्शन से लौटने पर भी। यह सामान्य स्थानीय वेरिएबल के विपरीत, इसकी डेटा सामग्री को याद रखता है और फ़ंक्शन छोड़ने पर इसे छोड़ता नहीं है। यह वर्तमान बार के ओपनिंग टाइम में परिवर्तन की पहचान करने की कुंजी है।
यह ध्यान रखना भी महत्वपूर्ण है कि जब EA को पहली बार चार्ट पर रखा जाता है, तो उपरोक्त कोड ऐसे प्रतिक्रिया करता है जैसे बार अभी खुला है। यदि स्थिति को अलग ढंग से हैंडल करने की आवश्यकता है, तो इस स्थिति की विशेष हैंडलिंग की आवश्यकता होती है।
कृपया ध्यान दें कि मेरी सभी CodeBase प्रकाशनों का स्रोत कोड अब MetaEditor के "Public Projects" टैब में "FMIC" नाम से उपलब्ध है।
संबंधित पोस्ट
- MQL5 विजार्ड: मॉर्निंग/इविनिंग स्टार और RSI पर आधारित ट्रेड सिग्नल
- MQL5 विजार्ड: मॉर्निंग/ईवनिंग स्टार पैटर्न और स्टोकास्टिक पर आधारित ट्रेड सिग्नल
- MetaTrader 4 के लिए विज़ुअल ऑर्डर प्रोसेसिंग - आपके ट्रेडिंग साथी
- MQL5 विजार्ड: सुबह/शाम के तारे के आधार पर ट्रेड सिग्नल + CCI के साथ एक्सपर्ट एडवाइजर
- MQL5 विजार्ड - सुबह/शाम के तारे और MFI पर आधारित ट्रेड सिग्नल