नमस्कार दोस्तों! आज हम बात करेंगे एक सरल कोड की जो नया बार या नया कैंडल पहचानने में मदद करता है।
इस कोड का मूल सिद्धांत बहुत सरल है। सबसे पहले, कोड पिछले बार या कैंडल का समय स्टोर करता है। उसके बाद, इसमें 60 सेकंड (जो 1 मिनट के बराबर है) जोड़कर वर्तमान बार या कैंडल के समापन समय का मान प्राप्त करता है।
जब:
वर्तमान समय = वर्तमान बार या कैंडल का समापन समय। इसका मतलब है कि एक नया कैंडल आ चुका है या वर्तमान बार बंद हो चुका है।
इस कोड में एक फ्लैग (बूल प्रकार का वेरिएबल 'NewBarRecived') है, जो इस कोड ब्लॉक को कई बार कॉल करने से रोकता है। इसका मतलब है कि यह कोड ब्लॉक प्रति बार/कैंडल केवल एक बार ही चलेगा। Comment(); और playsound("ok.wav"); का उपयोग कोड ब्लॉक की सटीकता की जांच के लिए किया जाता है। आप चाहें तो इसे हटा सकते हैं।
फ्लैग को वर्तमान समय के वर्तमान कैंडल के समापन समय से ऊपर होने पर फ़ॉल्स पर रीसेट किया जाता है ताकि अगले बार के आगमन की जांच की जा सके। (टिप्पणियों को देखना न भूलें)।
//+------------------------------------------------------------------+//| नया बार पहचानें.mq5 |//| द्वारा एच ए टी लक्ष्मल |//| https://t.me/Lakmal846 |//+------------------------------------------------------------------+bool NewBarRecived = false; // नियंत्रण के लिए फ्लैग।//+------------------------------------------------------------------+//| विशेषज्ञ प्रारंभिककरण कार्य |//+------------------------------------------------------------------+intOnInit() { //--- टाइमर बनाएं EventSetTimer(60); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+//| विशेषज्ञ डिएक्टिवेशन कार्य |//+------------------------------------------------------------------+voidOnDeinit(constint reason) { //--- टाइमर नष्ट करें EventKillTimer(); } //+------------------------------------------------------------------+//| विशेषज्ञ टिक कार्य |//+------------------------------------------------------------------+voidOnTick() { datetime TimePreviousBar = iTime(_Symbol,PERIOD_M1,1); datetime TimeCurrentClose = TimePreviousBar + 60; // वर्तमान बार का समापन समय। datetime Time_Current = TimeCurrent(); if(Time_Current == TimeCurrentClose && NewBarRecived == false) { PlaySound("ok.wav"); // सटीकता की जांच के लिए। NewBarRecived = true; // कई कॉल से बचने के लिए फ्लैग को अपडेट करें। // यहां आपका कोड ----- (कुछ करें) } else if(Time_Current > TimeCurrentClose) { NewBarRecived = false; // अगले बार के लिए फ्लैग को रीसेट करें। // यहां आपका कोड ----- (कुछ करें) } Comment("\n" + "\n" + "वर्तमान बार का समय -: " + TimeToString(TimePreviousBar,TIME_DATE|TIME_MINUTES|TIME_SECONDS) + "\n" + "वर्तमान समापन का समय -: " +TimeToString(TimeCurrentClose,TIME_DATE|TIME_MINUTES|TIME_SECONDS) + "\n" + "वर्तमान समय -: " + TimeToString(Time_Current,TIME_DATE|TIME_MINUTES|TIME_SECONDS) + "\n" +"\n" + "एक नया बार मिला -: " + NewBarRecived); // गणनाओं की जांच के लिए } //+------------------------------------------------------------------+//| टाइमर कार्य |//+------------------------------------------------------------------+voidOnTimer() { //--- } //+------------------------------------------------------------------+//| ट्रेड कार्य |//+------------------------------------------------------------------+voidOnTrade() { //--- } //+------------------------------------------------------------------+//| चार्ट इवेंट कार्य |//+------------------------------------------------------------------+voidOnChartEvent(constint id, constlong &lparam, constdouble &dparam, conststring &sparam) { //--- } //+------------------------------------------------------------------+

टिप्पणी 0