
এই কৌশলটি একটি পরিমাণগত ট্রেডিং সিস্টেম যা সূচকীয় মুভিং এভারেজ (EMA) এবং মুভিং এভারেজ প্রবণতা/বিপরীতমুখী (MACD) সূচককে একত্রিত করে। এটি সংক্ষিপ্ত এবং দীর্ঘমেয়াদী EMA এর ক্রস সংকেত এবং MACD গতিশীলতা নিশ্চিতকরণের মাধ্যমে ব্যবসায়ীদের জন্য একটি বিস্তৃত প্রবণতা ট্র্যাকিং সমাধান সরবরাহ করে। এই কৌশলটি একটি গতিশীল স্টপ লস এবং স্টপ মেশিনও অন্তর্ভুক্ত করে যা কার্যকরভাবে ঝুঁকি নিয়ন্ত্রণ করে এবং একই সাথে লাভের সর্বাধিকীকরণ করে।
কৌশলটির কেন্দ্রীয় যুক্তিটি দুটি প্রযুক্তিগত সূচকের সমন্বয়মূলক কার্যকারিতার উপর ভিত্তি করে তৈরি করা হয়েছে। প্রথমত, 12-চক্র এবং 26-চক্রের ইএমএ ব্যবহার করে বাজারের প্রবণতা সনাক্ত করা হয়, যখন স্বল্পমেয়াদী ইএমএ দীর্ঘমেয়াদী ইএমএ অতিক্রম করে, তখন একটি মাল্টি-সিগন্যাল উত্পন্ন হয় এবং নীচে একটি খালি সংকেত উত্পন্ন হয়। দ্বিতীয়ত, প্রবণতা গতিশীলতা নিশ্চিত করতে MACD সূচকগুলি ((12,26,9 সেটআপ) ব্যবহার করা হয়, যার জন্য MACD লাইন এবং লাইনের সংকেতের অবস্থান সম্পর্ক ইএমএ উত্পন্ন ট্রেডিং সংকেতকে সমর্থন করে। সিস্টেমটি গতিশীল স্টপ লস ((ডিফল্ট 2%) এবং স্টপ স্টপ ডিফল্ট ((5%) শতাংশ পদ্ধতিতে সেট করে এবং ইএমএ ক্রস বা এমএসিডিকে অতিরিক্ত পজিশন সংকেতকে বিপরীতে ট্রিগার করে।
এটি একটি যুক্তিসঙ্গত, যুক্তিসঙ্গত এবং সুস্পষ্ট প্রবণতা ট্র্যাকিং কৌশল। কৌশলটি সহজ এবং সহজেই বোঝা যায় তা বজায় রেখে ইএমএ এবং এমএসিডি এর সুবিধাগুলি একত্রিত করে একটি নির্ভরযোগ্য ট্রেডিং সিগন্যাল জেনারেশন অর্জন করা হয়। কৌশলটি কাস্টমাইজযোগ্য, ঝুঁকি ব্যবস্থাপনা ব্যবস্থাটি উন্নত এবং মাঝারি এবং দীর্ঘমেয়াদী প্রবণতা ব্যবসায়ের জন্য উপযুক্ত। ব্যবসায়ীরা তাদের ব্যবহারের আগে প্যারামিটার সেটিংটি ভালভাবে পরীক্ষা করার পরামর্শ দেয় এবং নির্দিষ্ট ট্রেডিং জাত এবং বাজারের পরিবেশের উপর ভিত্তি করে লক্ষ্যযুক্ত অপ্টিমাইজেশন করে।
/*backtest
start: 2025-01-21 00:00:00
end: 2025-02-03 15:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("EMA + MACD Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// === Inputs ===
shortEmaLength = input.int(12, title="Short EMA Period", minval=1)
longEmaLength = input.int(26, title="Long EMA Period", minval=1)
macdFastLength = input.int(12, title="MACD Fast EMA Period", minval=1)
macdSlowLength = input.int(26, title="MACD Slow EMA Period", minval=1)
macdSignalLength = input.int(9, title="MACD Signal Period", minval=1)
stopLossPerc = input.float(2.0, title="Stop-Loss (%)", minval=0.1, step=0.1)
takeProfitPerc = input.float(5.0, title="Take-Profit (%)", minval=0.1, step=0.1)
// === Indicator Calculations ===
// Exponential Moving Averages (EMA)
shortEMA = ta.ema(close, shortEmaLength)
longEMA = ta.ema(close, longEmaLength)
// MACD
[macdLine, signalLine, _] = ta.macd(close, macdFastLength, macdSlowLength, macdSignalLength)
// === Entry Conditions ===
// Buy signal: Short EMA crosses above Long EMA and MACD > Signal Line
longCondition = ta.crossover(shortEMA, longEMA) and (macdLine > signalLine)
// Sell signal: Short EMA crosses below Long EMA and MACD < Signal Line
shortCondition = ta.crossunder(shortEMA, longEMA) and (macdLine < signalLine)
// === Entry Signals with Stop-Loss and Take-Profit ===
if (longCondition)
strategy.entry("Long", strategy.long)
// Calculate Stop-Loss and Take-Profit
stopPrice = close * (1 - stopLossPerc / 100)
takePrice = close * (1 + takeProfitPerc / 100)
strategy.exit("Long Exit", from_entry="Long", stop=stopPrice, limit=takePrice)
if (shortCondition)
strategy.entry("Short", strategy.short)
// Calculate Stop-Loss and Take-Profit
stopPrice = close * (1 + stopLossPerc / 100)
takePrice = close * (1 - takeProfitPerc / 100)
strategy.exit("Short Exit", from_entry="Short", stop=stopPrice, limit=takePrice)
// === Exit Conditions ===
// Alternative exit conditions based on crossovers
exitLongCondition = ta.crossunder(shortEMA, longEMA) or (macdLine < signalLine)
exitShortCondition = ta.crossover(shortEMA, longEMA) or (macdLine > signalLine)
if (exitLongCondition)
strategy.close("Long")
if (exitShortCondition)
strategy.close("Short")
// === Indicator Plotting ===
// EMA
plot(shortEMA, color=color.blue, title="Short EMA")
plot(longEMA, color=color.red, title="Long EMA")
// MACD Indicator in separate window
hline(0, "Zero Line", color=color.gray, linestyle=hline.style_dotted)
plot(macdLine - signalLine, color=(macdLine - signalLine) >= 0 ? color.green : color.red, title="MACD Histogram", style=plot.style_histogram)
plot(macdLine, color=color.blue, title="MACD Line")
plot(signalLine, color=color.orange, title="Signal Line")
// === Signal Visualization ===
// Markers for Long and Short entries
plotshape(series=longCondition, title="Long Entry", location=location.belowbar, color=color.green, style=shape.labelup, text="Long")
plotshape(series=shortCondition, title="Short Entry", location=location.abovebar, color=color.red, style=shape.labeldown, text="Short")
// Markers for Long and Short exits
plotshape(series=exitLongCondition, title="Long Exit", location=location.abovebar, color=color.red, style=shape.labeldown, text="Exit Long")
plotshape(series=exitShortCondition, title="Short Exit", location=location.belowbar, color=color.green, style=shape.labelup, text="Exit Short")