
यह रणनीति एक बहु-कारक प्रवृत्ति ट्रैकिंग प्रणाली है जो पारलौकिक रेखा-परिवर्तन सूचकांक (SAR), सूचकांक चलती औसत (EMA), अपेक्षाकृत मजबूत सूचकांक (RSI) और औसत प्रवृत्ति सूचकांक (ADX) को जोड़ती है। यह कई तकनीकी संकेतकों के सामंजस्यपूर्ण कार्य के माध्यम से संभावित प्रवृत्ति की दिशा की पहचान करता है और प्रवृत्ति की पुष्टि होने पर व्यापार करता है। सिग्नल रणनीति में औसत वास्तविक तरंग दैर्ध्य (ATR) के आधार पर गतिशील जोखिम प्रबंधन विधि, स्वचालित स्टॉप लॉस और स्टॉप बैंड स्तर की गणना भी शामिल है।
इस बहु-कारक प्रवृत्ति रणनीति ने संकेतक समन्वय और सख्त जोखिम प्रबंधन के माध्यम से प्रवृत्ति बाजार में उत्कृष्ट प्रदर्शन किया है। मुख्य लाभ सिग्नल के कई सत्यापन और गतिशील जोखिम नियंत्रण में है, लेकिन इसके पैरामीटर संवेदनशीलता और पिछड़े जोखिम पर ध्यान देना चाहिए। भविष्य के अनुकूलन को रणनीति की मजबूती को बढ़ाने के लिए पैरामीटर आत्म-अनुकूलन तंत्र और बाजार की स्थिति की पहचान पर ध्यान देना चाहिए।
/*backtest
start: 2024-04-23 00:00:00
end: 2024-12-31 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"DOGE_USDT"}]
*/
//@version=5
strategy("🚀 Estrategia SAR+EMA+RSI con Alertas", overlay=true)
// ———— PARÁMETROS ————
riskPerTrade = input.float(2.0, title="Riesgo por operación (%)", minval=0.5, step=0.5)
sarStart = input.float(0.02, title="SAR Start", minval=0.001)
sarIncrement = input.float(0.02, title="SAR Increment", minval=0.001)
sarMax = input.float(0.2, title="SAR Max", minval=0.1)
rsiLength = input.int(6, title="RSI Length", minval=3, maxval=10)
emaFastLength = input.int(2, title="EMA Rápida", minval=1, maxval=5)
adxThreshold = input.int(30, title="ADX mínimo", minval=20, maxval=50)
atrMultiplier = input.float(1.5, title="Multiplicador ATR para SL", step=0.1)
// ———— INDICADORES ————
sar = ta.sar(sarStart, sarIncrement, sarMax)
emaFast = ta.ema(close, emaFastLength)
rsi = ta.rsi(close, rsiLength)
[diplus, diminus, adx] = ta.dmi(14, 14) // Ahora pasamos length y adxSmoothing
atr = ta.atr(14)
// ———— CONDICIONES ————
longCondition = ta.crossover(close, sar) and close > emaFast and rsi > 60 and adx >= adxThreshold
shortCondition = ta.crossunder(close, sar) and close < emaFast and rsi < 40 and adx >= adxThreshold
// ———— FUNCIÓN MENSAJE ALERTA ————
getAlertMessage(isLong) =>
slPoints = atr * atrMultiplier
message = (isLong ? "🚀 COMPRA " : "🔻 VENTA ") + syminfo.ticker + "\n" +
"Precio: " + str.tostring(math.round(close, 2)) + "\n" +
"SL: " + str.tostring(math.round(isLong ? (close - slPoints) : (close + slPoints), 2)) + "\n" +
"TP: " + str.tostring(math.round(isLong ? (close + slPoints * 2) : (close - slPoints * 2), 2)) + "\n" +
"RSI: " + str.tostring(math.round(rsi, 1)) + "\n" +
"ADX: " + str.tostring(math.round(adx, 1))
message
// ———— ALERTAS ————
if (longCondition)
alert(getAlertMessage(true), alert.freq_once_per_bar_close)
if (shortCondition)
alert(getAlertMessage(false), alert.freq_once_per_bar_close)
if (longCondition)
alert(getAlertMessage(true), alert.freq_once_per_bar_close)
if (shortCondition)
alert(getAlertMessage(false), alert.freq_once_per_bar_close)
// ———— ENTRADAS DE ESTRATEGIA ————
riskAmount = strategy.equity * (riskPerTrade / 100)
slPoints = atr * atrMultiplier
qty = riskAmount / close
if (longCondition)
strategy.entry("Long", strategy.long, qty=qty)
strategy.exit("Exit Long", "Long", stop=close - slPoints, limit=close + slPoints * 2)
if (shortCondition)
strategy.entry("Short", strategy.short, qty=qty)
strategy.exit("Exit Short", "Short", stop=close + slPoints, limit=close - slPoints * 2)
// ———— VISUALIZACIÓN ————
plot(sar, title="SAR", color=color.red, style=plot.style_cross)
plot(emaFast, title="EMA Rápida", color=color.blue)
bgcolor(longCondition ? color.new(color.green, 90) : shortCondition ? color.new(color.red, 90) : na)