এই কৌশলটি ক্রসওভার সংকেত খুঁজে পেতে এবং ক্রয় এবং বিক্রয় সংকেত তৈরি করতে বোলিংজার ব্যান্ড, আপেক্ষিক শক্তি সূচক (আরএসআই) এবং কমোডিটি চ্যানেল সূচক (সিসিআই) একত্রিত করে। এই কৌশলটির লক্ষ্য বাজারে অতিরিক্ত ক্রয় এবং অতিরিক্ত বিক্রয় দৃশ্যকল্প সনাক্ত করা এবং বিনিয়োগের ভাল রিটার্নের জন্য inflection পয়েন্টে অবস্থান গ্রহণ করা।
বোলিংজার ব্যান্ডগুলির মধ্যে একটি মধ্যম ব্যান্ড, একটি উপরের ব্যান্ড এবং একটি নীচের ব্যান্ড রয়েছে। মাঝের ব্যান্ডটি সাধারণত একটি 20 দিনের চলমান গড়। উপরের ব্যান্ডটি মাঝের ব্যান্ডের উপরে দুটি স্ট্যান্ডার্ড বিচ্যুতি। নীচের ব্যান্ডটি নীচের দুটি স্ট্যান্ডার্ড বিচ্যুতি। নিম্ন ব্যান্ডের কাছাকাছি দামগুলি একটি oversold অবস্থা নির্দেশ করতে পারে। উপরের ব্যান্ডের কাছাকাছি দামগুলি একটি overbought অবস্থা নির্দেশ করতে পারে।
আরএসআই নির্দেশ করে যে দামের গতি 70 এর উপরে এবং 30 এর নীচে বেশি বিক্রি হয়। যখন আরএসআই 70 এর উপরে থেকে পড়ে, এটি একটি বিক্রয় সংকেত হতে পারে। যখন আরএসআই 30 এর নীচে থেকে ফিরে আসে, এটি একটি ক্রয় সংকেত হতে পারে।
সিসিআই পরিমাপ করে যে দামগুলি গড় মূল্য থেকে কতদূর সরে গেছে। +100 এর উপরে পাঠ্যগুলি একটি অতিরিক্ত ক্রয়ের অবস্থা বোঝায়। -100 এর নীচে পাঠ্যগুলি একটি অতিরিক্ত বিক্রয়ের অবস্থা বোঝায়। সিসিআই চরম মূল্যের স্তরগুলি প্রতিফলিত করে।
এই কৌশলটি স্বল্পমেয়াদী ওভারবয়ড / ওভারসোল্ড স্তরগুলি বিচার করতে বোলিংজার ব্যান্ডগুলি ব্যবহার করে, উত্থান / হ্রাসের গতিবেগ পরিমাপ করতে আরএসআই এবং মূল্যের চরমগুলি সনাক্ত করতে সিসিআই। যখন তিনটি সূচক ফ্ল্যাশ কিনুন / বিক্রয় সংকেত দেয়, তখন কৌশলটি ট্রেড অর্ডার জারি করবে।
এই কৌশলটি বোলিংজার ব্যান্ড, আরএসআই এবং সিসিআই সূচক ব্যবহার করে সামগ্রিক বাজার পরিস্থিতি বিশ্লেষণ করে। এটি ক্রসওভার সংকেতগুলির মাধ্যমে বাজার বিপরীতমুখী ট্রেডিংয়ের জন্য inflection পয়েন্টগুলি সনাক্ত করে। প্যারামিটার টিউনিং, মুনাফা গ্রহণের প্রক্রিয়া ইত্যাদির মতো আরও অপ্টিমাইজেশনের সাথে এটি বিভিন্ন বাজারের পরিবেশের জন্য একটি শক্তিশালী কাউন্টারট্রেন্ড কৌশল হতে পারে।
/*backtest start: 2023-11-19 00:00:00 end: 2023-12-19 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(shorttitle="BBRSIstr", title="Bollinger Bands", overlay=true) length = input.int(20, minval=1) maType = input.string("SMA", "Basis MA Type", options = ["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"]) src = input(close, title="Source") mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev") ma(source, length, _type) => switch _type "SMA" => ta.sma(source, length) "EMA" => ta.ema(source, length) "SMMA (RMA)" => ta.rma(source, length) "WMA" => ta.wma(source, length) "VWMA" => ta.vwma(source, length) basis = ma(src, length, maType) dev = mult * ta.stdev(src, length) upper = basis + dev lower = basis - dev offset = input.int(0, "Offset", minval = -500, maxval = 500) plot(basis, "Basis", color=#FF6D00, offset = offset) p1 = plot(upper, "Upper", color=#2962FF, offset = offset) p2 = plot(lower, "Lower", color=#2962FF, offset = offset) fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95)) //RSI rsiLengthInput = input.int(14, minval=1, title="RSI Length", group="RSI Settings") rsiSourceInput = input.source(close, "Source", group="RSI Settings") maTypeInput = input.string("SMA", title="MA Type", options=["SMA", "Bollinger Bands", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="MA Settings") maLengthInput = input.int(14, title="MA Length", group="MA Settings") bbMultInput = input.float(2.0, minval=0.001, maxval=50, title="BB StdDev", group="MA Settings") showDivergence = input.bool(false, title="Show Divergence", group="RSI Settings") up = ta.rma(math.max(ta.change(rsiSourceInput), 0), rsiLengthInput) down = ta.rma(-math.min(ta.change(rsiSourceInput), 0), rsiLengthInput) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) rsiMA = ma(rsi, maLengthInput, maTypeInput) isBB = maTypeInput == "Bollinger Bands" rsiPlot = plot(rsi, "RSI", color=#7E57C2) plot(rsiMA, "RSI-based MA", color=color.yellow) rsiUpperBand = hline(70, "RSI Upper Band", color=#787B86) midline = hline(50, "RSI Middle Band", color=color.new(#787B86, 50)) rsiLowerBand = hline(30, "RSI Lower Band", color=#787B86) fill(rsiUpperBand, rsiLowerBand, color=color.rgb(126, 87, 194, 90), title="RSI Background Fill") //cci ma = ta.sma(src, length) cci = (src - ma) / (0.015 * ta.dev(src, length)) plot(cci, "CCI", color=#2962FF) band1 = hline(100, "Upper Band", color=#787B86, linestyle=hline.style_dashed) hline(0, "Middle Band", color=color.new(#787B86, 50)) band0 = hline(-100, "Lower Band", color=#787B86, linestyle=hline.style_dashed) fill(band1, band0, color=color.rgb(33, 150, 243, 90), title="Background") typeMA = input.string(title = "Method", defval = "SMA", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Smoothing") smoothingLength = input.int(title = "Length", defval = 5, minval = 1, maxval = 100, group="Smoothing") smoothingLine = ma(cci, smoothingLength, typeMA) plot(smoothingLine, title="Smoothing Line", color=#f37f20, display=display.none) longCBB= close < lower shortCBB = close>upper longBRSI = rsi < 33 shortBRSI = rsi > 70 longcci = cci < -215 shortcci = cci > 250 strategy.entry("LONG", strategy.long, when = longCBB and longBRSI and longcci) strategy.exit("Exit ", profit = 600) strategy.entry("SHORT", strategy.short, when = shortCBB and shortBRSI and shortcci) strategy.exit("Exit ", profit = 600)