यह संकेतक एक प्सेडो-संकेतक है जिसमें बफर नहीं होते हैं। इसका मुख्य उद्देश्य मल्टी-थ्रेडेड कैलकुलेशन तकनीक का प्रदर्शन करना है। यह संकेतक लंबी गणनाओं के लिए आदेश जारी कर सकता है, जो चार्ट ऑब्जेक्ट्स के लिए अलग-अलग थ्रेड्स में किए जाते हैं, जिन्हें वर्कर एक्सपर्ट एडवाइज़र द्वारा बनाया गया है। शामिल हेडर फाइल MultiThreadedObjectWorker.mqh में दिए गए क्लास अपने आप चार्ट ऑब्जेक्ट्स बनाएंगे और प्रत्येक ऑब्जेक्ट में निर्दिष्ट वर्कर एक्सपर्ट एडवाइज़र के साथ टेम्पलेट लागू करेंगे। गणना पूरी होने के बाद, ऑब्जेक्ट अपने आप चार्ट से हटा दिया जाता है।
यह उदाहरण उन उपयोगकर्ताओं के लिए है जिन्हें प्रोग्रामिंग का ज्ञान है।
इस विचार का मूल एक लेख से लिया गया है जो मल्टी-थ्रेडेड एसीनक्रोनस वेबरॉकेस्ट्स के बारे में है। कृपया लेख में देखें कि संदेश (इवेंट्स) कैसे वितरित होते हैं, और चार्ट्स के बीच डेटा पास करने के लिए संसाधनों का उपयोग कैसे किया जाता है।
यह संकेतक तकनीक का एक "संक्षिप्त" कार्यान्वयन करता है, जैसा कि लेख में बताया गया है, चार्ट ऑब्जेक्ट्स का उपयोग करके। आप फोरम पर विवरण देख सकते हैं।
सुनिश्चित करें कि वर्कर एक्सपर्ट एडवाइज़र - MultiThreadedObjectWorker - को संकलित किया गया है इससे पहले कि आप संकेतक MultiThreadedIndicator को संकलित और चलाएं।
इनपुट पैरामीटर्स
- sinput int _Cores = 1; - थ्रेड्स की संख्या (उपलब्ध भौतिक कोर से अधिक का उपयोग न करें)
- sinput int _Tasks = 1; - समानांतर में निष्पादित होने वाले प्सेडो-टास्क की संख्या (समानांतर प्रदर्शन देखने के लिए कोर की संख्या से अधिक का उपयोग करें)
- input string MultiThreadedScriptPath = "Experts\MultiThreadedObjectWorker.ex5"; - वर्कर एक्सपर्ट एडवाइज़र का पथ निर्दिष्ट करना होगा
प्रत्येक प्सेडो-टास्क कुछ sqrt फ़ंक्शंस की गणना करता है (केवल डेमो उद्देश्यों के लिए)। इसे आप अपने MQL परियोजनाओं में किसी अन्य समय-खपत करने वाले एल्गोरिदम में बदल सकते हैं।
सिग्नल लगाने के बाद समानांतर गणनाओं को शुरू करने के लिए, कृपया चार्ट पर क्लिक करें। प्रक्रिया के सभी महत्वपूर्ण चरण (क्लाइंट और वर्कर MQL5 प्रोग्राम दोनों में) लॉग किए जाते हैं।
क्लाइंट MQL प्रोग्राम जो समानांतर गणनाओं के लिए अनुरोध जारी कर रहा है, केवल संकेतक नहीं बल्कि एक्सपर्ट एडवाइज़र भी हो सकता है। स्क्रिप्ट और सेवाओं का समर्थन प्लेटफ़ॉर्म द्वारा नहीं किया जाता है।
हेडर फाइल MultiThreadedObjectWorker.mqh का उपयोग करके आपको MQL5-क्लाइंट और वर्कर एक्सपर्ट एडवाइज़र के बीच अपने डेटा मार्शलिंग को लागू करना चाहिए।
यहां लॉग के 2 उदाहरण दिए गए हैं।

2 कोर पर 4 कार्यों का निष्पादन (2 थ्रेड्स समानांतर में)
जब 2 कोर पर 4 कार्य चलाए जाते हैं, तो 2 समानांतर थ्रेड होते हैं, जो 1 कोर पर चलाने की तुलना में दोगुना तेज निष्पादन प्रदान करते हैं (उदाहरण के लिए 3354ms ऊपर और 6240ms नीचे की तुलना करें)।

1 कोर पर 4 कार्यों का निष्पादन (सिंगल थ्रेड - मानक MQL प्रोग्राम)
अधिक कोर - अधिक गति।
संबंधित पोस्ट
- ओपन रेंज ब्रेकआउट इंडिकेटर: ट्रेडिंग में लाभ उठाने का तरीका
- Volume Profile + Range v6.0: MetaTrader 5 के लिए नया इंडिकेटर
- Volume Profile + Range v6.0: MetaTrader 5 के लिए एक बेहतरीन संकेतक
- एडाप्टिव CCI: मेटाट्रेडर 5 के लिए एक नई ट्रेडिंग रणनीति
- 3 इन 1 स्टोकैस्टिक: आपके MetaTrader 5 के लिए बेहतरीन इंडीकेटर