यह ट्रेडिंग रणनीति ट्रेडिंग सिग्नल उत्पन्न करने के लिए दिशात्मक आंदोलन सूचकांक (डीएमआई) और स्टोकास्टिक ऑसिलेटर को जोड़ती है। डीएमआई, अपने डीआई +, डीआई-लाइन और औसत दिशात्मक सूचकांक (एडीएक्स) के साथ, प्रवृत्ति की ताकत और दिशा को मापता है। रणनीति लंबी (खरीद) जाती है जब डीआई + डीआई से ऊपर है, एडीएक्स 25 से ऊपर है और स्टोकास्टिक % के 20 से नीचे है (ओवरसोल्ड) । यह छोटी (बेच) जाती है जब डीआई- डीआई + से ऊपर है, एडीएक्स 25 से ऊपर रहता है और स्टोकास्टिक % के 80 से अधिक (ओवरबोल्ड) है। हाल के उच्चतम और निम्नतम बंद के आधार पर गतिशील स्टॉप-लॉस स्तर जोखिम नियंत्रण में सुधार करते हैं।
यह रणनीति निम्नलिखित प्रमुख घटकों पर आधारित हैः
प्रवृत्ति पहचान के लिए डीएमआई: डीएमआई के डीआई+, डीआई- और एडीएक्स लाइनें बाजार की प्रवृत्ति की दिशा और ताकत निर्धारित करती हैं। डीआई+ से ऊपर डीआई- एक उभरती प्रवृत्ति का संकेत देता है जबकि डीआई- से ऊपर डीआई+ एक गिरावट का संकेत देता है। उच्च ADX मान एक मजबूत प्रवृत्ति का संकेत देते हैं।
ओवरबॉट/ओवरसोल्ड के लिए स्टोकैस्टिकस्टोकैस्टिक का %K रेखा हाल के उच्चतम और निम्नतम के सापेक्ष वर्तमान निकटता दर्शाता है। 20 से नीचे के मान का अर्थ है ओवरसोल्ड जबकि 80 से ऊपर ओवरबॉट।
सिग्नल तर्क:डीएमआई और स्टोकेस्टिक को मिलाकर, रणनीति लंबी जाती है जब डीआई+>डीआई- ((उतरती प्रवृत्ति), एडीएक्स>25 (प्रवृत्ति शक्ति) और स्टोकेस्टिक %के <20 (अतिविक्री) । यह छोटी जाती है जब डीआई->डीआई+ (नीचे की प्रवृत्ति), एडीएक्स>25 और %के>80 (अतिविक्री) ।
गतिशील स्टॉप-लॉस: प्रविष्टि के बाद हाल के उच्चतम और निम्नतम समापन का उपयोग गतिशील स्टॉप-लॉस स्तरों के रूप में किया जाता है, जिससे अनुकूलनशील जोखिम नियंत्रण संभव होता है।
इस रणनीति के मुख्य लाभ इस प्रकार हैंः
डीएमआई (ट्रेंड) और स्टोकास्टिक (ओवरबॉट/ओवरसोल्ड) से दोहरी पुष्टि का उपयोग करके उच्च विश्वसनीयता।
हाल के मूल्य उतार-चढ़ाव पर आधारित अभिनव गतिशील स्टॉप लॉस जोखिम नियंत्रण को बेहतर बनाता है।
कम मापदंड अनुकूलन और कार्यान्वयन को आसान बनाते हैं।
वित्तीय बाजारों (स्टॉक, विदेशी मुद्रा, क्रिप्टो आदि) और समय सीमाओं में व्यापक अनुकूलन क्षमता।
पाइन स्क्रिप्ट ट्रेडिंग प्लेटफार्मों पर प्रत्यक्ष आवेदन की अनुमति देता है।
विचार करने के लिए कुछ जोखिमः
ADX कम होने पर ट्रेंडिंग बाजारों में संभावित झूठे संकेत। स्थिति आकार को कम करें।
स्टोकैस्टिक एक पिछड़ा हुआ संकेतक है. बाजार संकेत समय पर उलट सकता है. अग्रणी संकेतक के साथ संयोजन.
गतिशील रुकावटें प्रचंड रुझान उतार-चढ़ावों से पूरी तरह बच नहीं सकतीं। उचित रुकावट दूरी आवश्यक है।
अपर्याप्त पैरामीटर ट्यूनिंग से प्रदर्शन पर नकारात्मक प्रभाव पड़ता है। इष्टतम लंबाई निर्धारित की जानी चाहिए।
ब्लैक स्वान घटनाओं को असामान्य नुकसान को रोकने के लिए रणनीति निलंबन की आवश्यकता होती है।
रणनीति को बढ़ाने के कुछ तरीके:
चलती औसत और एमएसीडी जैसे अधिक संकेतकों के साथ फ़िल्टर जोड़ने से संकेत की विश्वसनीयता बढ़ जाती है।
बैकटेस्टिंग के माध्यम से पैरामीटर अनुकूलन इष्टतम सेटिंग्स का पता लगाने में मदद करता है।
उपकरण और समय सीमा के आधार पर मापदंडों को अनुकूलित करें। तेज उपकरणों को कम लंबाई का उपयोग कर सकते हैं।
आसान विश्लेषण और परिष्करण की अनुमति देने के लिए getInfo ((() का उपयोग करके विस्तृत लॉग आउटपुट शामिल करें।
अतिरिक्त अंतर्दृष्टि के लिए चार्ट पर सिग्नल बिंदुओं और स्टॉप-लॉस लाइनों को प्लॉट करें।
समय पर सूचनाएं प्राप्त करने के लिए कस्टम अलर्ट विकसित करें ताकि त्वरित हस्तक्षेप की अनुमति मिल सके।
यह रणनीति ट्रेड प्रविष्टियों के लिए प्रवृत्ति दिशा और ओवरबॉट / ओवरसोल्ड स्तरों की पहचान करने के लिए डीएमआई और स्टोकास्टिक ऑसिलेटर की ताकत को जोड़ती है। अभिनव गतिशील स्टॉप लॉस तंत्र भी स्मार्ट जोखिम नियंत्रण को सक्षम करता है। विश्वसनीय संकेतों, व्यापक प्रयोज्य, उपयोग में आसानी और अनुकूलन के साथ, यह एक कुशल एल्गोरिथम ट्रेडिंग रणनीति है। आगे के अनुकूलन से बेहतर प्रदर्शन हो सकता है।
/*backtest start: 2022-12-19 00:00:00 end: 2023-12-25 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("DMI with Stochastic and Dynamic Stop-Loss", shorttitle="DMI_Stoch_SL", overlay=true) length = input(14, title="DMI Length") adxThreshold = input(25, title="ADX Threshold") stochKLength = input(14, title="Stochastic %K Length") stochDLength = input(3, title="Stochastic %D Length") [diPlus, diMinus, adx] = ta.dmi(length, length) stochKLine = ta.stoch(close, high, low, stochKLength) var float lowestClose = na var float highestClose = na lowestClose := na(lowestClose) ? close : math.min(lowestClose, close) highestClose := na(highestClose) ? close : math.max(highestClose, close) longCondition = (diPlus > diMinus) and (adx > adxThreshold) and (stochKLine < 20) shortCondition = (diMinus > diPlus) and (adx > adxThreshold) and (stochKLine > 80) if longCondition strategy.entry("Buy", strategy.long) strategy.exit("Exit Buy", "Buy", stop=lowestClose) if shortCondition strategy.entry("Sell", strategy.short) strategy.exit("Exit Sell", "Sell", stop=highestClose)