এই কৌশলটি অ্যালেক্সগ্রোভার দ্বারা বিকাশিত পুনরাবৃত্তি ব্যান্ড সূচক উপর ভিত্তি করে একটি প্রবণতা অনুসরণ এবং ব্রেকআউট কৌশল। এটি মূল্যের প্রবণতা এবং মূল সমর্থন / প্রতিরোধের স্তরগুলি নির্ধারণের জন্য পুনরাবৃত্তি ব্যান্ড সূচক ব্যবহার করে, মিথ্যা ব্রেকআউটগুলি ফিল্টার করার জন্য গতির অবস্থার সাথে মিলিত, নিম্ন-ফ্রিকোয়েন্সি তবে উচ্চ মানের এন্ট্রি সংকেত অর্জন করে।
পুনরাবৃত্তীয় ব্যান্ডের সূচকটি একটি উপরের ব্যান্ড, নীচের ব্যান্ড এবং মাঝারি রেখার সমন্বয়ে গঠিত। সূচকটি নিম্নরূপ গণনা করা হয়ঃ
Upper Band = Max ((Previous bar
এখানে 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)