यह एक ट्रेंड फॉलोइंग रणनीति है, जो डोंचियन चैनल इंडिकेटर पर आधारित है, जो लाभ में लॉक करने के लिए एटीआर इंडिकेटर पर आधारित गतिशील स्टॉप लॉस के साथ संयुक्त है। यह ट्रेंड फॉलोइंग रणनीति श्रेणी से संबंधित है।
यह रणनीति 20 अवधि के डॉनचियन चैनल का उपयोग करती है, जहां चैनल मिडलाइन उच्चतम उच्च और निम्नतम निम्न का औसत है। यह तब लंबा हो जाता है जब कीमत चैनल मिडलाइन से ऊपर पार हो जाती है और जब कीमत मिडलाइन से नीचे पार हो जाती है तो शॉर्ट हो जाती है। एक्जिट नियम तब होता है जब कीमत गतिशील स्टॉप लॉस लाइन को छूती है, जिसे हाल के 3 बारों में से कम से कम एक तिहाई के रूप में गणना की जाती है। लंबे पदों के लिए एटीआर मूल्य, और हाल के 3 बारों में से उच्चतम उच्च प्लस शॉर्ट पदों के लिए एटीआर मूल्य का एक तिहाई।
इस रणनीति के मुख्य लाभ इस प्रकार हैंः
इस रणनीति के मुख्य जोखिमों में निम्नलिखित शामिल हैंः
इस रणनीति के लिए कुछ अनुकूलन दिशाएंः
संक्षेप में, यह एक सरल और व्यावहारिक प्रवृत्ति अनुसरण रणनीति है। यह डोनचियन चैनल के माध्यम से प्रवृत्ति दिशा की पहचान करता है और गतिशील ट्रेलिंग स्टॉप लॉस के साथ लाभ में लॉक करता है, जो प्रभावी रूप से प्रवृत्तियों का पालन कर सकता है। रणनीति का उपयोग करने के लिए काफी व्यावहारिक है, लेकिन अधिक जटिल बाजार वातावरण में बेहतर प्रदर्शन के लिए विभिन्न तरीकों से आगे अनुकूलित किया जा सकता है।
/*backtest start: 2023-11-29 00:00:00 end: 2023-12-06 00:00:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title = "dc", overlay = true) atrLength = input(title="ATR Length:", defval=20, minval=1) testStartYear = input(2017, "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(testEndYear,testEndMonth,testEndDay,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 atrValue=atr(atrLength) useTakeProfit = na useStopLoss = na useTrailStop = na useTrailOffset = na //@version=1 Buy_stop = lowest(low[1],3) - atr(20)[1] / 3 plot(Buy_stop, color=red, title="buy_stoploss") Sell_stop = highest(high[1],3) + atr(20)[1] / 3 plot(Sell_stop, color=green, title="sell_stoploss") 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) and cross(close,dcAverage)) strategy.close("simpleBuy",when= ( close< Buy_stop)) strategy.entry("simpleSell", strategy.short,when=(close < dcAverage) and cross(close,dcAverage) ) strategy.close("simpleSell",when=( close > Sell_stop)) //strategy.exit("Exit simpleBuy", from_entry = "simpleBuy", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset) //strategy.exit("Exit simpleSell", from_entry = "simpleSell", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)