
এই কৌশলটি গতিশীলতার সূচক আরএসআই এবং প্রবণতা সূচক ইএমএর সমন্বিত একটি যৌগিক ট্রেডিং সিস্টেম। এটি 1 মিনিট এবং 5 মিনিটের দুটি সময়কালের উপর কাজ করে এবং ট্রেডিং সিদ্ধান্তগুলি আরএসআইয়ের ওভার-বই ওভার-বিক্রয় সংকেত এবং ট্রিপল ইএমএর প্রবণতা বিচার করে। কৌশলটি ট্রেন্ড ট্র্যাকিং এবং সমমানের রিটার্ন উভয় বৈশিষ্ট্যকে অন্তর্ভুক্ত করে, যা বিভিন্ন বাজারের পরিস্থিতিতে ট্রেডিং সুযোগগুলি ধরতে সক্ষম।
কৌশলটি 21/50/200 দিনের ট্রিপল ইএমএকে ট্রেন্ডিং বেঞ্চমার্ক হিসাবে ব্যবহার করে এবং সংশোধিত আরএসআই সূচক (চেবিশেভ পদ্ধতির গণনা) এর সাথে যুক্ত করে বাজারের ওভারব্রিড ওভারসোলের অবস্থা সনাক্ত করতে। 1 মিনিটের চক্রের মধ্যে, যখন আরএসআই 94 টি ভেঙে যায়, তখন এটি বন্ধ হয়ে যায়, 4 ঘন্টা পজিশনে পড়ে, এবং আরএসআই 50 এ ফিরে আসে তখন এটি একটি জামিন স্টপ সেট করে। 5 মিনিটের চক্রের মধ্যে, যখন দাম 200 দিনের ইএমএ অতিক্রম করে এবং বিপরীতভাবে খোলা হয়, তখন পজিশনটি বন্ধ হয়ে যায়।
এই কৌশলটি একাধিক প্রযুক্তিগত সূচক এবং একাধিক সময়কালের বিশ্লেষণের সাথে একত্রিত হয়ে ব্যবসায়ের স্থায়িত্ব এবং নির্ভরযোগ্যতা বাড়ায়। যদিও কিছু ঝুঁকি রয়েছে, তবে যুক্তিসঙ্গত অবস্থান পরিচালনা এবং স্টপ লস ম্যানেজমেন্টের মাধ্যমে ঝুঁকির কার্যকর নিয়ন্ত্রণ অর্জন করা যায়। কৌশলটির অপ্টিমাইজেশনের জন্য প্রচুর জায়গা রয়েছে, আরও প্রযুক্তিগত সূচক এবং অপ্টিমাইজেশন প্যারামিটার প্রবর্তন করে কৌশলটির কার্যকারিতা আরও বাড়ানো যেতে পারে।
/*backtest
start: 2023-11-12 00:00:00
end: 2024-07-10 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Combined RSI Primed and 3 EMA Strategy", overlay=true)
// Input for EMA lengths
emaLength1 = input(21, title="EMA Length 1")
emaLength2 = input(50, title="EMA Length 2")
emaLength3 = input(200, title="EMA Length 3")
// Input for RSI settings
rsiLength = input(14, title="RSI Length")
rsiOverbought = input(94, title="RSI Overbought Level")
rsiNeutral = input(50, title="RSI Neutral Level")
rsiOversold = input(4, title="RSI Oversold Level")
// Calculate EMAs
ema1 = ta.ema(close, emaLength1)
ema2 = ta.ema(close, emaLength2)
ema3 = ta.ema(close, emaLength3)
// Calculate RSI using Chebyshev method from RSI Primed
rsi(source) =>
up = math.max(ta.change(source), 0)
down = -math.min(ta.change(source), 0)
rs = up / down
rsiValue = down == 0 ? 100 : 100 - (100 / (1 + rs))
rsiValue
rsiValue = rsi(close)
// Plot EMAs
plot(ema1, color=color.red, title="EMA 21")
plot(ema2, color=color.white, title="EMA 50")
plot(ema3, color=color.blue, title="EMA 200")
// Plot RSI for visual reference
hline(rsiOverbought, "Overbought", color=color.red)
hline(rsiNeutral, "Neutral", color=color.gray)
hline(rsiOversold, "Oversold", color=color.green)
plot(rsiValue, color=color.blue, title="RSI")
// Trading logic with position management
var bool inPositionShort = false
var bool inPositionLong = false
// Trading logic for 1-minute timeframe
if (rsiValue > rsiOverbought and not inPositionShort)
strategy.entry("Sell", strategy.short)
inPositionShort := true
if (rsiValue < rsiOversold and inPositionShort)
strategy.close("Sell")
inPositionShort := false
if (ta.crossover(rsiValue, rsiNeutral) and inPositionShort)
strategy.exit("Break Even", "Sell", stop=close)
// Trading logic for 5-minute timeframe
var float lastBearishClose = na
if (close < ema3 and close[1] >= ema3) // Check if the current close is below EMA200
lastBearishClose := close
if (not na(lastBearishClose) and close > lastBearishClose and not inPositionLong)
strategy.entry("Buy", strategy.long)
inPositionLong := true
if (rsiValue > rsiOverbought and inPositionLong)
strategy.close("Buy")
inPositionLong := false
if (ta.crossunder(rsiValue, rsiNeutral) and inPositionLong)
strategy.exit("Break Even", "Buy", stop=close)
lastBearishClose := na // Reset after trade execution