होम सिस्टम ट्रेडिंग पोस्ट

नए बार या मोमबत्ती की शुरुआत का पता लगाना - मेटाट्रेकर 5 के लिए सिस्टम ट्रेडिंग

संलग्नक
41601.zip (795 bytes, डाउनलोड 0 बार)

जब एक एक्सपर्ट एडवाइजर (EA) को मेटाट्रेकर द्वारा एक नया कोट ("टिक") प्राप्त होता है, तो टर्मिनल स्वचालित रूप से OnTick() इवेंट हैंडलिंग फ़ंक्शन को कॉल करता है। लेकिन, नए बार (मोमबत्ती) की शुरुआत के लिए कोई मानक इवेंट हैंडलिंग फ़ंक्शन नहीं है।

इसका पता लगाने के लिए, आपको नवीनतम बार के खोलने के समय को मॉनिटर करना होगा। जब यह बदलता है, तो यह एक नए बार की शुरुआत का संकेत देता है, और आप इस स्थिति पर प्रतिक्रिया कर सकते हैं। निम्नलिखित कोड उदाहरण, जो MQL4 और MQL5 दोनों के साथ संगत है, यह दिखाता है कि इसे कैसे किया जा सकता है:

// मानक टिक इवेंट हैंडलर
   void OnTick()
   {
      // नए बार की जाँच करें (MQL4 और MQL5 के लिए संगत)।
         static datetime dtBarraCorrente   = WRONG_VALUE;
                datetime dtBarraPrecedente = dtBarraCorrente;
                         dtBarraCorrente   = iTime( _Symbol, _Period, 0 );
                bool     bEventoBarraNova  = ( dtBarraCorrente != dtBarraPrecedente );

      // नए बार के इवेंट पर प्रतिक्रिया करें और स्थिति का सामना करें।
         if( bEventoBarraNova )
         {
            // पहचानें कि क्या यह प्राप्त पहला टिक है और स्थिति का सामना करें।
               /* उदाहरण के लिए, जब यह पहले चार्ट पर लगाया जाता है और
 बार अपनी प्रगति के मध्य में होता है और यह वास्तव में एक नए बार की शुरुआत नहीं है। */
               if( dtBarraPrecedente == WRONG_VALUE )
               {
                  // पहले टिक पर या बार के मध्य में कुछ करें ...
               }
               else
               {
                  // जब सामान्य बार प्रकट होता है, कुछ करें ...
               };

            // पिछले स्थिति से स्वतंत्र कुछ करें ...
         }
         else
         {
            // कुछ और करें ...
         };

      // अन्य कार्य करें ...
   };

पिछले कोड में, स्टैटिक वेरिएबल बार के खोलने के समय को ट्रैक करता है, भले ही OnTick() फ़ंक्शन से लौटते समय। एक सामान्य लोकल वेरिएबल के विपरीत, यह अपने डेटा कंटेंट को याद रखता है और फ़ंक्शन छोड़ने पर इसे रिलीज़ नहीं करता। यही किसी नए बार के खोलने के समय में बदलाव का पता लगाने की कुंजी है।

यह भी महत्वपूर्ण है कि जब EA को पहले बार चार्ट पर रखा जाता है, तो पिछले कोड इस तरह प्रतिक्रिया करता है जैसे कि बार अभी खुला हो। इस स्थिति को विशेष ध्यान की आवश्यकता होती है यदि स्थिति को अलग तरीके से संभालना हो।

कृपया ध्यान दें कि मेरे सभी कोडबेस प्रकाशनों का स्रोत कोड अब मेटा-एडिटर के "पब्लिक प्रोजेक्ट्स" के तहत "FMIC" नाम से भी उपलब्ध है।

संबंधित पोस्ट

टिप्पणी (0)