MQL5 फ़ंक्शन
- MQL5 फ़ंक्शन
MQL5 (MetaQuotes Language 5) एक उच्च-स्तरीय प्रोग्रामिंग भाषा है जिसका उपयोग MetaTrader 5 ट्रेडिंग प्लेटफॉर्म पर स्वचालित ट्रेडिंग रणनीतियों, तकनीकी संकेतकों, स्क्रिप्ट्स और एक्सपर्ट एडवाइजर्स (EAs) बनाने के लिए किया जाता है। यह C++ पर आधारित है और इसमें कई शक्तिशाली विशेषताएं हैं जो इसे वित्तीय बाजारों में ट्रेडिंग के लिए आदर्श बनाती हैं। यह लेख MQL5 फ़ंक्शंस के बारे में शुरुआती लोगों के लिए एक व्यापक मार्गदर्शिका है।
MQL5 फ़ंक्शंस क्या हैं?
फ़ंक्शन एक कोड का ब्लॉक होता है जिसे एक विशिष्ट कार्य करने के लिए डिज़ाइन किया गया है। फ़ंक्शंस का उपयोग कोड को अधिक व्यवस्थित, पठनीय और पुन: प्रयोज्य बनाने के लिए किया जाता है। MQL5 में, फ़ंक्शंस पूर्वनिर्धारित (अंतर्निहित) या उपयोगकर्ता-परिभाषित हो सकते हैं।
- अंतर्निहित फ़ंक्शन: ये MQL5 द्वारा प्रदान किए गए फ़ंक्शन हैं जो विभिन्न कार्यों को करने के लिए तैयार हैं, जैसे कि ट्रेडिंग ऑपरेशंस निष्पादित करना, तकनीकी संकेतकों की गणना करना और चार्ट डेटा तक पहुंचना। उदाहरणों में iMA(), iRSI(), OrderSend() शामिल हैं।
- उपयोगकर्ता-परिभाषित फ़ंक्शन: ये प्रोग्रामर द्वारा बनाए गए फ़ंक्शन हैं जो विशिष्ट आवश्यकताओं को पूरा करने के लिए अनुकूलित हैं। वे जटिल रणनीतियों को लागू करने या बार-बार उपयोग किए जाने वाले कोड को पुन: उपयोग करने के लिए उपयोगी होते हैं।
फ़ंक्शन का सिंटैक्स
MQL5 में एक फ़ंक्शन को परिभाषित करने के लिए निम्नलिखित सिंटैक्स का उपयोग किया जाता है:
```mql5 return_type function_name(parameter_list) {
// Function body - code to be executed return value;
} ```
- return_type: फ़ंक्शन द्वारा लौटाए जाने वाले डेटा का प्रकार। यह `int`, `double`, `bool`, `string` या कोई अन्य मान्य MQL5 डेटा प्रकार हो सकता है। यदि फ़ंक्शन कुछ भी नहीं लौटाता है, तो `void` का उपयोग करें।
- function_name: फ़ंक्शन का नाम। फ़ंक्शन नामों को वर्णनात्मक और सार्थक होना चाहिए।
- parameter_list: फ़ंक्शन को पास किए जा सकने वाले पैरामीटर की सूची। प्रत्येक पैरामीटर में एक प्रकार और एक नाम होता है, जो अल्पविराम से अलग होते हैं। यदि फ़ंक्शन को कोई पैरामीटर नहीं चाहिए, तो कोष्ठक खाली छोड़ दिए जाते हैं।
- Function body: वह कोड जो फ़ंक्शन द्वारा निष्पादित किया जाता है।
- return value: फ़ंक्शन द्वारा लौटाया गया मान। यह `return_type` के अनुरूप होना चाहिए।
उदाहरण:
```mql5 int CalculateSum(int a, int b) {
int sum = a + b; return sum;
} ```
यह फ़ंक्शन दो पूर्णांक पैरामीटर `a` और `b` लेता है, उनका योग की गणना करता है, और परिणाम एक पूर्णांक के रूप में लौटाता है।
फ़ंक्शन कॉल करना
एक फ़ंक्शन को कॉल करने के लिए, आपको फ़ंक्शन का नाम और आवश्यक पैरामीटर निर्दिष्ट करने होंगे।
उदाहरण:
```mql5 int result = CalculateSum(5, 3); // Call the CalculateSum function with arguments 5 and 3 Print("The sum is: ", result); // Output: The sum is: 8 ```
MQL5 में महत्वपूर्ण बिल्ट-इन फ़ंक्शंस
MQL5 कई बिल्ट-इन फ़ंक्शंस प्रदान करता है जो ट्रेडिंग विकास के लिए आवश्यक हैं। कुछ महत्वपूर्ण फ़ंक्शंस निम्नलिखित हैं:
- OrderSend(): एक नया ऑर्डर भेजने के लिए उपयोग किया जाता है। यह ट्रेडिंग ऑर्डर के प्रकार, प्रतीक, मात्रा, मूल्य और अन्य पैरामीटर निर्दिष्ट करने की अनुमति देता है।
- OrderClose(): एक मौजूदा ऑर्डर बंद करने के लिए उपयोग किया जाता है।
- OrderModify(): एक मौजूदा ऑर्डर को संशोधित करने के लिए उपयोग किया जाता है, जैसे कि स्टॉप लॉस या टेक प्रॉफिट स्तर बदलना।
- iMA(): मूविंग एवरेज की गणना करने के लिए उपयोग किया जाता है। मूविंग एवरेज एक लोकप्रिय तकनीकी विश्लेषण उपकरण है।
- iRSI(): रिलेटिव स्ट्रेंथ इंडेक्स (RSI) की गणना करने के लिए उपयोग किया जाता है। RSI एक मोमेंटम ऑसिलेटर है।
- iMACD(): MACD (मूविंग एवरेज कन्वर्जेंस डाइवर्जेंस) की गणना करने के लिए उपयोग किया जाता है। MACD एक ट्रेंड-फॉलोइंग मोमेंटम इंडिकेटर है।
- SymbolInfoDouble(): प्रतीक के बारे में जानकारी प्राप्त करने के लिए उपयोग किया जाता है, जैसे कि बिड/आस्क मूल्य, पॉइंट का आकार और अनुबंध का आकार।
- AccountInfoDouble(): खाते के बारे में जानकारी प्राप्त करने के लिए उपयोग किया जाता है, जैसे कि बैलेंस, इक्विटी और मार्जिन।
- TimeCurrent(): वर्तमान सर्वर समय प्राप्त करने के लिए उपयोग किया जाता है।
- Bars(): चार्ट पर बार की संख्या प्राप्त करने के लिए उपयोग किया जाता है।
डेटा प्रकार
MQL5 विभिन्न डेटा प्रकारों का समर्थन करता है, जिनमें शामिल हैं:
- int: पूर्णांक मान (जैसे -1, 0, 1)।
- double: फ्लोटिंग-पॉइंट मान (जैसे 1.23, -4.56)।
- bool: बूलियन मान (true या false)।
- string: टेक्स्ट स्ट्रिंग (जैसे "Hello World")।
- datetime: दिनांक और समय मान।
- color: रंग मान।
पैरामीटर पास करना
फ़ंक्शंस को पैरामीटर पास करके डेटा भेजा जा सकता है। MQL5 में, पैरामीटर मान द्वारा या संदर्भ द्वारा पास किए जा सकते हैं।
- मान द्वारा: फ़ंक्शन को पैरामीटर मान की एक प्रति प्राप्त होती है। फ़ंक्शन के भीतर पैरामीटर में किए गए परिवर्तन मूल चर को प्रभावित नहीं करते हैं।
- संदर्भ द्वारा: फ़ंक्शन को पैरामीटर के लिए एक संदर्भ प्राप्त होता है। फ़ंक्शन के भीतर पैरामीटर में किए गए परिवर्तन मूल चर को प्रभावित करते हैं।
संदर्भ द्वारा पैरामीटर पास करने के लिए, पैरामीटर नाम से पहले `&` प्रतीक का उपयोग करें।
उदाहरण:
```mql5 void IncrementValue(int &value) {
value++;
}
int main() {
int x = 10; IncrementValue(x); Print("The value of x is: ", x); // Output: The value of x is: 11
} ```
इस उदाहरण में, `IncrementValue` फ़ंक्शन को `x` के लिए एक संदर्भ पास किया जाता है। इसलिए, फ़ंक्शन के भीतर `value` को बढ़ाने से मूल चर `x` का मान बढ़ जाता है।
फ़ंक्शन ओवरलोडिंग
MQL5 फ़ंक्शन ओवरलोडिंग का समर्थन करता है, जिसका अर्थ है कि आप एक ही नाम के कई फ़ंक्शन बना सकते हैं, लेकिन अलग-अलग पैरामीटर सूची के साथ। कंपाइलर यह निर्धारित करेगा कि किस फ़ंक्शन को कॉल करना है, पैरामीटर के प्रकार और संख्या के आधार पर।
उदाहरण:
```mql5 int CalculateSum(int a, int b) {
return a + b;
}
double CalculateSum(double a, double b) {
return a + b;
} ```
इस उदाहरण में, दो `CalculateSum` फ़ंक्शन हैं। पहला पूर्णांक पैरामीटर लेता है, जबकि दूसरा डबल पैरामीटर लेता है। जब आप `CalculateSum` को कॉल करते हैं, तो कंपाइलर पैरामीटर के प्रकार के आधार पर सही फ़ंक्शन का चयन करेगा।
स्कोप और जीवनकाल
फ़ंक्शन का स्कोप उस कोड के क्षेत्र को संदर्भित करता है जहां फ़ंक्शन को एक्सेस किया जा सकता है। MQL5 में, फ़ंक्शंस का स्कोप स्थानीय या वैश्विक हो सकता है।
- स्थानीय फ़ंक्शन: एक फ़ंक्शन जो किसी अन्य फ़ंक्शन के भीतर परिभाषित किया गया है। स्थानीय फ़ंक्शन को केवल उस फ़ंक्शन के भीतर से एक्सेस किया जा सकता है जिसमें इसे परिभाषित किया गया है।
- वैश्विक फ़ंक्शन: एक फ़ंक्शन जो किसी भी फ़ंक्शन के बाहर परिभाषित किया गया है। वैश्विक फ़ंक्शन को प्रोग्राम में कहीं से भी एक्सेस किया जा सकता है।
फ़ंक्शन का जीवनकाल उस समय की अवधि को संदर्भित करता है जिसके दौरान फ़ंक्शन मौजूद रहता है। स्थानीय फ़ंक्शंस का जीवनकाल उस फ़ंक्शन के निष्पादन तक सीमित होता है जिसमें उन्हें परिभाषित किया गया है। वैश्विक फ़ंक्शंस का जीवनकाल पूरे प्रोग्राम के निष्पादन तक होता है।
उन्नत अवधारणाएं
- रिकर्शन: एक फ़ंक्शन जो खुद को कॉल करता है। रिकर्शन का उपयोग जटिल समस्याओं को हल करने के लिए किया जा सकता है, लेकिन इसका उपयोग सावधानी से किया जाना चाहिए, क्योंकि यह स्टैक ओवरफ्लो का कारण बन सकता है।
- फ़ंक्शन पॉइंटर: एक चर जो एक फ़ंक्शन का पता रखता है। फ़ंक्शन पॉइंटर का उपयोग फ़ंक्शंस को गतिशील रूप से कॉल करने के लिए किया जा सकता है।
- लाइब्रेरी: फ़ंक्शंस का एक संग्रह जिसे अन्य प्रोग्रामों द्वारा पुन: उपयोग किया जा सकता है। MQL5 में, आप अपनी कस्टम लाइब्रेरी बना सकते हैं या मौजूदा लाइब्रेरी का उपयोग कर सकते हैं।
MQL5 फ़ंक्शंस का उपयोग करके ट्रेडिंग रणनीतियाँ विकसित करना
MQL5 फ़ंक्शंस स्वचालित ट्रेडिंग सिस्टम और ट्रेडिंग रणनीतियाँ बनाने के लिए आधारशिला हैं। उदाहरण के लिए:
- एक ब्रेकआउट रणनीति बनाने के लिए, आप `iHigh()` और `iLow()` जैसे फ़ंक्शंस का उपयोग करके पिछले बार के उच्च और निम्न मूल्यों को प्राप्त कर सकते हैं।
- एक ट्रेंड फॉलोइंग रणनीति बनाने के लिए, आप `iMA()` जैसे फ़ंक्शंस का उपयोग करके मूविंग एवरेज की गणना कर सकते हैं।
- एक वॉल्यूम विश्लेषण रणनीति बनाने के लिए, आप `Volume()` जैसे फ़ंक्शंस का उपयोग करके वॉल्यूम डेटा प्राप्त कर सकते हैं।
- पैरामीट्रिक ऑप्टिमाइजेशन के लिए, आप फ़ंक्शन का उपयोग करके विभिन्न पैरामीटर मानों के साथ अपनी रणनीति का परीक्षण कर सकते हैं।
निष्कर्ष
MQL5 फ़ंक्शंस शक्तिशाली उपकरण हैं जो आपको स्वचालित ट्रेडिंग रणनीतियों, तकनीकी संकेतकों और अन्य ट्रेडिंग उपकरणों को बनाने की अनुमति देते हैं। इस लेख में, हमने MQL5 फ़ंक्शंस की मूल बातें, उनके सिंटैक्स, डेटा प्रकार, पैरामीटर पास करने, फ़ंक्शन ओवरलोडिंग, स्कोप और जीवनकाल को कवर किया है। हमने उन्नत अवधारणाओं और MQL5 फ़ंक्शंस का उपयोग करके ट्रेडिंग रणनीतियों को विकसित करने के बारे में भी चर्चा की है। इन अवधारणाओं को समझने से आपको MQL5 में कुशल प्रोग्रामर बनने और वित्तीय बाजारों में अपनी ट्रेडिंग सफलता को बढ़ाने में मदद मिलेगी।
तकनीकी संकेतक एक्स्पर्ट एडवाइजर स्क्रिप्ट ट्रेडिंग एल्गोरिदम वित्तीय मॉडलिंग जोखिम प्रबंधन पोर्टफोलियो प्रबंधन बैकटेस्टिंग ऑप्टिमाइजेशन सिग्नल प्रोसेसिंग डेटा विश्लेषण टाइम सीरीज विश्लेषण स्टैटिस्टिकल आर्बिट्राज इवेंट-ड्रिवन प्रोग्रामिंग ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग मेटैट्रेडर 5 MQL4 और MQL5 के बीच अंतर MQL5 संदर्भ ट्रेडिंग प्लेटफॉर्म बाइनरी विकल्प
अभी ट्रेडिंग शुरू करें
IQ Option पर रजिस्टर करें (न्यूनतम जमा $10) Pocket Option में खाता खोलें (न्यूनतम जमा $5)
हमारे समुदाय में शामिल हों
हमारे Telegram चैनल @strategybin से जुड़ें और प्राप्त करें: ✓ दैनिक ट्रेडिंग सिग्नल ✓ विशेष रणनीति विश्लेषण ✓ बाजार की प्रवृत्ति पर अलर्ट ✓ शुरुआती के लिए शिक्षण सामग्री