
এই কৌশলটি একটি ব্যাপক ট্রেডিং সিস্টেম যা মুভিং এভারেজ (MA), আপেক্ষিক শক্তি সূচক (RSI), মুভিং এভারেজ কনভারজেন্স ডাইভারজেন্স (MACD), এবং বলিঞ্জার ব্যান্ডস (BB) সহ বেশ কয়েকটি ক্লাসিক প্রযুক্তিগত সূচককে একত্রিত করে। এই সূচকগুলির সমন্বয়ের মাধ্যমে, সিস্টেমটি বাজারে আরও সঠিক ক্রয়-বিক্রয়ের সংকেত খোঁজে, যার ফলে লেনদেনের সাফল্যের হার উন্নত হয়।
কৌশলটি একটি বহু-স্তর সংকেত যাচাইকরণ প্রক্রিয়া গ্রহণ করে, যা প্রধানত নিম্নলিখিত দিকগুলি অন্তর্ভুক্ত করে:
সিস্টেম নিম্নলিখিত অবস্থার অধীনে ট্রেডিং সংকেত তৈরি করে:
এটি একটি সু-পরিকল্পিত বহু-মাত্রিক ট্রেডিং কৌশল ব্যবস্থা যা একাধিক প্রযুক্তিগত সূচকের সমন্বয়ের মাধ্যমে ট্রেডিং সংকেত প্রদান করে। কৌশলটির প্রধান সুবিধাটি এর ব্যাপক বিশ্লেষণ কাঠামো এবং কঠোর সংকেত নিশ্চিতকরণ প্রক্রিয়ার মধ্যে রয়েছে, তবে এটি প্যারামিটার অপ্টিমাইজেশান এবং বাজারের পরিবেশ অভিযোজনযোগ্যতার দিকেও মনোযোগ দিতে হবে। প্রস্তাবিত অপ্টিমাইজেশান দিকনির্দেশের মাধ্যমে, এই কৌশলটিতে এখনও উন্নতির জন্য একটি বড় জায়গা রয়েছে।
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Ultimate Buy/Sell Indicator", overlay=true)
// Inputs for Moving Averages
shortMaLength = input.int(9, title="Short MA Length", minval=1)
longMaLength = input.int(21, title="Long MA Length", minval=1)
// Inputs for RSI
rsiLength = input.int(14, title="RSI Length", minval=1)
rsiOverbought = input.int(70, title="RSI Overbought Level", minval=1, maxval=100)
rsiOversold = input.int(30, title="RSI Oversold Level", minval=1, maxval=100)
// Inputs for MACD
macdShortLength = input.int(12, title="MACD Short EMA Length", minval=1)
macdLongLength = input.int(26, title="MACD Long EMA Length", minval=1)
macdSignalSmoothing = input.int(9, title="MACD Signal Smoothing", minval=1)
// Inputs for Bollinger Bands
bbLength = input.int(20, title="Bollinger Bands Length", minval=1)
bbMultiplier = input.float(2.0, title="Bollinger Bands Multiplier", minval=0.1)
// Calculate Moving Averages
shortMa = ta.sma(close, shortMaLength)
longMa = ta.sma(close, longMaLength)
// Calculate RSI
rsi = ta.rsi(close, rsiLength)
// Calculate MACD
[macdLine, signalLine, _] = ta.macd(close, macdShortLength, macdLongLength, macdSignalSmoothing)
macdHist = macdLine - signalLine
// Calculate Bollinger Bands
[bbUpper, bbBasis, bbLower] = ta.bb(close, bbLength, bbMultiplier)
// Define colors
colorPrimary = color.new(color.green, 0)
colorSecondary = color.new(color.red, 0)
colorBackgroundBuy = color.new(color.green, 80)
colorBackgroundSell = color.new(color.red, 80)
colorTextBuy = color.new(color.green, 0)
colorTextSell = color.new(color.red, 0)
// Plot Moving Averages
plot(shortMa, color=colorPrimary, linewidth=2, title="Short MA")
plot(longMa, color=colorSecondary, linewidth=2, title="Long MA")
// Plot Bollinger Bands
bbUpperLine = plot(bbUpper, color=colorPrimary, linewidth=1, title="Bollinger Bands Upper")
bbLowerLine = plot(bbLower, color=colorPrimary, linewidth=1, title="Bollinger Bands Lower")
fill(bbUpperLine, bbLowerLine, color=color.new(colorPrimary, 90))
// Buy/Sell Conditions based on MA cross
buySignal = ta.crossover(shortMa, longMa)
sellSignal = ta.crossunder(shortMa, longMa)
// Execute Buy/Sell Orders
if buySignal
strategy.entry("Buy", strategy.long, 1)
strategy.close("Sell", qty_percent=1) // Close all positions when selling
if sellSignal
strategy.close("Sell", qty_percent=1) // Close all positions when selling
strategy.close("Buy") // Close any remaining buy positions
// Plot Buy/Sell Signals for MA crossovers
plotshape(series=buySignal, location=location.belowbar, color=colorTextBuy, style=shape.triangleup, size=size.small, title="Buy Signal")
plotshape(series=sellSignal, location=location.abovebar, color=colorTextSell, style=shape.triangledown, size=size.small, title="Sell Signal")
// Background Color based on Buy/Sell Signal for MA crossovers
bgcolor(buySignal ? colorBackgroundBuy : na, title="Buy Signal Background")
bgcolor(sellSignal ? colorBackgroundSell : na, title="Sell Signal Background")
// Plot RSI with Overbought/Oversold Levels
hline(rsiOverbought, "Overbought", color=colorSecondary, linestyle=hline.style_dashed, linewidth=1)
hline(rsiOversold, "Oversold", color=colorPrimary, linestyle=hline.style_dashed, linewidth=1)
plot(rsi, color=colorPrimary, linewidth=2, title="RSI")
// Plot MACD Histogram
plot(macdHist, color=colorPrimary, style=plot.style_histogram, title="MACD Histogram", linewidth=2)
hline(0, "Zero Line", color=color.new(color.gray, 80))
// Additional Buy/Sell Conditions based on RSI, MACD, and Bollinger Bands
additionalBuySignal = rsi < rsiOversold and macdHist > 0 and close < bbLower
additionalSellSignal = rsi > rsiOverbought and macdHist < 0 and close > bbUpper
// Plot Additional Buy/Sell Signals
plotshape(series=additionalBuySignal and not buySignal, location=location.belowbar, color=colorTextBuy, style=shape.triangleup, size=size.small, title="Additional Buy Signal")
plotshape(series=additionalSellSignal and not sellSignal, location=location.abovebar, color=colorTextSell, style=shape.triangledown, size=size.small, title="Additional Sell Signal")
// Background Color based on Additional Buy/Sell Signal
bgcolor(additionalBuySignal and not buySignal ? colorBackgroundBuy : na, title="Additional Buy Signal Background")
bgcolor(additionalSellSignal and not sellSignal ? colorBackgroundSell : na, title="Additional Sell Signal Background")