
یہ حکمت عملی ایک کثیر اشاریہ جامع تجارتی نظام ہے جس میں تکنیکی اشارے جیسے انڈیکس منتقل اوسط ((EMA) ، نسبتا مضبوط اشارے ((RSI) اور اوسط حقیقی طول و عرض ((ATR) شامل ہیں ، اور اوسط رجحان اشارے ((ADX) کو متعارف کرایا گیا ہے تاکہ رجحانات کے فیصلے کی درستگی میں اضافہ کیا جاسکے۔ یہ نظام متعدد سگنلوں کے ذریعہ پوزیشن بنانے کے وقت کی تصدیق کرتا ہے ، اور اے ٹی آر کو متحرک طور پر نقصانات اور اسٹاپ نقصانات کا انتظام کرنے کے لئے استعمال کرتا ہے تاکہ خطرے پر موثر کنٹرول حاصل کیا جاسکے۔
اس حکمت عملی کا بنیادی مقصد مارکیٹ کے رجحانات کو پکڑنا اور متعدد تکنیکی اشارے کے ذریعہ تجارت کرنا ہے۔ اس میں شامل ہیں:
اس حکمت عملی نے متعدد تکنیکی اشارے کے نامیاتی امتزاج کے ذریعہ ایک مکمل رجحان ٹریکنگ ٹریڈنگ سسٹم تشکیل دیا ہے۔ حکمت عملی تجارت کی درستگی کو یقینی بناتے ہوئے ، سخت خطرے کے کنٹرول کے ذریعہ تجارت کی حفاظت کو یقینی بناتی ہے۔ اگرچہ اصلاح کے لئے کچھ گنجائش موجود ہے ، لیکن مجموعی طور پر فریم ورک میں عمدہ عملی قدر اور توسیع پذیری ہے۔
/*backtest
start: 2025-01-20 00:00:00
end: 2025-01-31 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Binance","currency":"DOGE_USDT"}]
*/
//@version=5
strategy("Enhanced GBP/USD Strategy with ADX", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=1)
// === Input Parameters ===
emaFastLength = input.int(20, title="Fast EMA Length")
emaSlowLength = input.int(50, title="Slow EMA Length")
rsiLength = input.int(14, title="RSI Length")
rsiOverbought = input.int(70, title="RSI Overbought")
rsiOversold = input.int(30, title="RSI Oversold")
atrLength = input.int(14, title="ATR Length")
adxLength = input.int(14, title="ADX Length")
riskToReward = input.float(2.0, title="Risk-Reward Ratio (R:R)")
slMultiplier = input.float(1.5, title="SL Multiplier (ATR)")
// === Indicator Calculations ===
emaFast = ta.ema(close, emaFastLength)
emaSlow = ta.ema(close, emaSlowLength)
rsi = ta.rsi(close, rsiLength)
atr = ta.atr(atrLength)
// === ADX Calculation ===
// Components of ADX
tr = ta.rma(ta.tr, adxLength) // True Range smoothed
plusDM = ta.rma(math.max(high - high[1], 0), adxLength) // +DM
minusDM = ta.rma(math.max(low[1] - low, 0), adxLength) // -DM
plusDI = (plusDM / tr) * 100
minusDI = (minusDM / tr) * 100
dx = math.abs(plusDI - minusDI) / (plusDI + minusDI) * 100
adx = ta.rma(dx, adxLength) // Final ADX value
// === Entry Conditions ===
isUptrend = emaFast > emaSlow and adx > 20
isDowntrend = emaFast < emaSlow and adx > 20
buySignal = isUptrend and ta.crossover(rsi, rsiOversold)
sellSignal = isDowntrend and ta.crossunder(rsi, rsiOverbought)
// === Stop-Loss and Take-Profit ===
slDistance = atr * slMultiplier
tpDistance = slDistance * riskToReward
buySL = buySignal ? close - slDistance : na
buyTP = buySignal ? close + tpDistance : na
sellSL = sellSignal ? close + slDistance : na
sellTP = sellSignal ? close - tpDistance : na
// === Execute Trades ===
if buySignal
strategy.entry("Buy", strategy.long)
strategy.exit("Buy TP/SL", from_entry="Buy", stop=buySL, limit=buyTP)
if sellSignal
strategy.entry("Sell", strategy.short)
strategy.exit("Sell TP/SL", from_entry="Sell", stop=sellSL, limit=sellTP)
// === Plotting ===
plot(emaFast, title="Fast EMA", color=color.blue)
plot(emaSlow, title="Slow EMA", color=color.orange)
plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
plot(buySL, title="Buy Stop Loss", color=color.red, linewidth=1)
plot(buyTP, title="Buy Take Profit", color=color.green, linewidth=1)
plot(sellSL, title="Sell Stop Loss", color=color.red, linewidth=1)
plot(sellTP, title="Sell Take Profit", color=color.green, linewidth=1)
// === Alerts ===
alertcondition(buySignal, title="Buy Alert", message="Buy Signal Detected!")
alertcondition(sellSignal, title="Sell Alert", message="Sell Signal Detected!")