
এই কৌশলটি একাধিক প্রযুক্তিগত সূচক ব্যবহার করে, যার মধ্যে রয়েছে ইন্ডেক্স মুভিং এভারেজ (EMA), মুভিং এভারেজ কনভার্সন স্প্রেডিং ইন্ডেক্স (MACD), সুপারট্রেন্ড, গড় দিকনির্দেশক সূচক (ADX) এবং গড় বাস্তব তরঙ্গদৈর্ঘ্য (ATR), এই সূচকগুলির সংমিশ্রণ দ্বারা বাজার প্রবণতা, অস্থিরতা এবং ট্রেডিং সংকেতগুলি বিচার করার জন্য যাতে ক্রিপ্টোকারেন্সি ট্রেডিংয়ে ভাল রিটার্ন পাওয়া যায়। এই কৌশলটি বিভিন্ন সূচকগুলির সুবিধাগুলি ব্যবহার করে, প্রবণতা বিচার, ঝড়ের বিচার এবং ঝুঁকি নিয়ন্ত্রণের ক্ষেত্রে ভারসাম্য বজায় রাখার চেষ্টা করে, যাতে ব্যবসায়ীদের নির্ভরযোগ্য ট্রেডিং সংকেত সরবরাহ করা যায়।
ইএমএ-এমএসিডি-সুপারট্রেন্ড-এডিএক্স-এটিআর মাল্টি-ইনডিকেটর ট্রেডিং সিগন্যাল কৌশল হল একটি পরিমাণগত ট্রেডিং কৌশল যা একাধিক প্রযুক্তিগত সূচক ব্যবহার করে। ইএমএ, এমএসিডি, এডিএক্স এবং এটিআর ইত্যাদি সূচকগুলির সমন্বয় দ্বারা, কৌশলটি ট্রেডারদের জন্য নির্ভরযোগ্য ট্রেডিং সংকেত সরবরাহ করতে পারে, যেমন প্রবণতা, অস্থিরতা এবং ঝুঁকি নিয়ন্ত্রণের মতো একাধিক মাত্রা থেকে বাজার বিশ্লেষণ করতে পারে। এই কৌশলটির সুবিধা হ’ল একাধিক সূচক সমন্বয়, প্রবণতা বিচার, ঝুঁকি নিয়ন্ত্রণ এবং ক্ষতি বন্ধ করার ব্যবস্থা, তবে প্যারামিটার অপ্টিমাইজেশন, বাজার অভিযোজন, লেনদেনের ব্যয় এবং সীমাবদ্ধতা পুনরায় পরিমাপ করার মতো ঝুঁকিও রয়েছে। ভবিষ্যতে গতিশীল প্যারামিটার অপ্টিমাইজেশন, বাজার সংবেদনশীল সূচক, ক্ষতি বন্ধ করার ব্যবস্থা, পজিশন অপ্টিমাইজেশন এবং একাধিক সময় ফ্রেমের সাথে কৌশলটি উন্নত এবং উন্নত করতে পারে।
/*backtest
start: 2023-03-23 00:00:00
end: 2024-03-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA-MACD-SuperTrend-ADX-ATR Strategy",
overlay = true,
initial_capital = 1000,
default_qty_type = strategy.percent_of_equity,
default_qty_value = 70)
//MACD
[macdLine, signalLine, hist] = ta.macd(close, 12, 26, 9)
//Plot Candlesticks
candlestickscolor = (hist >= 0 ? (hist[1] < hist ? #26A69A : #B2DFDB) : (hist[1] < hist ? #FFCDD2 : #FF5252))
plotcandle(open, high, low, close,
color = candlestickscolor,
bordercolor = candlestickscolor)
//EMA
ema12 = ta.ema(close, 12)
ema26 = ta.ema(close, 26)
//Plot EMA
plot(ema26, color= #EE6969, linewidth = 2)
plot(ema12, color= #B4CBF0, linewidth = 2)
//Average Directional Index (ADX) Calculation
trueRange = ta.rma(ta.tr, 14)
plusDM = ta.rma(math.max(high - high[1], 0), 14)
minusDM = ta.rma(math.max(low[1] - low, 0), 14)
plusDI = 100 * ta.rma(plusDM / trueRange, 14)
minusDI = 100 * ta.rma(minusDM / trueRange, 14)
adxValue = 100 *ta.rma(math.abs(plusDI - minusDI) / (plusDI + minusDI), 14)
//Trend Confirmation (ADX)
trending = adxValue > 15
//Volatility Filter (ATR)
atrValue = ta.atr(14)
volatility = atrValue > 0.5 * ta.atr(20)
//SuperTrend
atrlength = input.int(10, "ATR Length", step = 1)
factor = input.float(3, "Factor", step = 0.1)
[supertrend, direction] = ta.supertrend(factor, atrlength)
supertrend := barstate.isfirst ? na : supertrend
//Plot SuperTrend
uptrend = plot(direction < 0 ? supertrend : na,
"Up Trend", color = color.green, style = plot.style_linebr, linewidth = 1)
downtrend = plot(direction > 0 ? supertrend : na,
"Down Trend", color = color.red, style = plot.style_linebr, linewidth = 1)
bodymiddle = plot(barstate.isfirst ? na : (open + close)/2, "Body Middle", display = display.none)
fill(bodymiddle, uptrend, color.new(color.green, 90), fillgaps = false)
fill(bodymiddle, downtrend, color.new(color.red, 90), fillgaps = false)
//Entry Conditions
longCondition = ta.crossover(ema12, ema26) and trending and volatility and hist > 0
shortCondition = ta.crossunder(ema12, ema26) and trending and volatility and hist < 0
long_SL_Con = ta.crossunder(close, supertrend)
short_SL_Con = ta.crossover(close, supertrend)
//Plot Signal
plotshape(longCondition,
title='Buy', text='Buy',
location= location.belowbar,
style=shape.labelup, size=size.tiny,
color=color.green, textcolor=color.new(color.white, 0))
plotshape(shortCondition,
title='Sell', text='Sell',
location= location.abovebar,
style=shape.labeldown, size=size.tiny,
color=color.red, textcolor=color.new(color.white, 0))
//Backtest
start = timestamp(2020, 1, 1, 0, 0, 0)
end = timestamp(2024, 1, 1, 0, 0, 0)
backtestperiod = time >= start and time <= end
if longCondition and backtestperiod
strategy.entry("Buy", strategy.long)
if long_SL_Con and backtestperiod
strategy.close("Buy")
if shortCondition and backtestperiod
strategy.entry("Sell", strategy.short)
if short_SL_Con and backtestperiod
strategy.close("Sell")