
یہ حکمت عملی 15 منٹ کے ٹائم فریم پر مبنی ایک اعلی تعدد تجارتی حکمت عملی ہے۔ حکمت عملی ایک سے زیادہ تکنیکی اشاریوں کو یکجا کرتی ہے، بشمول ایکسپونینشل موونگ ایوریج (EMA)، رشتہ دار طاقت انڈیکس (RSI)، اوسط ڈائریکشنل انڈیکس (ADX) اور ایوریج ٹرو رینج (ATR)، ان اشاریوں کی ہم آہنگی کے ذریعے تجارتی سگنل حاصل کرنے کے لیے اور خطرات کا متحرک انتظام۔ حکمت عملی ایک واضح بصری ڈیزائن کو اپناتی ہے، جو تاجروں کے لیے حقیقی وقت میں مارکیٹ کے حالات اور تجارتی سگنلز کی نگرانی کرنا آسان بناتا ہے۔
حکمت عملی کی بنیادی منطق تیز EMA (9 ادوار) اور سست EMA (21 ادوار) کے کراس اوور کی بنیاد پر تجارتی سگنل تیار کرنا ہے۔ RSI (14 پیریڈ) کا استعمال اوور سیلڈ ایریاز کو فلٹر کرنے کے لیے کیا جاتا ہے، ADX (14 پیریڈ) کو رجحان کی مضبوطی کی تصدیق کے لیے استعمال کیا جاتا ہے، اور ATR (14 پیریڈ) کو متحرک طور پر اسٹاپ نقصان اور منافع کے اہداف کو سیٹ کرنے کے لیے استعمال کیا جاتا ہے۔ متعدد تکنیکی اشاریوں کا مجموعہ تجارتی سگنلز کی وشوسنییتا کو یقینی بناتا ہے۔ داخلے کی شرائط میں شامل ہیں: لمبی – تیز EMA سست EMA سے اوپر ہے اور RSI 70 سے نیچے ہے، اور ADX 20 سے اوپر ہے؛ تیز EMA سست EMA سے نیچے ہے اور RSI 30 سے اوپر ہے، اور ADX اوپر ہے۔ 20۔ ایگزٹ ATR پر مبنی ڈائنامک سٹاپ نقصان اور منافع کے ہدف کی ترتیبات کا استعمال کرتا ہے۔
یہ حکمت عملی متعدد تکنیکی اشارے کی ہم آہنگی کے ذریعے ہائی فریکوئنسی ٹریڈنگ میں سگنل کیپچر اور رسک کنٹرول کے درمیان توازن حاصل کرتی ہے۔ صاف بصری ڈیزائن اور مکمل آٹومیشن سپورٹ اسے مزید عملی بناتی ہے۔ رسک مینجمنٹ کی مسلسل اصلاح اور بہتری کے ذریعے، حکمت عملی سے مارکیٹ کے مختلف ماحول میں مستحکم کارکردگی کو برقرار رکھنے کی توقع کی جاتی ہے۔ اگرچہ کچھ خطرات ہیں، لیکن یہ خطرات معقول پیرامیٹر سیٹنگز اور رسک کنٹرول اقدامات کے ذریعے قابل کنٹرول ہیں۔ حکمت عملی کے کامیاب آپریشن کے لیے تاجروں کو مارکیٹ کے بارے میں گہری سمجھ رکھنے اور خطرات پر مسلسل توجہ مرکوز رکھنے کی ضرورت ہوتی ہے۔
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Scalping BTC Ottimizzato - Grafica Chiara", shorttitle="Scalp BTC Opt", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// === 📊 INPUTS ===
// 📈 Medie Mobili
emaFastLength = input.int(9, title="EMA Veloce", minval=1)
emaSlowLength = input.int(21, title="EMA Lenta", minval=1)
// 💡 RSI
rsiLength = input.int(14, title="RSI Length", minval=1)
rsiOverbought = input.int(70, title="RSI Overbought")
rsiOversold = input.int(30, title="RSI Oversold")
// 📊 ATR (Stop Loss e Take Profit)
atrLength = input.int(14, title="ATR Length", minval=1)
stopATR = input.float(1.5, title="Stop Loss (ATR Multiplo)", step=0.1)
takeProfitATR = input.float(2.0, title="Take Profit (ATR Multiplo)", step=0.1)
// 🔀 ADX
adxLength = input.int(14, title="ADX Length", minval=1)
adxSmoothing = input.int(14, title="ADX Smoothing", minval=1)
adxThreshold = input.int(20, title="Soglia ADX per Trend Forte", minval=1)
// === 📊 CALCOLI PRINCIPALI ===
// 📈 Medie Mobili
emaFast = ta.ema(close, emaFastLength)
emaSlow = ta.ema(close, emaSlowLength)
// 💡 RSI
rsi = ta.rsi(close, rsiLength)
// 📊 ATR
atr = ta.atr(atrLength)
// 🔀 ADX tramite DMI con Smoothing
[adx, diPlus, diMinus] = ta.dmi(adxLength, adxSmoothing)
// === 📊 CONDIZIONI LONG E SHORT ===
// ✅ Long: EMA Veloce incrocia EMA Lenta al rialzo, RSI sotto 70, ADX > 20
longCondition = (ta.crossover(emaFast, emaSlow)) and (rsi < rsiOverbought) and (adx > adxThreshold)
// 🔻 Short: EMA Veloce incrocia EMA Lenta al ribasso, RSI sopra 30, ADX > 20
shortCondition = (ta.crossunder(emaFast, emaSlow)) and (rsi > rsiOversold) and (adx > adxThreshold)
// 📉 Stop Loss e Take Profit Dinamici
longStop = strategy.position_avg_price - (atr * stopATR)
longTarget = strategy.position_avg_price + (atr * takeProfitATR)
shortStop = strategy.position_avg_price + (atr * stopATR)
shortTarget = strategy.position_avg_price - (atr * takeProfitATR)
// === 🚀 INGRESSO E USCITA ===
// 🚦 Ingresso LONG
if (longCondition and strategy.position_size == 0)
strategy.entry("Long", strategy.long)
strategy.exit("TakeProfit/StopLoss Long", stop=longStop, limit=longTarget)
// 🚦 Ingresso SHORT
if (shortCondition and strategy.position_size == 0)
strategy.entry("Short", strategy.short)
strategy.exit("TakeProfit/StopLoss Short", stop=shortStop, limit=shortTarget)
// 🛑 USCITA MANUALE BASATA SU RSI
if (rsi > rsiOverbought and strategy.position_size > 0)
strategy.close("Long", comment="RSI Overbought Exit")
if (rsi < rsiOversold and strategy.position_size < 0)
strategy.close("Short", comment="RSI Oversold Exit")
// === 📊 VISUALIZZAZIONE GRAFICA OTTIMIZZATA ===
// 📈 MEDIE MOBILI ANCORATE ALLE CANDELE
plot(emaFast, title="EMA Veloce", color=color.blue, linewidth=2)
plot(emaSlow, title="EMA Lenta", color=color.red, linewidth=2)
// 📊 SEGNALI VISIVI ANCORATI ALLE CANDELE
plotshape(longCondition, title="Segnale Long", style=shape.triangleup, location=location.belowbar, color=color.green, text="Long", size=size.small)
plotshape(shortCondition, title="Segnale Short", style=shape.triangledown, location=location.abovebar, color=color.red, text="Short", size=size.small)
// 📊 RSI (Pannello Separato)
var float rsiPanel = na
rsiPanel := rsi
plot(rsiPanel, title="RSI", color=color.orange, linewidth=2)
hline(rsiOverbought, "RSI Overbought", color=color.red, linestyle=hline.style_dotted)
hline(rsiOversold, "RSI Oversold", color=color.green, linestyle=hline.style_dotted)
// 📊 ADX (Pannello Separato)
var float adxPanel = na
adxPanel := adx
plot(adxPanel, title="ADX", color=color.blue, linewidth=2)
hline(adxThreshold, "ADX Soglia", color=color.gray, linestyle=hline.style_dotted)
// 📊 ATR (Pannello Separato)
var float atrPanel = na
atrPanel := atr
plot(atrPanel, title="ATR", color=color.purple, linewidth=2)
// 🔔 ALERT
alertcondition(longCondition, title="Segnale Long", message="Entra Long Manualmente!")
alertcondition(shortCondition, title="Segnale Short", message="Entra Short Manualmente!")