यह रणनीति एलेक्सग्रोवर द्वारा विकसित रिकर्सिव बैंड्स सूचक पर आधारित एक प्रवृत्ति-अनुसरण और ब्रेकआउट रणनीति है। यह कम आवृत्ति लेकिन उच्च गुणवत्ता वाले प्रवेश संकेत प्राप्त करने के लिए झूठे ब्रेकआउट को फ़िल्टर करने के लिए गति की स्थिति के साथ संयुक्त मूल्य रुझानों और प्रमुख समर्थन / प्रतिरोध स्तरों को निर्धारित करने के लिए रिकर्सिव बैंड्स सूचक का उपयोग करता है।
पुनरावर्ती बैंड सूचक में एक ऊपरी बैंड, निचला बैंड और मध्य रेखा होती है। सूचक की गणना इस प्रकार की जाती हैः
ऊपरी बैंड = अधिकतम ((पूर्ववर्ती पट्टी
यहाँ n एक स्केलिंग गुणांक है, और अस्थिरता को एटीआर, मानक विचलन, औसत सच्ची सीमा या एक विशेष आरएफवी विधि से चुना जा सकता है। लंबाई पैरामीटर संवेदनशीलता को नियंत्रित करता है, बड़े मान संकेतक को कम बार ट्रिगर करते हैं।
रणनीति पहले यह जांचती है कि क्या झूठे ब्रेकआउट से बचने के लिए निचला बैंड और ऊपरी बैंड एक ही दिशा में चल रहे हैं।
जब कीमत निचले बैंड से नीचे टूट जाती है, तो लंबी हो जाती है। जब कीमत ऊपरी बैंड से ऊपर टूट जाती है, तो छोटी हो जाती है।
इसके अतिरिक्त, स्टॉप लॉस लॉजिक लागू किया गया है।
इस रणनीति के लाभ इस प्रकार हैंः
इस रणनीति के साथ कुछ जोखिम भी हैंः
इन जोखिमों को पैरामीटर अनुकूलन, स्टॉप लॉस लागू करने, फिसलने की सीमा बढ़ाने आदि से प्रबंधित किया जा सकता है।
रणनीति को और अधिक अनुकूलित करने के लिए कुछ दिशाएंः
संक्षेप में, यह एक बहुत ही व्यावहारिक और कुशल प्रवृत्ति-अनुसरण रणनीति है। यह कम्प्यूटेशनल दक्षता के लिए पुनरावर्ती ढांचे को जोड़ती है, प्रमुख रुझानों को निर्धारित करने के लिए प्रवृत्ति समर्थन / प्रतिरोध का उपयोग करती है, झूठे ब्रेकआउट को फ़िल्टर करने और सिग्नल गुणवत्ता सुनिश्चित करने के लिए गति की स्थिति जोड़ती है। उचित पैरामीटर ट्यूनिंग और जोखिम नियंत्रण के साथ, यह अच्छे परिणाम प्राप्त कर सकता है। अधिक जटिल बाजार व्यवस्थाओं के अनुकूल होने के लिए आगे के शोध और अनुकूलन के योग्य।
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // @version=5 // Original indicator by alexgrover strategy('Extended Recursive Bands Strategy', overlay=true, commission_type=strategy.commission.percent,commission_value=0.06,default_qty_type =strategy.percent_of_equity,default_qty_value = 100,initial_capital =1000) length = input.int(260, step=10, title='Length') src = input(close, title='Source') method = input.string('Classic', options=['Classic', 'Atr', 'Stdev', 'Ahlr', 'Rfv'], title='Method') bandDirectionCheck = input.bool(true, title='Bands Hold Direction') lookback = input(3) //---- atr = ta.atr(length) stdev = ta.stdev(src, length) ahlr = ta.sma(high - low, length) rfv = 0. rfv := ta.rising(src, length) or ta.falling(src, length) ? math.abs(ta.change(src)) : rfv[1] //----- f(a, b, c) => method == a ? b : c v(x) => f('Atr', atr, f('Stdev', stdev, f('Ahlr', ahlr, f('Rfv', rfv, x)))) //---- sc = 2 / (length + 1) a = 0. a := math.max(nz(a[1], src), src) - sc * v(math.abs(src - nz(a[1], src))) b = 0. b := math.min(nz(b[1], src), src) + sc * v(math.abs(src - nz(b[1], src))) c = (a+b)/2 // Colors beColor = #675F76 buColor = #a472ff // Plots pA = plot(a, color=color.new(beColor, 0), linewidth=2, title='Upper Band') pB = plot(b, color=color.new(buColor, 0), linewidth=2, title='Lower Band') pC = plot(c, color=color.rgb(120,123,134,0), linewidth=2, title='Middle Band') fill(pC, pA, color=color.new(beColor,90)) fill(pC, pB, color=color.new(buColor,90)) // Band keeping direction // By Adulari longc = 0 shortc = 0 for i = 0 to lookback-1 if b[i] > b[i+1] longc:=longc+1 if a[i] < a[i+1] shortc:=shortc+1 bhdLong = if bandDirectionCheck longc==lookback else true bhdShort = if bandDirectionCheck shortc==lookback else true // Strategy if b>=low and bhdLong strategy.entry(id='Long',direction=strategy.long) if high>=a and bhdShort strategy.entry(id='Short',direction=strategy.short) // TP at middle line //if low<=c and strategy.position_size<0 and strategy.position_avg_price>close //strategy.exit(id="Short",limit=close) //if high>=c and strategy.position_size>0 and strategy.position_avg_price<close //strategy.exit(id="Long",limit=close)