
यह रणनीति एलेक्स ग्रॉवर द्वारा विकसित रिवर्सिबल बैंड इंडिकेटर पर आधारित ट्रेंड ट्रैकिंग और ब्रेकआउट रणनीति है। यह रणनीति कीमत की प्रवृत्ति और महत्वपूर्ण समर्थन प्रतिरोध को निर्धारित करने के लिए रिवर्सिबल बैंड इंडिकेटर का उपयोग करती है, जो कम आवृत्ति लेकिन उच्च गुणवत्ता वाले प्रवेश के लिए गतिशीलता की शर्तों को फ़िल्टर करने के साथ झूठी तोड़फोड़ करती है।
पुनरावर्ती पट्टी सूचक ऊपरी पट्टी, निचली पट्टी और मध्य रेखा से बना है। सूचक की गणना इस प्रकार की जाती हैः
ऊपर की पट्टी = अधिकतम मूल्य ((पूर्ववर्ती K रेखा के ऊपर की पट्टी, समापन मूल्य + n*अस्थिरता
निचला पट्टी = न्यूनतम मूल्य ((पिछला K रेखा का निचला पट्टी, समापन मूल्य - n*अस्थिरता
मध्य रेखा = (ऊपरी पट्टी + निचली पट्टी) / 2
जहां n एक स्केलिंग गुणांक है, तरंगता ATR, मानक विचलन, औसत मूल्य चैनल और विशेष RFV विधियों का चयन कर सकती है। लंबाई पैरामीटर संकेतक की संवेदनशीलता को नियंत्रित करता है, जो कि अधिक है, संकेतक को ट्रिगर करना आसान नहीं है।
रणनीति सबसे पहले यह पता लगाती है कि क्या निचली पट्टी की दिशा लगातार ऊपर जा रही है और क्या ऊपरी पट्टी की दिशा लगातार नीचे जा रही है, ताकि झूठे ब्रेक को खत्म किया जा सके।
जब कीमतें नीचे की ओर गिरती हैं, तो अधिक करें; जब कीमतें ऊपर की ओर बढ़ जाती हैं, तो कम करें।
इसके अलावा, रणनीति में स्टॉप लॉजिक भी है।
इस रणनीति के निम्नलिखित फायदे हैं:
इस रणनीति के कुछ जोखिम भी हैं:
इन जोखिमों को पैरामीटर को अनुकूलित करके नियंत्रित किया जा सकता है, स्टॉप लॉस सेट किया जा सकता है और स्लाइड पॉइंट को बढ़ाया जा सकता है।
इस रणनीति को निम्नलिखित दिशाओं में भी अनुकूलित किया जा सकता हैः
इस रणनीति के लिए कुल मिलाकर एक बहुत ही व्यावहारिक और कुशल प्रवृत्ति ट्रैकिंग रणनीति है. यह पुनरावर्ती ढांचे की बचत गणना संसाधनों के साथ संयुक्त है, प्रवृत्ति का समर्थन करने के लिए प्रवृत्ति का समर्थन करने के लिए प्रवृत्ति दिशा का आकलन करने के लिए, गतिशीलता की स्थिति को बढ़ाने के लिए फ़िल्टर झूठी तोड़फोड़, ताकि व्यापार संकेत की गुणवत्ता को सुनिश्चित किया जा सके। पैरामीटर को समायोजित करने और जोखिम को नियंत्रित करने के मामले में, बेहतर प्रभाव प्राप्त किया जा सकता है। आगे के अध्ययन और अनुकूलन के लायक है, ताकि अधिक जटिल बाजार के वातावरण के लिए अनुकूल हो सके।
/*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)