
এই কৌশলটি একটি প্রবণতা ট্র্যাকিং সিস্টেম যা একাধিক সূচকীয় মুভিং এভারেজ (ইএমএ) এর উপর ভিত্তি করে ক্রস করা হয়, যা একটি গতিশীল স্টপ লস মেশিনের সাথে মিলিত হয়। এই কৌশলটি 21 চক্র, 50 চক্র এবং 200 চক্রের ট্রিপল ইএমএ ব্যবহার করে, স্বল্প ও মাঝারি মেয়াদী ইএমএর ক্রস দ্বারা একটি ট্রেডিং সংকেত তৈরি করে, এবং দীর্ঘমেয়াদী ইএমএ ব্যবহার করে সামগ্রিক প্রবণতার দিকনির্দেশ নিশ্চিত করে এবং ঝুঁকি পরিচালনা করার জন্য একটি নমনীয় স্টপ লস সেট করে। এই কৌশলটি বাজারের পরিবেশে প্রয়োগ করা হয় যেখানে উচ্চতর অস্থিরতা রয়েছে, বিশেষত মাঝারি ও দীর্ঘমেয়াদী ট্রেডিংয়ের জন্য উপযুক্ত।
কৌশলটির মূল যুক্তিটি তিনটি ইএমএ সিস্টেমের সমন্বয়ের উপর ভিত্তি করেঃ
এই কৌশলটি একাধিক ইএমএ সিস্টেমের সমন্বয়মূলক কার্যকারিতার মাধ্যমে বাজারের প্রবণতাকে কার্যকরভাবে ক্যাপচার করে। একটি উন্নত ঝুঁকি ব্যবস্থাপনা ব্যবস্থা এবং পরিষ্কার ট্রেডিং লজিক এটিকে একটি ব্যবহারিক ট্রেডিং সরঞ্জাম করে। ক্রমাগত অপ্টিমাইজেশন এবং উন্নতির মাধ্যমে, কৌশলটি বিভিন্ন বাজারের পরিবেশের সাথে আরও ভালভাবে খাপ খাইয়ে নিতে পারে, ব্যবসায়ের দক্ষতা এবং স্থিতিশীলতা বাড়ায়। ব্যবসায়ীদের রিয়েল-টাইমে ব্যবহারের আগে পর্যাপ্ত ফিডব্যাক এবং প্যারামিটার অপ্টিমাইজেশন করার পরামর্শ দেওয়া হয় এবং বাজারের বৈশিষ্ট্য এবং ব্যক্তিগত ঝুঁকি পছন্দগুলির সাথে উপযুক্ত সমন্বয় করা হয়।
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-17 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA Crossover with SL and TP Levels", overlay=true)
// Input settings for stop loss and take profit
slTicks = input.int(50, title="Stop Loss (ticks)", minval=1)
tpTicks = input.int(100, title="Take Profit (ticks)", minval=1)
// Input settings for moving averages
shortMAPeriod = input.int(21, title="Short MA Period")
longMAPeriod = input.int(50, title="Long MA Period")
thirdMAPeriod = input.int(200, title="Third MA Period")
// Calculate moving averages
shortMA = ta.ema(close, shortMAPeriod) // Short EMA (21-period)
longMA = ta.ema(close, longMAPeriod) // Long EMA (50-period)
thirdMA = ta.ema(close, thirdMAPeriod) // Third EMA (200-period)
// Detect crossovers for entry signals
bullishCross = ta.crossover(shortMA, longMA) and close > thirdMA
bearishCross = ta.crossunder(shortMA, longMA) and close < thirdMA
// Initialize variables for SL and TP
var float longSL = na
var float longTP = na
var float shortSL = na
var float shortTP = na
// Execute trades based on crossovers
if (bullishCross)
longSL := close - slTicks * syminfo.mintick
longTP := close + tpTicks * syminfo.mintick
strategy.entry("Long", strategy.long)
strategy.exit("Exit Long", "Long", stop=longSL, limit=longTP)
if (bearishCross)
shortSL := close + slTicks * syminfo.mintick
shortTP := close - tpTicks * syminfo.mintick
strategy.entry("Short", strategy.short)
strategy.exit("Exit Short", "Short", stop=shortSL, limit=shortTP)
// Plot the MAs
plot(shortMA, color=color.green, linewidth=2, title="21-period EMA")
plot(longMA, color=color.red, linewidth=2, title="50-period EMA")
plot(thirdMA, color=color.blue, linewidth=2, title="200-period EMA")
// Plot buy/sell signals
plotshape(series=bullishCross, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", size=size.small, offset=-1)
plotshape(series=bearishCross, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", size=size.small, offset=-1)
// // Draw SL and TP lines for Long positions
// if (bullishCross)
// line.new(x1=bar_index, y1=longSL, x2=bar_index + 1, y2=longSL, color=color.red, width=2, style=line.style_dotted)
// line.new(x1=bar_index, y1=longTP, x2=bar_index + 1, y2=longTP, color=color.green, width=2, style=line.style_dotted)
// label.new(bar_index, longSL, text="Long SL", style=label.style_label_down, color=color.red, textcolor=color.white, size=size.small)
// label.new(bar_index, longTP, text="Long TP", style=label.style_label_up, color=color.green, textcolor=color.white, size=size.small)
// // Draw SL and TP lines for Short positions
// if (bearishCross)
// line.new(x1=bar_index, y1=shortSL, x2=bar_index + 1, y2=shortSL, color=color.red, width=2, style=line.style_dotted)
// line.new(x1=bar_index, y1=shortTP, x2=bar_index + 1, y2=shortTP, color=color.green, width=2, style=line.style_dotted)
// label.new(bar_index, shortSL, text="Short SL", style=label.style_label_down, color=color.red, textcolor=color.white, size=size.small)
// label.new(bar_index, shortTP, text="Short TP", style=label.style_label_up, color=color.green, textcolor=color.white, size=size.small)