
এই কৌশলটি একটি ট্রেডিং সিস্টেম যা দ্বৈত সমান্তরাল প্রবণতা বিচার, ADX গতিশীলতা ফিল্টারিং এবং স্বনির্ধারিত ঝুঁকি ব্যবস্থাপনার সমন্বয় করে। কৌশলটি 50 এবং 200 চক্রের সূচকীয় চলমান গড় ((EMA) ব্যবহার করে, যা প্রবণতা বিচার করার ভিত্তি হিসাবে, ADX এবং DMI সূচকগুলির মাধ্যমে গতিশীলতা নিশ্চিত করে এবং এটিআর গতিশীলতার উপর ভিত্তি করে স্টপ লস এবং লাভের লক্ষ্যগুলিকে সামঞ্জস্য করে।
এই কৌশলটির মূল তত্ত্বটি তিনটি ভাগে বিভক্তঃ
এটি একটি কাঠামোগত, যুক্তিসঙ্গতভাবে সুস্পষ্ট প্রবণতা ট্র্যাকিং কৌশল, যা একাধিক প্রযুক্তিগত সূচকগুলির সমন্বিত ব্যবহারের মাধ্যমে নির্ভরযোগ্য ট্রেডিং সিগন্যাল জেনারেশন এবং ঝুঁকি নিয়ন্ত্রণের জন্য ব্যবহৃত হয়। কৌশলটি শক্তিশালী এবং অপ্টিমাইজেশনের জন্য আরও বেশি জায়গা রয়েছে। যুক্তিসঙ্গত প্যারামিটার সমন্বয় এবং অপ্টিমাইজেশন ব্যবস্থাগুলির মাধ্যমে, এটি বিভিন্ন বাজারের পরিবেশের সাথে খাপ খাইয়ে নিতে পারে।
/*backtest
start: 2025-02-10 00:00:00
end: 2025-02-17 00:00:00
period: 3m
basePeriod: 3m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("XAUUSD 15m Trend Strategy", overlay=true, margin_long=100, margin_short=100)
// Input parameters
emaFast = input.int(50, "Fast EMA Period", minval=1)
emaSlow = input.int(200, "Slow EMA Period", minval=1)
adxThreshold = input.int(25, "ADX Threshold", minval=1)
lookback = input.int(5, "Swing Lookback Period", minval=1)
riskReward = input.float(1.5, "Risk Reward Ratio", minval=1.0)
// Calculate indicators
ema50 = ta.ema(close, emaFast)
ema200 = ta.ema(close, emaSlow)
[diPlus, diMinus, adx] = ta.dmi(14, 14)
atr = ta.atr(14)
// Trend conditions
uptrend = ema50 > ema200 and adx >= adxThreshold and diPlus > diMinus
downtrend = ema50 < ema200 and adx >= adxThreshold and diMinus > diPlus
// Entry conditions
longCondition = uptrend and ta.crossover(close, ema50)
shortCondition = downtrend and ta.crossunder(close, ema50)
// Calculate risk levels
longStop = ta.lowest(low, lookback) - atr * 0.5
longProfit = close + (close - longStop) * riskReward
shortStop = ta.highest(high, lookback) + atr * 0.5
shortProfit = close - (shortStop - close) * riskReward
// Execute trades
if (longCondition)
strategy.entry("Long", strategy.long)
strategy.exit("Exit Long", "Long", stop=longStop, limit=longProfit)
if (shortCondition)
strategy.entry("Short", strategy.short)
strategy.exit("Exit Short", "Short", stop=shortStop, limit=shortProfit)
// Plotting
plot(ema50, "EMA 50", color=color.blue)
plot(ema200, "EMA 200", color=color.orange)
plot(strategy.position_size > 0 ? longStop : na, "Long Stop", color=color.red, style=plot.style_linebr)
plot(strategy.position_size > 0 ? longProfit : na, "Long Target", color=color.green, style=plot.style_linebr)
plot(strategy.position_size < 0 ? shortStop : na, "Short Stop", color=color.red, style=plot.style_linebr)
plot(strategy.position_size < 0 ? shortProfit : na, "Short Target", color=color.green, style=plot.style_linebr)
// Signal markers
plotshape(longCondition, "Buy Signal", shape.triangleup, location.belowbar, color=color.green, size=size.small)
plotshape(shortCondition, "Sell Signal", shape.triangledown, location.abovebar, color=color.red, size=size.small)