फॉलो लाइन रणनीति बोलिंगर बैंड्स और औसत सच्ची रेंज (एटीआर) पर आधारित एक प्रवृत्ति ट्रैकिंग रणनीति है। यह गतिशील रूप से ट्रेंड जजमेंट लाइन को ट्रेंड को ट्रैक करने के लिए समायोजित करता है जब कीमत बोलिंगर बैंड्स के ऊपरी बैंड से ऊपर टूटती है और जब कीमत बोलिंगर बैंड्स के निचले बैंड से नीचे टूटती है तो इसे नीचे ले जाता है।
यह रणनीति पहले बोलिंगर बैंड के ऊपरी और निचले बैंड की गणना करती है, साथ ही औसत सच्ची सीमा। फिर यह आकलन करती है कि क्या कीमत बोलिंगर ऊपरी बैंड से ऊपर या निचले बैंड से नीचे टूटती है।
जब कीमत ऊपरी बैंड से ऊपर टूट जाती है, यदि एटीआर फ़िल्टर सक्षम है, तो ट्रेंड लाइन सबसे कम कीमत माइनस एटीआर पर सेट की जाती है। यदि एटीआर फ़िल्टर अक्षम है, तो ट्रेंड लाइन सीधे सबसे कम कीमत पर सेट की जाती है।
जब मूल्य निचले बैंड से नीचे टूट जाता है, यदि एटीआर फ़िल्टर सक्षम है, तो प्रवृत्ति रेखा उच्चतम मूल्य प्लस एटीआर पर सेट की जाती है। यदि एटीआर फ़िल्टर अक्षम है, तो प्रवृत्ति रेखा सीधे उच्चतम मूल्य पर सेट की जाती है।
इस प्रकार, ट्रेंड जजमेंट लाइन को ट्रेंड को ट्रैक करने के लिए बोलिंगर बैंड्स के मूल्य ब्रेकआउट के आधार पर गतिशील रूप से समायोजित किया जा सकता है।
जब वर्तमान रुझान रेखा पिछली से अधिक होती है, तो यह एक ऊपर की प्रवृत्ति को दर्शाता है। जब वर्तमान रुझान रेखा पिछली से कम होती है, तो यह एक नीचे की प्रवृत्ति को दर्शाता है।
ट्रेडिंग सिग्नल तब ट्रेडिंग ट्रेंड के आधार पर लांग या शॉर्ट जाने के लिए उत्पन्न किए जा सकते हैं।
कुछ जोखिमों को पैरामीटर ट्यूनिंग के माध्यम से कम किया जा सकता है, स्टॉप लॉस को पेश किया जा सकता है। ब्रेकआउट वैधता में सुधार के लिए सिग्नल फ़िल्टरिंग के लिए अन्य संकेतकों के साथ भी जोड़ा जा सकता है।
फॉलो लाइन रणनीति का उद्देश्य अस्थिर बाजारों में मूल्य प्रवृत्तियों को पकड़ना है। यह एक प्रभावी प्रवृत्ति ट्रैकिंग रणनीति है। उचित पैरामीटर ट्यूनिंग और अनुकूलन से सभ्य लाभ हो सकता है। हालांकि, जोखिमों को स्टॉप लॉस और झूठे ब्रेकआउट को रोकने के माध्यम से प्रबंधित करने की आवश्यकता है। लाभप्रदता में और सुधार के लिए इस रणनीति को अन्य संकेतकों या रणनीतियों के साथ जोड़ने की सिफारिश की जाती है।
/*backtest start: 2023-11-23 00:00:00 end: 2023-11-30 00:00:00 period: 10m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // © Dreadblitz //@version=4 // // ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ // strategy(title = " Strategy Follow Line Indicator ", shorttitle = "S-FLI", overlay = true, precision = 8, calc_on_order_fills = true, calc_on_every_tick = true, backtest_fill_limits_assumption = 0, default_qty_type = strategy.fixed, default_qty_value = 2, initial_capital = 10000, pyramiding=1, currency = currency.USD, linktoseries = true) // // ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ // backTestSectionFrom = input(title = "═══════════════ From ═══════════════", defval = true, type = input.bool) FromMonth = input(defval = 1, title = "Month", minval = 1) FromDay = input(defval = 1, title = "Day", minval = 1) FromYear = input(defval = 2014, title = "Year", minval = 2000) backTestSectionTo = input(title = "════════════════ To ════════════════", defval = true, type = input.bool) ToMonth = input(defval = 31, title = "Month", minval = 1) ToDay = input(defval = 12, title = "Day", minval = 1) ToYear = input(defval = 9999, title = "Year", minval = 2000) Config = input(title = "══════════════ Config ══════════════", defval = true, type = input.bool) BBperiod = input(defval = 21, title = "BB Period", type = input.integer, minval = 1) BBdeviations = input(defval = 1.00, title = "BB Deviations", type = input.float, minval = 0.1, step=0.05) UseATRfilter = input(defval = true, title = "ATR Filter", type = input.bool) ATRperiod = input(defval = 5, title = "ATR Period", type = input.integer, minval = 1) hl = input(defval = false, title = "Hide Labels", type = input.bool) backTestPeriod() => true // // // ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ // BBUpper=sma (close,BBperiod)+stdev(close, BBperiod)*BBdeviations BBLower=sma (close,BBperiod)-stdev(close, BBperiod)*BBdeviations // TrendLine = 0.0 iTrend = 0.0 buy = 0.0 sell = 0.0 // BBSignal = close>BBUpper? 1 : close<BBLower? -1 : 0 // if BBSignal == 1 and UseATRfilter == 1 TrendLine:=low-atr(ATRperiod) if TrendLine<TrendLine[1] TrendLine:=TrendLine[1] if BBSignal == -1 and UseATRfilter == 1 TrendLine:=high+atr(ATRperiod) if TrendLine>TrendLine[1] TrendLine:=TrendLine[1] if BBSignal == 0 and UseATRfilter == 1 TrendLine:=TrendLine[1] // if BBSignal == 1 and UseATRfilter == 0 TrendLine:=low if TrendLine<TrendLine[1] TrendLine:=TrendLine[1] if BBSignal == -1 and UseATRfilter == 0 TrendLine:=high if TrendLine>TrendLine[1] TrendLine:=TrendLine[1] if BBSignal == 0 and UseATRfilter == 0 TrendLine:=TrendLine[1] // iTrend:=iTrend[1] if TrendLine>TrendLine[1] iTrend:=1 if TrendLine<TrendLine[1] iTrend:=-1 // buy:=iTrend[1]==-1 and iTrend==1 ? 1 : na sell:=iTrend[1]==1 and iTrend==-1? 1 : na // plot(TrendLine, color=iTrend > 0?color.blue:color.red ,style=plot.style_line,linewidth=2,transp=0,title="Trend Line") plotshape(buy == 1 and hl == false? TrendLine-atr(8) :na, text='💣', style= shape.labelup, location=location.absolute, color=color.blue, textcolor=color.white, offset=0, transp=0,size=size.auto) plotshape(sell == 1 and hl == false ?TrendLine+atr(8):na, text='🔨', style=shape.labeldown, location=location.absolute, color=color.red, textcolor=color.white, offset=0, transp=0,size=size.auto) // Strategy Entry if (backTestPeriod()) strategy.entry("long", true, 1, when = buy == 1) strategy.entry("short", false, 1, when = sell == 1)