
रणनीति एक बहु-तकनीकी सूचक पर आधारित एक मात्रात्मक ट्रेडिंग प्रणाली है, जो सूचकांक चलती औसत (EMA), अपेक्षाकृत मजबूत सूचक (RSI) और औसत रुझान सूचक (ADX) को तीन प्रमुख तकनीकी संकेतकों में एकीकृत करती है। रणनीति ईएमए तेज धीमी रेखा के क्रॉस सिग्नल को मुख्य प्रवेश आधार के रूप में लेती है, जबकि आरएसआई सूचक के साथ ओवरबॉट की पुष्टि करती है, और ADX सूचक का उपयोग करके बाजार की प्रवृत्ति की ताकत का आकलन करती है, जिससे एक पूर्ण ट्रेडिंग निर्णय प्रणाली बनती है। रणनीति में एक जोखिम प्रबंधन मॉड्यूल भी शामिल है, जो जोखिम-लाभ अनुपात सेट करके प्रत्येक व्यापार के स्टॉप-लॉस और स्टॉप-स्टॉप स्थिति को नियंत्रित करता है।
इस रणनीति का मूल तर्क निम्नलिखित प्रमुख घटकों पर आधारित हैः
यह एक तर्कसंगत, तार्किक रूप से डिजाइन की गई बहु-तकनीकी सूचक ट्रेडिंग रणनीति है। ईएमए, आरएसआई और एडीएक्स के तीन क्लासिक तकनीकी संकेतकों के एकीकरण के माध्यम से, रणनीति ने ट्रेंड ट्रैकिंग और जोखिम नियंत्रण में अच्छा प्रदर्शन किया है। हालांकि कुछ जगहों पर अनुकूलन की आवश्यकता है, लेकिन कुल मिलाकर रणनीति में अच्छा व्यावहारिक मूल्य और विस्तार की जगह है।
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-11 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Enhanced EMA + RSI + ADX Strategy", overlay=true)
// Input parameters
lenFast = input.int(9, title="Fast EMA Length", minval=1)
lenSlow = input.int(21, title="Slow EMA Length", minval=1)
rsiPeriod = input.int(14, title="RSI Period")
adxPeriod = input.int(14, title="ADX Period")
adxSmoothing = input.int(1, title="ADX Smoothing")
adxThreshold = input.int(20, title="ADX Threshold")
riskRewardRatio = input.float(2.0, title="Risk/Reward Ratio")
// EMA Calculations
fastEMA = ta.ema(close, lenFast)
slowEMA = ta.ema(close, lenSlow)
// RSI Calculation
rsiValue = ta.rsi(close, rsiPeriod)
// ADX Calculation
[plusDI, minusDI, adxValue] = ta.dmi(adxPeriod, adxSmoothing)
// Entry Conditions
buyCondition = ta.crossover(fastEMA, slowEMA) and rsiValue < 60 and adxValue > adxThreshold
sellCondition = ta.crossunder(fastEMA, slowEMA) and rsiValue > 40 and adxValue > adxThreshold
// Entry logic
if (buyCondition)
strategy.entry("Buy", strategy.long)
strategy.exit("Sell", from_entry="Buy", limit=close + (close - strategy.position_avg_price) * riskRewardRatio, stop=close - (close - strategy.position_avg_price))
if (sellCondition)
strategy.close("Buy")
// Plotting EMAs (thinner lines)
plot(fastEMA, color=color.new(color.green, 0), title="Fast EMA", linewidth=1)
plot(slowEMA, color=color.new(color.red, 0), title="Slow EMA", linewidth=1)
// Entry and exit markers (larger shapes)
plotshape(series=buyCondition, style=shape.triangleup, location=location.belowbar, color=color.new(color.green, 0), size=size.normal, title="Buy Signal")
plotshape(series=sellCondition, style=shape.triangledown, location=location.abovebar, color=color.new(color.red, 0), size=size.normal, title="Sell Signal")
// Displaying price labels for buy/sell signals
if (buyCondition)
label.new(bar_index, low, text="Buy\n" + str.tostring(close), color=color.new(color.green, 0), style=label.style_label_down, textcolor=color.white)
if (sellCondition)
label.new(bar_index, high, text="Sell\n" + str.tostring(close), color=color.new(color.red, 0), style=label.style_label_up, textcolor=color.white)
// Optional: Add alerts for entry signals
alertcondition(buyCondition, title="Buy Alert", message="Buy signal triggered")
alertcondition(sellCondition, title="Sell Alert", message="Sell signal triggered")