
یہ حکمت عملی ایک کثیر عنصر رجحان ٹریکنگ سسٹم ہے جس میں پیرال لائن ٹرانسفارمر (SAR) ، انڈیکس چلنے والی اوسط (EMA) ، نسبتا strong مضبوط اشارے (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)