এই কৌশলটি একটি সম্পূর্ণ ট্রেডিং সিস্টেম নির্মাণের জন্য বোলিংজার ব্যান্ড, আরএসআই, একাধিক চলমান গড় এবং এমএসিডি সূচককে একত্রিত করে। প্রথমত, এটি প্রবণতা সনাক্ত করার জন্য মূল্যের অস্থিরতা এবং মাঝারি ব্যান্ডের তুলনায় দামের অবস্থান নির্ধারণ করতে বোলিংজার ব্যান্ড ব্যবহার করে। একই সাথে, এটি ওভারকপ এবং ওভারসোল্ড শর্তগুলি মূল্যায়ন করতে এবং আরএসআই বিচ্যুতিগুলি ব্যবহার করে সম্ভাব্য প্রবণতা বিপরীতগুলি সনাক্ত করতে আরএসআই সূচক ব্যবহার করে। চলমান প্রবণতা ট্র্যাকিং এবং সমর্থন এবং প্রতিরোধের স্তর নির্ধারণের জন্য একাধিক গড় ব্যবহার করা হয়। অবশেষে, এমএসিডি সূচকটি প্রবণতা এবং সম্ভাব্য বিপরীতগুলি বিচার করতে সহায়তা করতে ব্যবহৃত হয়। এই সূচকগুলি ব্যাপকভাবে বিবেচনা করে, কৌশলটি একটি সম্পূর্ণ প্রবেশ এবং প্রস্থান শর্ত তৈরি করে একটি ট্রেডিং কৌশল তৈরি করতে।
এই কৌশলটি প্রবণতা সনাক্তকরণ, অতিরিক্ত ক্রয় এবং অতিরিক্ত বিক্রয় রায়, মাল্টি-টাইম স্কেল বিশ্লেষণ এবং অবস্থান নিয়ন্ত্রণ সহ একাধিক মাত্রা থেকে তুলনামূলকভাবে বিস্তৃত ট্রেডিং সিস্টেম তৈরি করে। তবে, কৌশলটি অস্থির বাজার এবং চরম ইভেন্টগুলির সাথে মোকাবিলায় আরও অপ্টিমাইজেশনের প্রয়োজন এবং এর আরও পদ্ধতিগত পরামিতি অপ্টিমাইজেশন এবং ঝুঁকি নিয়ন্ত্রণের অভাব রয়েছে। ভবিষ্যতে, কৌশলটি আরও পরিমার্জিত সংকেত ফিল্টারিং, গতিশীল ওজন সমন্বয় এবং চরম ইভেন্টগুলির প্রতিক্রিয়া হিসাবে উন্নতি করতে পারে। অবিচ্ছিন্ন ব্যাকটেস্টিং অপ্টিমাইজেশন এবং লাইভ ট্রেডিং যাচাইয়ের মাধ্যমে এই কৌশলটির একটি শক্তিশালী এবং টেকসই পরিমাণগত ট্রেডিং কৌশলতে পরিণত হওয়ার সম্ভাবনা রয়েছে।
/*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)