
यह रणनीति एक प्रवृत्ति ट्रैकिंग ट्रेडिंग प्रणाली है जिसमें कई समय-सीमा विश्लेषण शामिल हैं और 15 मिनट के समय-सीमा पर सूचकांक चलती औसत (ईएमए), औसत प्रवृत्ति सूचकांक (एडीएक्स) और अपेक्षाकृत मजबूत सूचकांक (आरएसआई) जैसे कई तकनीकी संकेतकों को एकीकृत करके व्यापार करता है। रणनीति एक संरक्षित स्थिति प्रबंधन दृष्टिकोण का उपयोग करती है, जो प्रति ट्रेड जोखिम को कुल खाते के 2% के भीतर नियंत्रित करती है ताकि दीर्घकालिक स्थिर रिटर्न प्राप्त किया जा सके।
रणनीति प्रवृत्ति की दिशा की पहचान करने के लिए तेजी से ईएमए ((50 चक्र) और धीमी गति से ईएमए ((200 चक्र) का उपयोग करती है, और प्रवृत्ति की ताकत की पुष्टि करने के लिए एडीएक्स संकेतक के साथ संयुक्त है। जब एडीएक्स 25 से अधिक होता है, तो यह दर्शाता है कि बाजार एक मजबूत प्रवृत्ति की स्थिति में है। आरएसआई संकेतक को ओवरबॉट ओवरसोल्ड स्थिति की पहचान करने के लिए उपयोग किया जाता है, आरएसआई 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")