यह रणनीति एक वस्तु की गतिशीलता सूचकांक ((डीआई) की गणना करके और एक प्रतिबंधित पैरामीटर के साथ मिलकर वस्तु के द्वि-दिशात्मक व्यापार को लागू करती है। डीआई + डीआई - एक प्रतिबंधित पैरामीटर से अधिक होने पर अधिक करें, और डीआई - डीआई + एक प्रतिबंधित पैरामीटर से अधिक होने पर खाली करें।
इस रणनीति का केंद्रीय सूचक गतिशीलता सूचकांक है। डीआई की गणना निम्न सूत्रों द्वारा की जाती हैः
DI+ = (DM+ / वास्तविक सीमा) × 100 DI- = (DM- / वास्तविक सीमा) × 100
डीएम + बहु-अंतराल को दर्शाता है, डीएम - शून्य-अंतराल को दर्शाता है। वास्तविक रेंज हाल के उतार-चढ़ाव को दर्शाता है, अधिकतम मूल्य की गणना करके तीन दिन के उच्चतम मूल्य, न्यूनतम मूल्य और कल के समापन मूल्य के उतार-चढ़ाव।
डीआई की परिभाषा के अनुसार, जब डीआई + > डीआई - , यह दर्शाता है कि वर्तमान में चल रहे कई सिरों की ताकत खाली सिरों की ताकत से अधिक है, तो यह एक बहुमुखी बाजार है; जब डीआई - > डीआई +, यह दर्शाता है कि खाली सिरों की ताकत कई सिरों की ताकत से अधिक है, तो यह एक खाली सिर बाजार है।
यह रणनीति इस विशेषता का उपयोग करती है और एक प्रतिबंधित पैरामीटर सेट करती है। जब डीआई + डीआई - एक प्रतिबंधित पैरामीटर से बड़ा होता है, तो यह माना जाता है कि यह एक मल्टीहेड मार्केट है, और अधिक है। जब डीआई - डीआई + एक प्रतिबंधित पैरामीटर से बड़ा होता है, तो यह माना जाता है कि यह एक खाली बाजार है, और खाली है।
उदाहरण के लिए, यदि सीमा पैरामीटर 3 पर सेट किया जाता है, तो विशिष्ट लेनदेन नियम इस प्रकार हैंः
चूंकि डीआई+ और डीआई- के बीच अक्सर कम विचलन होता है, इसलिए प्रतिबंध पैरामीटर सेट करना कुछ ऐसे ट्रेडिंग सिग्नल को फ़िल्टर कर सकता है जिनके पास स्पष्ट रूप से दिशा नहीं है, और अनावश्यक ट्रेडिंग को कम करता है, जो इस रणनीति का एक लाभ है।
इस रणनीति के मुख्य फायदे हैंः
डीआई बाजार की गति को सीधे बहुपक्षीय शक्तियों की गणना करके निर्धारित करता है, इसमें वक्रता मिलान जैसे जटिल एल्गोरिदम नहीं हैं, सिद्धांत सरल और विश्वसनीय है।
पैरामीटर फ़िल्टर को सीमित करके कोई स्पष्ट दिशात्मकता नहीं है, केवल मजबूत दिशात्मक ट्रेडों का चयन करें जो स्पष्ट रूप से बाजार में हैं।
मल्टी-फ्री पोजीशन को डीआई सूचकांकों के आधार पर स्वचालित रूप से स्विच किया जा सकता है, बिना मैन्युअल निर्णय के, जिससे लेनदेन की कठिनाई कम हो जाती है।
समर्थन सेटअप केवल अनुकूलित दिनांक सीमा के भीतर व्यापार करने के लिए, समाप्त होने के बाद स्वचालित रूप से स्थिति को साफ करने के लिए, लचीला और सुविधाजनक।
मल्टी-ड्रॉप स्विच के माध्यम से केवल एक तरफा सिग्नल का चयन किया जा सकता है, केवल अधिक या केवल खाली करने के लिए, विभिन्न बाजार स्थितियों के अनुकूल।
इस रणनीति के कुछ जोखिम भी हैं:
जब बाजार में भारी उतार-चढ़ाव होता है, तो डीआई अल्पकालिक गलत संकेत दे सकता है, जिससे व्यापार विफल हो जाता है। अन्य संकेतकों के संयोजन की आवश्यकता होती है।
सीमा पैरामीटर को बहुत बड़ा या बहुत छोटा सेट करने से ट्रेडिंग सिग्नल की कमी या अधिकता हो सकती है और बाजार के अनुसार पैरामीटर को समायोजित करने की आवश्यकता होती है।
DI केवल वर्तमान प्रवृत्ति की दिशा का आकलन कर सकता है, यह निर्धारित नहीं कर सकता कि प्रवृत्ति समाप्त हो गई है या उलट गई है, अन्य संकेतकों के संयोजन की आवश्यकता है।
जोखिम के समाधानों में शामिल हैंः
चलती औसत के साथ डीआईआई संकेतों को फ़िल्टर करना
प्रतिगमन के परिणामों के आधार पर सीमा पैरामीटर को समायोजित करें
Volumes, MACD आदि के साथ प्रवृत्ति में बदलाव
इस रणनीति को और बेहतर बनाया जा सकता है:
इस तरह के सूचकांकों के साथ डीआई के संयोजन से निर्णय की सटीकता में सुधार हो सकता है।
गतिशील स्टॉप, समय या अनुपात स्टॉप-लॉस पॉइंट सेट करें, लाभ को लॉक करें और नुकसान को कम करें।
विभिन्न किस्मों की ट्रेडिंग विशेषताओं के अनुसार सीमा पैरामीटर और ट्रेडिंग समय को समायोजित करने से रणनीति की प्रभावशीलता में सुधार हो सकता है।
रीड-डिस्क सिग्नल ऑप्टिमाइज़ेशन पैरामीटर के आधार पर रीफर्मेशन लर्निंग और अन्य तकनीकों को लागू करना।
इस रणनीति के लिए समग्र सरल और व्यावहारिक है. यह डीआई की गणना के तरीकों का उपयोग कर व्यापार दिशा का न्याय करता है; पैरामीटर फ़िल्टर सिग्नल को सीमित करके; दो तरफा व्यापार कर सकते हैं, या केवल अधिक या शून्य कर सकते हैं; समर्थन सेट ट्रेडिंग समय अवधि. मुख्य लाभ उच्च विश्वसनीयता, प्रभावी फ़िल्टर सिग्नल है. गलत सिग्नल, पैरामीटर सेटिंग आदि की समस्या भी है. हम अन्य सूचक के साथ संयोजन करके रणनीति की प्रभावशीलता को बढ़ा सकते हैं, स्टॉप लॉस स्टॉप सेट कर सकते हैं, पैरामीटर को समायोजित कर सकते हैं, या गतिशील अनुकूलन के लिए मशीन सीखने का उपयोग कर सकते हैं। कुल मिलाकर, यह रणनीति व्यापार दिशा का न्याय करने वाले सूचक के एक संयोजन के रूप में काम करती है, जो अन्य रणनीतियों के साथ संयोजन में निष्क्रिय प्रभाव प्राप्त कर सकती है।
/*backtest
start: 2022-12-12 00:00:00
end: 2023-12-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Noro's DI Strategy", overlay = false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
len = input(title="Length", defval=14)
limit = input(3, title = "limit, %")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
//DI
TrueRange = max(max(high-low, abs(high-nz(close[1]))), abs(low-nz(close[1])))
DirectionalMovementPlus = high-nz(high[1]) > nz(low[1])-low ? max(high-nz(high[1]), 0): 0
DirectionalMovementMinus = nz(low[1])-low > high-nz(high[1]) ? max(nz(low[1])-low, 0): 0
SmoothedTrueRange = 0.0
SmoothedDirectionalMovementPlus = 0.0
SmoothedDirectionalMovementMinus = 0.0
SmoothedTrueRange := nz(SmoothedTrueRange[1]) - (nz(SmoothedTrueRange[1])/len) + TrueRange
SmoothedDirectionalMovementPlus := nz(SmoothedDirectionalMovementPlus[1]) - (nz(SmoothedDirectionalMovementPlus[1])/len) + DirectionalMovementPlus
SmoothedDirectionalMovementMinus := nz(SmoothedDirectionalMovementMinus[1]) - (nz(SmoothedDirectionalMovementMinus[1])/len) + DirectionalMovementMinus
DIPlus = SmoothedDirectionalMovementPlus / SmoothedTrueRange * 100
DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange * 100
//Trend
trend = 0
trend := DIPlus > DIMinus + limit ? 1 : DIPlus < DIMinus - limit ? -1 : trend[1]
//Background
col = trend == 1 ? lime : red
bgcolor(col, transp = 80)
//Lines
plot(DIPlus, color=lime, title="DI+", linewidth = 3)
plot(DIMinus, color=red, title="DI-", linewidth = 3)
//Trading
size = strategy.position_size
lot = 0.0
lot := size != size[1] ? strategy.equity / close * capital / 100 : lot[1]
if trend == 1
strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if trend == -1
strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if time > timestamp(toyear, tomonth, today, 23, 59)
strategy.close_all()