सुपरट्रेंड बोलिंगर बैंड्स रणनीति एटीआर (औसत सच्ची रेंज) पर आधारित एक सामान्य ट्रेलिंग स्टॉप संकेतक रणनीति है। यह रणनीति चार्ट पर तेजी और मंदी प्रवृत्ति चैनलों को आकर्षित करने के लिए सुपरट्रेंड संकेतक का उपयोग करती है और बोलिंगर बैंड्स के साथ संयोजन में ट्रेडिंग संकेत उत्पन्न करती है।
रणनीति में सुपरट्रेंड लाइनों की गणना के लिए दो मुख्य मापदंडों - अवधि और गुणक का उपयोग किया जाता है, जिनमें क्रमशः 10 और 3 के डिफ़ॉल्ट मान होते हैं। विशिष्ट गणना सूत्र निम्नानुसार हैः
ऊपरी पंक्ति: बंद - (गुणाकार x एटीआर) निचली रेखाः बंद + (गुणाकार x एटीआर)
जब समापन मूल्य पिछली ऊपरी रेखा से अधिक होता है, तो इसे तेजी का संकेत माना जाता है। जब समापन मूल्य पिछली निचली रेखा से नीचे टूट जाता है, तो इसे मंदी का संकेत माना जाता है।
रणनीति में मध्य बैंड को आधार रेखा के रूप में उपयोग करते हुए बोलिंगर बैंड्स संकेतक भी शामिल है, और ऊपरी और निचले बैंड इससे दो मानक विचलन दूर स्थित हैं। एक खरीद संकेत तब उत्पन्न होता है जब कीमत नीचे से मध्य बैंड से ऊपर टूट जाती है। एक बिक्री संकेत तब उत्पन्न होता है जब कीमत ऊपर से मध्य बैंड से नीचे टूट जाती है।
सुपरट्रेंड बोलिंगर बैंड्स रणनीति कई तकनीकी संकेतकों की ताकत को एकीकृत करती है और बाजार के रुझानों को प्रभावी ढंग से ट्रैक करने के लिए एक गतिशील ट्रेलिंग स्टॉप तंत्र का उपयोग करती है। यह अत्यधिक अनुकूलन योग्य रणनीति विभिन्न बाजारों के लिए अच्छी तरह से अनुकूलित होती है, जिससे यह एक अनुशंसित ब्रेकआउट पीछा रणनीति बन जाती है। हालांकि, व्हिपसा और ओवर-ट्रेडिंग जैसे जोखिमों को अधिक जटिल बाजार वातावरण के अनुरूप और अधिक अनुकूलन द्वारा संबोधित किया जाना चाहिए।
/*backtest start: 2022-11-24 00:00:00 end: 2023-11-30 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © KivancOzbilgic //@version=4 strategy("SuperTrend STRATEGY", overlay=true) Periods = input(title="ATR Period", type=input.integer, defval=10) src = input(hl2, title="Source") Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3.0) changeATR= input(title="Change ATR Calculation Method ?", type=input.bool, defval=true) showsignals = input(title="Show Buy/Sell Signals ?", type=input.bool, defval=false) highlighting = input(title="Highlighter On/Off ?", type=input.bool, defval=true) barcoloring = input(title="Bar Coloring On/Off ?", type=input.bool, defval=true) atr2 = sma(tr, Periods) atr= changeATR ? atr(Periods) : atr2 up=src-(Multiplier*atr) up1 = nz(up[1],up) up := close[1] > up1 ? max(up,up1) : up dn=src+(Multiplier*atr) dn1 = nz(dn[1], dn) dn := close[1] < dn1 ? min(dn, dn1) : dn trend = 1 trend := nz(trend[1], trend) trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_linebr, linewidth=2, color=color.green) buySignal = trend == 1 and trend[1] == -1 plotshape(buySignal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.green, transp=0) plotshape(buySignal and showsignals ? up : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white, transp=0) dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_linebr, linewidth=2, color=color.red) sellSignal = trend == -1 and trend[1] == 1 plotshape(sellSignal ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.red, transp=0) plotshape(sellSignal and showsignals ? dn : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white, transp=0) mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0) longFillColor = highlighting ? (trend == 1 ? color.green : color.white) : color.white shortFillColor = highlighting ? (trend == -1 ? color.red : color.white) : color.white fill(mPlot, upPlot, title="UpTrend Highligter", color=longFillColor) fill(mPlot, dnPlot, title="DownTrend Highligter", color=shortFillColor) FromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2018, title = "From Year", minval = 999) ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToYear = input(defval = 9999, title = "To Year", minval = 999) start = timestamp(FromYear, FromMonth, FromDay, 00, 00) finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) window() => time >= start and time <= finish ? true : false longCondition = buySignal if (longCondition) strategy.entry("BUY", strategy.long) shortCondition = sellSignal if (shortCondition) strategy.entry("SELL", strategy.short) buy1= barssince(buySignal) sell1 = barssince(sellSignal) color1 = buy1[1] < sell1[1] ? color.green : buy1[1] > sell1[1] ? color.red : na barcolor(barcoloring ? color1 : na)