MetaTrader 5 का रणनीति परीक्षण उपकरण (Strategy Tester) हमें प्रत्येक परीक्षण पास के बाद एक व्यापार प्रणाली के सांख्यिकीय मापदंड प्राप्त करने की सुविधा देता है।
सांख्यिकीय मापदंडों को TesterStatistics() फ़ंक्शन का उपयोग करके प्राप्त किया जा सकता है, जिसे OnTester() और OnDeinit() फ़ंक्शन्स के अंदर कॉल किया जाता है।
अनुकूलन परिणामों के साथ काम करने के लिए फ़ंक्शन्स (जैसे FrameFirst(), FrameFilter(), FrameNext(), FrameInputs() और FrameAdd()) के परिचय के साथ, अब व्यापारी दृश्यात्मक अनुकूलन कर सकते हैं। आवश्यक डेटा अब एक विशेषज्ञ सलाहकार के अनुकूलन या गणितीय समस्या समाधान के दौरान संसाधित और प्रदर्शित किया जा सकता है।
हम इस लेख में "MetaTrader 5 परीक्षण में रणनीति का दृश्यांकन" के उदाहरण के माध्यम से विशेषज्ञ सलाहकार के परीक्षण परिणामों के दृश्यांकन के विवरण पर चर्चा करेंगे।
1. अनुकूलन के दौरान संतुलन गतिशीलता का दृश्यांकन
1.1. फ़ाइलें डाउनलोड करना
Moving Averages_With_Frames.mq5 विशेषज्ञ सलाहकार को terminal_data_folder\MQL5\Experts में कॉपी किया जाना चाहिए।
विशेषज्ञ सलाहकार के संचालन के लिए निम्नलिखित फ़ाइलें आवश्यक हैं:
- FrameGenerator.mqh - अनुकूलन परिणामों को प्रदर्शित करने के लिए CFrameGenerator क्लास;
- SpecialChart.mqh - कई संतुलन चार्ट बनाने के लिए CSpecialChart क्लास;
- SimpleTable.mqh - दो कॉलम वाली एक साधारण तालिका के लिए CSimpleTable क्लास;
- ColorProgressBar.mqh - दो रंगों का उपयोग करने वाले प्रगति बार के लिए CColorProgressBar क्लास।
इन फ़ाइलों को terminal_data_folder\MQL5\Include में कॉपी किया जाना चाहिए।
Code Base प्रोग्राम को स्वचालित रूप से MetaTrader 5 टर्मिनल के माध्यम से डाउनलोड किया जा सकता है ("Toolbox" विंडो के CodeBase टैब से)। ऐसा करने के लिए, "डाउनलोड" चुनें। सभी कोड डाउनलोड होंगे और अपने फ़ोल्डरों में रखे जाएंगे।

चित्र 1. MetaTrader 5 टर्मिनल के माध्यम से CodeBase प्रोग्राम डाउनलोड करना
1.2. विशेषज्ञ सलाहकार का परीक्षण
Moving Averages_With_Frames.mq5 विशेषज्ञ सलाहकार को रणनीति परीक्षक में चलाना चाहिए।
परीक्षण सेटिंग्स:

चित्र 2. Moving Averages_With_Frames.mq5 परीक्षण सेटिंग्स
अनुकूलन विकल्प:

चित्र 3. Moving Averages_With_Frames.mq5 अनुकूलन पैरामीटर
अनुकूलन के दौरान, विशेषज्ञ सलाहकार संतुलन गतिशीलता और अनुकूलन पास सांख्यिकीय डेटा प्रदर्शित करता है:

चित्र 4. Moving Averages_With_Frames.mq5 अनुकूलन
अनुकूलन प्रक्रिया:
1.3. विशेषज्ञ सलाहकार का संचालन सिद्धांत
Moving Averages_With_Frames.mq5 विशेषज्ञ सलाहकार को Moving Averages.mq5 पर आधारित बनाया गया है, जो मानक MetaTrader 5 टर्मिनल पैकेज में शामिल है (MQL5\Experts\Examples\Moving Average)।
परिणामों के दृश्यांकन के लिए निम्नलिखित कोड जोड़ा गया है:
//--- अनुकूलन परिणामों के साथ काम करने के लिए कोड को कनेक्ट करना #include <FrameGenerator.mqh> //--- फ्रेम जनरेटर CFrameGenerator fg; //+------------------------------------------------------------------+ //| परीक्षक फ़ंक्शन | //+------------------------------------------------------------------+ double OnTester() { //--- यहाँ अपनी अनुकूलन मानदंड गणना फ़ंक्शन डालें double TesterCritetia=MathAbs(TesterStatistics(STAT_SHARPE_RATIO)*TesterStatistics(STAT_PROFIT)); TesterCritetia=TesterStatistics(STAT_PROFIT)>0?TesterCritetia:(-TesterCritetia); //--- प्रत्येक परीक्षण के बाद कॉल करना और अनुकूलन मानदंड को एक पैरामीटर के रूप में सबमिट करना fg.OnTester(TesterCritetia); //--- return(TesterCritetia); } //+------------------------------------------------------------------+ //| TesterInit फ़ंक्शन | //+------------------------------------------------------------------+ void OnTesterInit() { //--- कई संतुलन रेखाओं के प्रदर्शित करने के लिए चार्ट तैयार करना fg.OnTesterInit(3); // पैरामीटर चार्ट पर संतुलन रेखाओं की संख्या सेट करता है } //+------------------------------------------------------------------+ //| TesterPass फ़ंक्शन | //+------------------------------------------------------------------+ void OnTesterPass() { //--- प्राप्त परीक्षण परिणामों को संभालना और ग्राफिक्स प्रदर्शित करना fg.OnTesterPass(); } //+------------------------------------------------------------------+ //| TesterDeinit फ़ंक्शन | //+------------------------------------------------------------------+ void OnTesterDeinit() { //--- अनुकूलन समाप्त fg.OnTesterDeinit(); } //+------------------------------------------------------------------+ //| चार्ट इवेंट हैंडलिंग | //+------------------------------------------------------------------+ void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam) { //--- अनुकूलन समाप्त होने के बाद शीर्षक पर क्लिक करने पर फ्रेम दृश्य प्रदर्शित करना fg.OnChartEvent(id,lparam,dparam,sparam,100); // 100 मिलीसेकंड के बीच में शॉट्स के बीच का अंतराल है } //+------------------------------------------------------------------+
यह कोड किसी भी विशेषज्ञ सलाहकार में समान रूप से उपयोग किया जा सकता है।
CFrameGenerator क्लास अनुकूलन परिणामों के साथ काम करने के लिए उपयोग की जाती है। इस क्लास में रणनीति परीक्षक इवेंट्स (OnTester(), OnTesterInit(), OnTesterPass(), OnTesterDeinit()) और चार्ट इवेंट्स (OnChartEvent()) को संभालने के लिए मेथड होते हैं। उपयोग की गई ग्राफिकल ऑब्जेक्ट्स को CFrameGenerator क्लास के OnTesterInit() मेथड में तैयार किया जाता है।
CFrameGenerator क्लास का OnTester() मेथड प्रत्येक परीक्षण पास के बाद एक परीक्षण एजेंट पर कॉल किया जाता है। यह मेथड व्यापार परिणामों के आधार पर संतुलन वक्र गतिशीलता की गणना करता है। संतुलन वक्र चार्ट एक-आयामी ऐरे है, जिसकी लंबाई किए गए सौदों की संख्या पर निर्भर करती है।
फिर, TesterStatistics() फ़ंक्शन का उपयोग सांख्यिकीय डेटा (नेट लाभ, लाभ कारक, पुनःप्राप्ति कारक, व्यापारों की संख्या, सौदों की संख्या, अधिकतम फंड ड्रॉडाउन प्रतिशत, कस्टम अनुकूलन मानदंड मान) का अनुरोध करने के लिए किया जाता है और एक फ्रेम (परीक्षण पास डेटा ऐरे, हमारे मामले में) उत्पन्न किया जाता है, जिसे FrameAdd() फ़ंक्शन का उपयोग करके टर्मिनल (परीक्षण एजेंट से) भेजा जाता है।
फ्रेम्स को CFrameGenerator क्लास के OnTesterPass() मेथड में प्राप्त और संभाला जाता है। फ्रेम पढ़ने का संचालन FrameNext() फ़ंक्शन द्वारा किया जाता है। फ्रेम के लिए उत्पन्न किए गए विशेषज्ञ सलाहकार इनपुट पैरामीटर का अनुरोध FrameInputs() फ़ंक्शन का उपयोग करके किया जाता है।
डेटा प्राप्त करने के बाद, इसे CSimpleTable, CColorProgressBar और CSpecialChart क्लास मेथड्स के उपयोग से प्रदर्शित और अपडेट किया जाता है।
यह ध्यान रखना चाहिए कि OnTester() हैंडलिंग फ़ंक्शन्स का कार्यान्वयन परीक्षण एजेंट पर उस समय किया जाता है जब एक अन्य वर्तमान अनुकूलन पास समाप्त हो चुका होता है। यह MQL5 क्लाउड नेटवर्क वितरित नेटवर्क क्षमताओं का उपयोग करके जटिल गणितीय गणनाएं करने की अनुमति देता है। इसके लिए, गणना भाग को OnTester इवेंट हैंडलर में रखें।
गणितीय गणनाओं को तेज़ करने के लिए अनुकूलन के उपयोग का उदाहरण (Weierstrass फ़ंक्शन के लगातार वेवलेट परिवर्तन) का प्रदर्शन "वास्तविक समय में अनुकूलन प्रक्रियाओं का प्रबंधन और एजेंटों से MetaTrader 5 में विशाल डेटा का स्थानांतरण" विषय में किया गया है।
2. CSimpleTable, CColorProgressBar और CSpecialChart क्लासेस के साथ काम करने के उदाहरण
संलग्न Test_SimpleTable.mq5 और Test_CSpecialChart.mq5 स्क्रिप्ट CSimpleTable, CColorProgressBar और CSpecialChart क्लासेस के साथ काम करने के उदाहरण प्रदान करती हैं। इन्हें terminal_data_folder\MQL5\Scripts में कॉपी किया जाना चाहिए।

चित्र 5. Test_SimpleTable.mq5 स्क्रिप्ट संचालन परिणाम

चित्र 6. Test_CSpecialChart.mq5 स्क्रिप्ट संचालन परिणाम
संबंधित पोस्ट
- MetaTrader 4 के लिए विज़ुअल ऑर्डर प्रोसेसिंग - आपके ट्रेडिंग साथी
- MAMACD सिस्टम ट्रेडिंग के लिए आपका साथी
- MQL5 विजार्ड: मॉर्निंग/इविनिंग स्टार और RSI पर आधारित ट्रेड सिग्नल
- MQL5 विजार्ड: मॉर्निंग/ईवनिंग स्टार पैटर्न और स्टोकास्टिक पर आधारित ट्रेड सिग्नल
- MQL5 विज़ार्ड - हैमर/हैंगिंग मैन और स्टोकास्टिक पर आधारित ट्रेड सिग्नल