विवरण
CMomentumOnRingBuffer क्लास तकनीकी संकेतक मोमेंटम (Momentum) की गणना के लिए डिज़ाइन की गई है, जो रिंग बफर के एल्गोरिदम का उपयोग करती है।
घोषणा
class CMomentumOnRingBuffer : public CArrayRing
शीर्षक
#include <IncOnRingBuffer\CMomentumOnRingBuffer.mqh>CMomentumOnRingBuffer.mqh क्लास की फ़ाइल को IncOnRingBuffer फ़ोल्डर में रखा जाना चाहिए और फिर इसे MQL5\Include में स्थापित करना होगा। इस फ़ोल्डर से क्लास के उपयोग के उदाहरण वाली दो फ़ाइलें विवरण में संलग्न की गई हैं। रिंग बफर की क्लास की फ़ाइल भी इस फ़ोल्डर में होनी चाहिए।
क्लास के तरीके
//--- initialization method: bool Init( // यदि त्रुटि है तो यह false लौटाएगा, यदि सफल - true int period = 14, // मोमेंटम का अवधि int size_buffer = 256, // रिंग बफर का आकार bool as_series = false // यदि समय श्रृंखला है, अन्यथा - false );
//--- समय श्रृंखला या संकेतक बफर के आधार पर गणना करने की विधि: int MainOnArray( // संसाधित तत्वों की संख्या लौटाता है const int rates_total, // array[] का आकार const int prev_calculated, // पिछले कॉल पर संसाधित तत्व const double& array[], // इनपुट डेटा का array );
//--- अलग-अलग श्रृंखला के तत्वों के आधार पर गणना करने की विधि double MainOnValue( // सेट तत्व के लिए मोमेंटम का मान लौटाता है const int rates_total, // array का आकार const int prev_calculated, // array के संसाधित तत्व const int begin, // array का महत्वपूर्ण डेटा कहाँ से शुरू होता है const long value, // array का तत्व मान const int index // तत्व का अनुक्रमांक );
//--- डेटा तक पहुँचने के तरीके: int BarsRequired(); // संकेतक को खींचने के लिए आवश्यक बार की संख्या लौटाता है string Name(); // संकेतक का नाम लौटाता है int Period(); // अवधि लौटाता है int Size(); // रिंग बफर का आकार लौटाता है
रिंग बफर से संकेतक के गणना किए गए डेटा को सामान्य array की तरह प्राप्त किया जा सकता है। उदाहरण के लिए:
//--- मोमेंटम संकेतक की गणना करने वाली क्लास: #include <IncOnRingBuffer\CMomentumOnRingBuffer.mqh> CMomentumOnRingBuffer momentum; ... //+------------------------------------------------------------------+ //| कस्टम संकेतक पुनरावृत्ति कार्य | //+------------------------------------------------------------------+ int OnCalculate (const int rates_total, // array price[] का आकार const int prev_calculated, // पिछले कॉल पर संसाधित बार const int begin, // महत्वपूर्ण डेटा कहाँ से शुरू होता है const double& price[]) // गणना के लिए array { //--- समय श्रृंखला के आधार पर संकेतक की गणना: momentum.MainOnArray(rates_total,prev_calculated,price); ... //--- "मोमेंटम" रिंग बफर के डेटा का उपयोग करें, // उदाहरण के लिए, संकेतक बफर में डेटा की कॉपी करें: for(int i=start;i<rates_total && !IsStopped();i++) Momentum_Buffer[i] = momentum[rates_total-1-i]; // संकेतक रेखा ... //--- अगले कॉल के लिए prev_calculated का लौटने वाला मान: return(rates_total); }
कृपया ध्यान दें कि रिंग बफर में अनुक्रमांक समय श्रृंखला में अनुक्रमांक के समान है।
उदाहरण
- Test_Momentum_OnArrayRB.mq5 फ़ाइल संकेतक की गणना करती है जो मूल्य समय श्रृंखला के आधार पर है। MainOnArray() विधि का उपयोग यहाँ प्रदर्शित किया गया है।
- Test_Momentum_OnValueRB.mq5 फ़ाइल MainOnValue() विधि का उपयोग दिखाती है। पहले मोमेंटम संकेतक की गणना की जाती है और खींची जाती है। फिर इस संकेतक के रिंग बफर के आधार पर एक और मोमेंटम संकेतक खींचा जाता है।

Test_Momentum_OnArrayRB.mq5 का कार्य का परिणाम रिंग बफर के आकार 256 तत्वों के साथ

Test_Momentum_OnValueRB.mq5 का कार्य का परिणाम रिंग बफर के आकार 256 तत्वों के साथ
कोड लिखते समय MetaQuotes Software Corp., Integer और GODZILLA के विकास का उपयोग किया गया था।
संबंधित पोस्ट
- ओपन रेंज ब्रेकआउट इंडिकेटर: ट्रेडिंग में लाभ उठाने का तरीका
- Volume Profile + Range v6.0: MetaTrader 5 के लिए नया इंडिकेटर
- Volume Profile + Range v6.0: MetaTrader 5 के लिए एक बेहतरीन संकेतक
- बोलिंजर स्क्वीज़ एडवांस्ड MT5 - आपके ट्रेडिंग के लिए परफेक्ट इंडिकेटर
- सिंगुलर स्पेक्ट्रम एनालिसिस पर आधारित ट्रेंड इंडिकेटर - MetaTrader 5 के लिए