डोंचियन चैनल ब्रेकआउट रणनीति मूल्य चैनलों पर आधारित एक प्रवृत्ति-अनुसरण रणनीति है। यह खरीद और बिक्री संकेत उत्पन्न करने के लिए मूल्य प्रवृत्तियों और ब्रेकआउट को निर्धारित करने के लिए डोंचियन चैनल के ऊपरी बैंड, निचले बैंड और मध्य रेखा चलती औसत का उपयोग करता है।
रणनीति पहले एक निश्चित अवधि में कीमतों के उच्चतम उच्चतम, निम्नतम निम्नतम और मध्य रेखा चलती औसत की गणना करती है। ऊपरी और निचले बैंड मूल्य चैनल बनाते हैं, जबकि मध्य रेखा चैनल के बीच में बैठती है। जब कीमत मध्य रेखा से ऊपर टूट जाती है, तो यह एक ऊपर की प्रवृत्ति का संकेत देती है और लंबी जाती है। जब कीमत मध्य रेखा से नीचे टूट जाती है, तो यह एक नीचे की प्रवृत्ति का संकेत देती है और छोटी जाती है।
विशेष रूप से, रणनीति निम्नलिखित चरणों में काम करती हैः
उपरोक्त तर्क रणनीति के बुनियादी व्यापार सिद्धांत का वर्णन करता है - मूल्य ब्रेकआउट और पिवोट बिंदुओं पर दिशा स्विचिंग द्वारा रुझानों को कैप्चर करना।
इस रणनीति के निम्नलिखित फायदे हैंः
कुछ जोखिम भी हैं:
समाधान:
इस रणनीति को निम्नलिखित पहलुओं में और अधिक अनुकूलित किया जा सकता हैः
निष्कर्ष में, डोंचियन चैनल ब्रेकआउट रणनीति एक प्रभावी ट्रेंड-फॉलोइंग सिस्टम है, जिसमें ध्वनि सैद्धांतिक आधार, सरल तर्क और ब्रेकआउट के माध्यम से रुझानों को सवारी करने की क्षमता है। इस बीच, इस तरह के ब्रेकआउट सिस्टम के अंतर्निहित जोखिमों के लिए पैरामीटर ट्यूनिंग और सिग्नल फ़िल्टरिंग की आवश्यकता होती है। आगे के शोध और अनुकूलन के साथ, डोंचियन रणनीतियां मात्रात्मक व्यापारियों के लिए अधिक मजबूत और व्यावहारिक हो सकती हैं।
/*backtest start: 2024-01-26 00:00:00 end: 2024-02-25 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title = "dc", overlay = true) testStartYear = input(2018, "Backtest Start Year") testStartMonth = input(1, "Backtest Start Month") testStartDay = input(1, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testEndYear = input(2018, "Backtest Start Year") testEndMonth = input(12) testEndDay = input(31, "Backtest Start Day") testPeriodEnd = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testPeriod() => true //time >= testPeriodStart ? true : false dcPeriod = input(20, "Period") dcUpper = highest(close, dcPeriod)[1] dcLower = lowest(close, dcPeriod)[1] dcAverage = (dcUpper + dcLower) / 2 plot(dcLower, style=line, linewidth=3, color=red, offset=1) plot(dcUpper, style=line, linewidth=3, color=aqua, offset=1) plot(dcAverage, color=black, style=line, linewidth=3, title="Mid-Line Average") strategy.entry("simpleBuy", strategy.long, when=close > dcAverage) strategy.close("simpleBuy",when=close < dcLower) strategy.entry("simpleSell", strategy.short,when=close < dcAverage) strategy.close("simpleSell",when=close > dcAverage)