
এই কৌশলটি বুলিং বন্ড, আরএসআই, একাধিক মুভিং এভারেজ এবং এমএসিডি সূচককে একত্রিত করে একটি সম্পূর্ণ ট্রেডিং সিস্টেম তৈরি করে। প্রথমত, দামের অস্থিরতা নির্ধারণের জন্য বুলিংয়ের মাধ্যমে এবং প্রবণতা নির্ধারণের জন্য দামের তুলনামূলকভাবে বুলিং বন্ডের মধ্যবর্তী অবস্থানের অবস্থান ব্যবহার করে। একই সাথে, ওভারসোলিং ওভারসোলিংয়ের জন্য আরএসআই সূচক ব্যবহার করা হয় এবং সম্ভাব্য প্রবণতা বিপরীতকরণ সনাক্ত করার জন্য আরএসআই বিপরীতকরণ ব্যবহার করা হয়। একাধিক মুভিং এভারেজ প্রবণতা ট্র্যাকিং এবং সমর্থনকারী প্রতিরোধের অবস্থান নির্ধারণের জন্য ব্যবহৃত হয়। অবশেষে, এমএসিডি সূচকটি প্রবণতা এবং সম্ভাব্য বিপরীতকরণের জন্যও ব্যবহৃত হয়।
এই কৌশলটি একাধিক মাত্রা থেকে একটি উন্নত ট্রেডিং সিস্টেম তৈরি করেছে, যার মধ্যে রয়েছে প্রবণতা বিচার, ওভারবাইট ওভারসেল বিচার, বহু-সময় স্কেল বিশ্লেষণ, পজিশন নিয়ন্ত্রণ ইত্যাদি। তবে কৌশলটি অস্থিরতা, চরম পরিস্থিতির প্রতিক্রিয়া জানাতে এখনও অপ্টিমাইজ করা দরকার এবং আরও পদ্ধতিগত প্যারামিটার অপ্টিমাইজেশন এবং ঝুঁকি নিয়ন্ত্রণের অভাব রয়েছে। ভবিষ্যতে আরও সূক্ষ্ম বাছাই সংকেত, গতিশীল ক্ষমতা পুনরায় সমন্বয় এবং চরম পরিস্থিতির প্রতিক্রিয়া ইত্যাদির দিকে আরও উন্নতি করা যেতে পারে। ক্রমাগত ফিডব্যাক অপ্টিমাইজেশন এবং রিয়েল-স্টোর পরীক্ষার মাধ্যমে এই কৌশলটি একটি শক্তিশালী এবং টেকসই পরিমাণযুক্ত ট্রেডিং কৌশল হিসাবে বেড়ে ওঠার সম্ভাবনা রয়েছে।
/*backtest
start: 2023-05-21 00:00:00
end: 2024-05-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Bollinger Bands + RSI Strategy with MA", overlay=true)
// Bollinger Bands
length = input.int(20, title="BB Length")
mult = input.float(2.0, title="BB Mult")
basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
upper_band = basis + dev
lower_band = basis - dev
// RSI
rsi_length = input.int(14, title="RSI Length")
rsi_oversold = input.int(30, title="RSI Oversold", minval=0, maxval=100)
rsi_overbought = input.int(70, title="RSI Overbought", minval=0, maxval=100)
rsi = ta.rsi(close, rsi_length)
// RSI Divergence
rsi_divergence_bottom = ta.crossunder(rsi, rsi_oversold)
rsi_divergence_peak = ta.crossunder(rsi_overbought, rsi)
// Moving Averages
ma34 = ta.sma(close, 34)
ma89 = ta.sma(close, 89)
ma144 = ta.sma(close, 144)
ma233 = ta.sma(close, 233)
ma377 = ta.sma(close, 377)
ma610 = ta.sma(close, 610)
// MACD Calculation
[macd_line, signal_line, _] = ta.macd(close, 12, 26, 9)
macd_histogram = macd_line - signal_line
// MACD Divergence
macd_divergence_bottom = ta.crossunder(macd_histogram, 0)
macd_divergence_peak = ta.crossover(macd_histogram, 0)
// Conditions for Buy and Sell
basis_gt_ma34 = basis > ma34
ma34_gt_ma89 = ma34 > ma89
// Entry condition
buy_condition = basis_gt_ma34 and ma34_gt_ma89
sell_condition = basis <ma34
// Calculate position size
position_size = 1.0 // 100% capital initially
// Update position size based on conditions
if (sell_condition)
position_size := 0.5 // Sell half of the position
if (not basis_gt_ma34)
position_size := 0.0 // Sell all if basis < ma34
// Entry and exit strategy
if (buy_condition)
strategy.entry("Buy", strategy.long, qty=position_size)
if (sell_condition)
strategy.close("Buy")
// Plot Bollinger Bands and Moving Averages
bb_fill_color = basis > basis[1] ? color.new(color.blue, 90) : color.new(color.blue, 10)
plot(basis, color=color.blue, title="Basis")
plot(upper_band, color=color.red, title="Upper Band")
plot(lower_band, color=color.green, title="Lower Band")
fill(plot1=plot(upper_band), plot2=plot(lower_band), color=bb_fill_color, title="BB Fill")
plot(ma34, color=color.orange, title="MA34")
plot(ma89, color=color.purple, title="MA89")
plot(ma144, color=color.gray, title="MA144")
plot(ma233, color=color.blue, title="MA233")
plot(ma377, color=color.red, title="MA377")
plot(ma610, color=color.green, title="MA610")
// Plot RSI Divergence
plotshape(series=rsi_divergence_bottom, style=shape.triangleup, location=location.abovebar, color=color.green, size=size.small)
plotshape(series=rsi_divergence_peak, style=shape.triangledown, location=location.belowbar, color=color.red, size=size.small)
// Plot MACD Histogram Divergence
plotshape(series=macd_divergence_bottom, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(series=macd_divergence_peak, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)