
এই কৌশলটি একটি ট্রেন্ড অনুসরণ করে ট্রেডিং সিস্টেম যা রিলেটিভ স্ট্রেংথ ইনডেক্স (RSI), ওয়েটেড মুভিং এভারেজ (WMA), এবং এক্সপোনেনশিয়াল মুভিং এভারেজ (EMA) কে একত্রিত করে। কৌশলটি ট্রেন্ডিং পয়েন্টে বাজারের গতির পরিবর্তনগুলি ক্যাপচার করতে একাধিক প্রযুক্তিগত সূচক ব্যবহার করে, যার ফলে ট্রেডিং সংকেত তৈরি হয়। সিস্টেমটি ট্রেন্ডের দিকনির্দেশ নিশ্চিত করতে WMA এবং EMA-এর সংযোগস্থল ব্যবহার করে, এবং ট্রেডিংয়ের সঠিকতা উন্নত করতে বাজারের অবস্থা ফিল্টার করতে RSI সূচকের সাথে এটিকে একত্রিত করে।
কৌশলটির মূল যুক্তি নিম্নলিখিত মূল উপাদানগুলির উপর ভিত্তি করে:
এটি একাধিক প্রযুক্তিগত সূচকের উপর ভিত্তি করে একটি প্রবণতা অনুসরণ করে, এটি লেনদেনের স্থিতিশীলতা নিশ্চিত করার সাথে সাথে RSI, WMA এবং EMA এর সম্মিলিত ব্যবহারের মাধ্যমে। যদিও হিস্টেরেসিস এবং মিথ্যা সংকেতের একটি নির্দিষ্ট ঝুঁকি রয়েছে, যুক্তিসঙ্গত অপ্টিমাইজেশন এবং ঝুঁকি ব্যবস্থাপনার ব্যবস্থার মাধ্যমে, এই কৌশলটির ভাল ব্যবহারিক মূল্য এবং সম্প্রসারণের জন্য জায়গা রয়েছে।
/*backtest
start: 2024-12-17 00:00:00
end: 2025-01-16 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/
//@version=5
strategy(title="RSI + WMA + EMA Strategy", shorttitle="RSI Strategy", overlay=true)
// RSI Settings
rsiLengthInput = input.int(14, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(close, "Source", group="RSI Settings")
// WMA and EMA Settings
wmaLengthInput = input.int(45, minval=1, title="WMA Length", group="WMA Settings")
wmaColorInput = input.color(color.blue, title="WMA Color", group="WMA Settings")
emaLengthInput = input.int(89, minval=1, title="EMA Length", group="EMA Settings")
emaColorInput = input.color(color.purple, title="EMA Color", group="EMA Settings")
// RSI Calculation
change = ta.change(rsiSourceInput)
up = ta.rma(math.max(change, 0), rsiLengthInput)
down = ta.rma(-math.min(change, 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
// WMA and EMA Calculation
wma = ta.wma(rsi, wmaLengthInput)
ema = ta.ema(rsi, emaLengthInput)
// RSI Color Logic
rsiColor = rsi > 70 ? color.new(color.green, 100 - math.round(rsi)) : rsi < 30 ? color.new(color.red, math.round(rsi)) : color.new(color.blue, 50)
// Plot RSI, WMA, and EMA
plot(rsi, "RSI", color=rsiColor)
plot(wma, title="WMA", color=wmaColorInput, linewidth=2)
plot(ema, title="EMA", color=emaColorInput, linewidth=2)
// Highlight RSI Area between 30 and 70
bgcolor(rsi >= 30 and rsi <= 70 ? color.new(color.blue, 90) : na)
// Entry and Exit Conditions
longCondition = ta.crossover(wma, ema) and rsi < 50
shortCondition = ta.crossunder(wma, ema) and rsi > 50
if (longCondition)
strategy.entry("Long", strategy.long)
alert("Buy Signal: WMA crossed above EMA, RSI < 50", alert.freq_once_per_bar)
if (shortCondition)
strategy.entry("Short", strategy.short)
alert("Sell Signal: WMA crossed below EMA, RSI > 50", alert.freq_once_per_bar)
// Optional: Plot Buy/Sell Signals on Chart
plotshape(series=longCondition, style=shape.labelup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal")
plotshape(series=shortCondition, style=shape.labeldown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")