क्या आपने कभी k-nearest neighbors के आधार पर क्लासिफायर के बारे में सुना है? यह एक ऐसा तरीका है जो मशीन को याददाश्त के साथ काम करने की अनुमति देता है। मुझे यह कहने में कोई हिचकिचाहट नहीं है कि इस विधि से मुझे वांछित परिणाम नहीं मिले। शायद मैंने इस पर काम करने के लिए पर्याप्त समय नहीं दिया या शायद मेरे पास कुछ ज्ञान की कमी थी। लेकिन मैंने सोचा कि इस विधि को साझा करना बेहतर है, शायद इससे कुछ नया सीखने को मिले!
Euclidean_Metric फ़ंक्शन एक क्लासिफायर है। इसमें उपलब्ध वेक्टर बेस का उपयोग करते हुए, जो ट्रेडों या मार्केट सिचुएशंस का वर्णन करता है, यह निर्धारित करता है कि क्या इनपुट वेक्टर किसी भी समूह में शामिल होता है। वेक्टर को उपयोगकर्ता द्वारा समूहों में बांटा जाता है। उदाहरण के लिए, यदि कोई ट्रेड सकारात्मक परिणाम के साथ बंद होता है, तो उसे क्लास 1 में रखा जाता है, और यदि नकारात्मक है, तो क्लास 0 में।
कई आयामी वेक्टर के निकटतम पड़ोसी की खोज Euclidean दूरी का उपयोग करके की जाती है। फिर यह गणना करता है कि उनमें से कितने k-वेक्टर क्लास 1 में शामिल हैं। इसके बाद, इस मान को पड़ोसी की कुल संख्या से विभाजित किया जाता है और हमें यह जानकारी मिलती है कि उस वेक्टर के क्लास 1 में होने की संभावना कितनी है।
हालांकि, चूंकि वेक्टर के “खराब” चुने गए गुणांक हो सकते हैं, इस वर्गीकरण पर पूरी तरह से भरोसा नहीं किया जा सकता (सिर्फ 0.5 से ऊपर या 0.5 से नीचे)। इसलिए, एक अतिरिक्त थ्रेशोल्ड मान भी शामिल किया गया है; यदि भविष्य के ट्रेड के लाभकारी होने की संभावना 0.7 से अधिक है, तो बाजार में प्रवेश करें।
क्लासिफायर की चुनौतियाँ
- पहली समस्या: मार्केट सिचुएशंस का स्थिर डेटा खोजना, जो आवश्यक सटीकता के साथ सही वर्गीकरण करे।
- दूसरी समस्या: गणितीय संचालन की बड़ी मात्रा, जिसके कारण गणना में समय लगता है।
इन समस्याओं का सामना सामान्य ट्रेडिंग सिस्टम में भी होता है। लेकिन फायदा यह है कि क्लासिफायर उन स्थितियों को फॉर्मलाइज कर सकता है जिन्हें ट्रेडर शायद खुद नहीं देख पाता, लेकिन जो संकेतक के कुछ मान ट्रेड खोलने में प्रभाव डालते हैं, उन्हें वे अंतर्ज्ञान से महसूस कर सकता है।
प्रयोग में लाना
यहाँ कुछ महत्वपूर्ण पैरामीटर हैं:
- buy_threshold = 0.6: सभी खरीद पदों के लिए थ्रेशोल्ड।
- sell_threshold = 0.6: सभी बिक्री पदों के लिए थ्रेशोल्ड।
- inverse_position_open = true: यदि लाभकारी ट्रेड की संभावना बहुत कम है, तो विपरीत स्थिति के साथ बाजार में क्यों नहीं प्रवेश करें?
- fast = 12: MACD के पैरामीटर।
- tp = 40: टेक प्रॉफिट।
- sl = 30: स्टॉप लॉस।
पहले, Base को true पर सेट करें, sl और tp को सेट करें और इतिहास पर चलाएँ (एक बार!), वेक्टर फ़ाइल लिखी जाएगी। अगली बार Base को false पर सेट करें और थ्रेशोल्ड को ऑप्टिमाइज़ करना शुरू करें।
क्लासिफायर का प्रदर्शन
क्लासिफायर के कार्यान्वयन से पहले और बाद के परिणाम इस प्रकार हैं:

थ्रेशोल्ड के ऑप्टिमाइजेशन के बाद।



संबंधित पोस्ट
- MQL5 विजार्ड: डार्क क्लाउड कवर/पीयरसिंग लाइन और स्टोकास्टिक पर आधारित ट्रेड सिग्नल
- MQL5 विजार्ड: बुलिश और बेयरिश मीटिंग लाइन्स + RSI पर आधारित ट्रेड सिग्नल
- MQL5 विजार्ड: दो EMA के क्रॉसओवर पर आधारित ट्रेड सिग्नल और इंट्राडे टाइम फ़िल्टर
- MQL5 विजार्ड: मॉर्निंग/इविनिंग स्टार और RSI पर आधारित ट्रेड सिग्नल
- MQL5 विजार्ड: बुलिश हारामी/बेयरिश हारामी + CCI पर आधारित ट्रेड सिग्नल