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