
এই কৌশলটি একটি প্রবণতা ট্র্যাকিং ট্রেডিং সিস্টেম যা একাধিক টাইম ফ্রেম বিশ্লেষণের সাথে মিলিত হয়, যা 15 মিনিটের সময় ফ্রেমে ট্রেডিংয়ের জন্য একাধিক প্রযুক্তিগত সূচক যেমন ইন্ডেক্স মুভিং এভারেজ (EMA), গড় ট্রেন্ডিং সূচক (ADX) এবং আপেক্ষিকভাবে দুর্বল সূচক (RSI) এর সমন্বয় করে। কৌশলটি একটি রক্ষণশীল পজিশন ম্যানেজমেন্ট পদ্ধতি গ্রহণ করে, প্রতিটি ট্রেডিংয়ের ঝুঁকিটি অ্যাকাউন্টের মোটের 2% এর মধ্যে নিয়ন্ত্রণ করে, দীর্ঘমেয়াদী স্থিতিশীল আয় অর্জনের জন্য।
কৌশলটি ট্রেন্ডের দিকনির্দেশনা সনাক্ত করতে দ্রুত EMA ((50 চক্র) এবং ধীর EMA ((200 চক্র) এর ক্রস ব্যবহার করে এবং ট্রেন্ডের শক্তি নিশ্চিত করার জন্য ADX সূচকগুলির সাথে মিলিত হয়। যখন ADX সংখ্যাটি 25 এর চেয়ে বড় হয়, তখন বাজারটি একটি শক্তিশালী প্রবণতার মধ্যে রয়েছে। RSI সূচকটি ওভার-বয় ওভার-বিক্রয় অবস্থার সনাক্তকরণের জন্য ব্যবহৃত হয়, আরএসআই 70 এ প্লেইন ওভারহেড এবং আরএসআই 30 এ প্লেইন শূন্য। একই সাথে, কৌশলটি 4 ঘন্টা সময় ফ্রেমে ইএমএ সূচককে ট্রেডিংয়ের নির্ভুলতা বাড়ানোর জন্য উচ্চ স্তরের প্রবণতা নিশ্চিতকরণ হিসাবে প্রবর্তন করে।
এই কৌশলটি বহু-মাত্রিক প্রযুক্তিগত বিশ্লেষণ পদ্ধতি এবং কঠোর ঝুঁকি নিয়ন্ত্রণের মাধ্যমে ভাল ব্যবসায়ের সম্ভাবনা প্রদর্শন করে। যদিও এটি পুনরায় পরীক্ষায় স্থিতিশীল, তবে এটি এখনও রিয়েল-টাইম পরিবেশে পুরোপুরি যাচাইয়ের প্রয়োজন। কৌশলটির মডিউলাইজড নকশাটি এটিকে শক্তিশালী অভিযোজনযোগ্যতা এবং অপ্টিমাইজেশনের জন্য জায়গা দেয়, যা বাজারের পরিবর্তনের সাথে নমনীয়ভাবে সামঞ্জস্য করতে পারে।
/*backtest
start: 2024-02-20 00:00:00
end: 2025-02-18 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"DOGE_USDT"}]
*/
//@version=5
strategy("DOGE Enhanced Trend Following Strategy",
overlay=true,
default_qty_type=strategy.percent_of_equity,
default_qty_value=5,
commission_value=0.1,
slippage=2)
// === INPUT PARAMETERS ===
emaFastLength = input(50, title="Fast EMA Length")
emaSlowLength = input(200, title="Slow EMA Length")
adxLength = input.int(14, title="ADX Length")
adxSmoothing = input.int(14, title="ADX Smoothing Factor")
adxThreshold = input.float(25, title="ADX Trend Strength Threshold")
rsiLength = input.int(14, title="RSI Length")
rsiOverbought = input.float(70, title="RSI Overbought Level")
rsiOversold = input.float(30, title="RSI Oversold Level")
takeProfitMultiplier = input.float(1.03, title="Take Profit Multiplier", tooltip="Set a dynamic take profit level, e.g., 1.03 = 3% profit")
stopLossMultiplier = input.float(0.97, title="Stop Loss Multiplier", tooltip="Set stop loss level, e.g., 0.97 = 3% below entry price")
// === INDICATOR CALCULATIONS ===
emaFast = ta.ema(close, emaFastLength)
emaSlow = ta.ema(close, emaSlowLength)
[dip, dim, adxValue] = ta.dmi(adxLength, adxSmoothing)
rsiValue = ta.rsi(close, rsiLength)
// === MULTI-TIMEFRAME CONFIRMATION ===
emaFastHTF = request.security(syminfo.tickerid, "240", ta.ema(close, emaFastLength))
emaSlowHTF = request.security(syminfo.tickerid, "240", ta.ema(close, emaSlowLength))
// === CONDITIONS FOR TRADE ENTRY ===
bullishTrend = ta.crossover(emaFast, emaSlow) and adxValue > adxThreshold and rsiValue > rsiOversold
bearishTrend = ta.crossunder(emaFast, emaSlow) and adxValue > adxThreshold and rsiValue < rsiOverbought
// === TRADE EXECUTION ===
if (bullishTrend)
strategy.entry("Long", strategy.long)
strategy.exit("TakeProfit_Long", from_entry="Long", limit=close * takeProfitMultiplier, stop=close * stopLossMultiplier)
if (bearishTrend)
strategy.entry("Short", strategy.short)
strategy.exit("TakeProfit_Short", from_entry="Short", limit=close * (2 - takeProfitMultiplier), stop=close * (2 - stopLossMultiplier))
// === VISUAL INDICATORS AND PLOTTING ===
plot(emaFast, color=color.blue, linewidth=2, title="Fast EMA")
plot(emaSlow, color=color.red, linewidth=2, title="Slow EMA")
hline(adxThreshold, "ADX Threshold", color=color.gray, linestyle=hline.style_dotted)
bgcolor(bullishTrend ? color.new(color.green, 85) : bearishTrend ? color.new(color.red, 85) : na)
// === ALERTS ===
alertcondition(bullishTrend, title="Buy Signal", message="Bullish trend detected. Consider entering a long position.")
alertcondition(bearishTrend, title="Sell Signal", message="Bearish trend detected. Consider entering a short position.")
// === STRATEGY SETTINGS FOR REALISTIC TESTING ===
strategy.close("Long", when=rsiValue > rsiOverbought, comment="Exit Long on RSI Overbought")
strategy.close("Short", when=rsiValue < rsiOversold, comment="Exit Short on RSI Oversold")