
یہ حکمت عملی ایک ٹریڈنگ سسٹم ہے جس میں متحرک اوسط ٹرینڈ ٹریکنگ اور متحرک اسٹاپ نقصانات کا امتزاج کیا گیا ہے۔ اس میں قیمت کی نقل و حرکت کو پکڑنے کے لئے MACD (موبائل اوسط اختتامی پھیلاؤ اشارے) ، رجحان کی تصدیق کے لئے EMA (انڈیکس متحرک اوسط) ، اور متحرک اسٹاپ نقصانات کی پوزیشنوں کو قائم کرنے کے لئے ATR (حقیقی طول و عرض اشارے) کا استعمال کیا گیا ہے۔ یہ کثیر جہتی تجزیاتی طریقہ کار مارکیٹ کے مواقع کو بروقت پکڑنے اور خطرے کو مؤثر طریقے سے کنٹرول کرنے کے لئے استعمال کیا جاتا ہے۔
حکمت عملی کی بنیادی منطق تین جہتوں پر مشتمل ہے:
اس حکمت عملی نے رجحانات کی نگرانی ، متحرک تجزیہ اور متحرک خطرے کے کنٹرول کو جوڑ کر ایک مکمل تجارتی نظام تشکیل دیا ہے۔ اس کی بنیادی خصوصیت حکمت عملی کی استحکام کو برقرار رکھنے کے ساتھ ساتھ مارکیٹ کے مواقع کو مؤثر طریقے سے پکڑنے اور تجارتی خطرے پر متحرک کنٹرول حاصل کرنا ہے۔ اگرچہ اس میں کچھ موروثی خطرات موجود ہیں ، لیکن معقول پیرامیٹرز کی ترتیب اور مستقل اصلاح کے ذریعہ اس حکمت عملی میں عملی استعمال کی اچھی قیمت ہے۔
/*backtest
start: 2024-09-25 00:00:00
end: 2025-02-19 08:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/
//@version=5
strategy("MACD + ATR Dynamic Stop-Loss Strategy", overlay=true)
// Input parameters
macdFastLength = input.int(12, title="MACD Fast Length")
macdSlowLength = input.int(26, title="MACD Slow Length")
macdSignalSmoothing = input.int(9, title="MACD Signal Smoothing")
atrLength = input.int(14, title="ATR Length")
stopLossMultiplier = input.float(1.0, title="Stop-Loss ATR Multiplier")
useTrailingStop = input.bool(true, title="Use Trailing Stop")
trailATRMultiplier = input.float(2.0, title="Trailing Stop ATR Multiplier")
emaLength = input.int(20, title="EMA Length")
// Calculate MACD
[macdLine, signalLine, _] = ta.macd(close, macdFastLength, macdSlowLength, macdSignalSmoothing)
// Calculate ATR
atr = ta.atr(atrLength)
// Calculate 20-period EMA
ema20 = ta.ema(close, emaLength)
// Entry Conditions
buyCondition = ta.crossover(macdLine, signalLine) and close > ema20
sellCondition = ta.crossunder(macdLine, signalLine)
// Plot Buy and Sell Signals
plotshape(series=buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=sellCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Dynamic Stop-Loss and Trailing Stop Logic
var float stopLossLevel = na
var float trailingStopLevel = na
if (buyCondition)
stopLossLevel := close - atr * stopLossMultiplier
trailingStopLevel := close - atr * trailATRMultiplier
if (strategy.position_size > 0)
if (useTrailingStop)
trailingStopLevel := math.max(trailingStopLevel, close - atr * trailATRMultiplier)
stopLossLevel := trailingStopLevel
strategy.exit("Trailing Stop", stop=stopLossLevel)
// Execute Trades
if (buyCondition)
strategy.entry("Long", strategy.long)
if (sellCondition)
strategy.close("Long")
// Plot Stop-Loss Level
plot(stopLossLevel, title="Stop-Loss Level", color=color.red, linewidth=1, style=plot.style_linebr)