
یہ حکمت عملی MACD اشارے کے صفر تاخیر والے ورژن پر مبنی ہے ، جس میں قیمت میں تبدیلی کو تیزی سے جواب دینے ، قلیل مدتی رجحانات کو پکڑنے اور اعلی تعدد کے ساتھ تجارت کرنے کی اجازت دی گئی ہے۔ حکمت عملی MACD اشارے کو دو مختلف ادوار کی متحرک اوسطوں (فاسٹ لائن اور سست لائن) کا استعمال کرتے ہوئے بناتی ہے ، اور صفر تاخیر والے الگورتھم کو متعارف کراتی ہے ، اشارے اور قیمت کی تاخیر کو ختم کرتی ہے ، سگنل کی بروقت کو بہتر بناتی ہے۔ اس کے علاوہ ، سگنل لائن اور MACD لائن کے کراس کو خرید و فروخت کے اشارے کے طور پر استعمال کیا جاتا ہے ، اور ایک انتباہ ترتیب دیا جاتا ہے ، جس سے تاجروں کو بروقت تجارت کے مواقع پر قبضہ کرنا آسان ہوجاتا ہے۔
MACD دوہری تبادلہ صفر تاخیر سے متعلق تجارتی حکمت عملی قیمت میں تبدیلیوں کے فوری ردعمل ، قلیل مدتی رجحانات کو پکڑنے ، اور اعلی تعدد تجارت کو حاصل کرنے کے لئے۔ صفر تاخیر سے متعلق الگورتھم اور دوہری منتقل اوسط کے ڈیزائن نے سگنل کی بروقت اور درستگی کو بہتر بنایا ہے۔ حکمت عملی میں کچھ فوائد ہیں ، جیسے سگنل بصیرت ، آسان آپریشن ، وغیرہ۔ لیکن اس کے ساتھ ہی ، اس میں زیادہ تجارت ، پیرامیٹر حساس ، وغیرہ کا خطرہ بھی موجود ہے۔ مستقبل میں ، حکمت عملی کو رجحانات کی تصدیق ، اشارے کے پیرامیٹرز کی اصلاح ، کثیر عنصر ماڈل وغیرہ کو متعارف کرانے کے ذریعے بہتر بنایا جاسکتا ہے ، حکمت عملی کی استحکام اور منافع کی سطح کو بہتر بنایا جاسکتا ہے۔
/*backtest
start: 2024-04-23 00:00:00
end: 2024-05-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("BNM INTRADAY SETUP MACD 3M - Version 1.2", shorttitle="Zero Lag MACD Enhanced 1.2")
source = close
fastLength = input(12, title="Fast MM period", minval=1)
slowLength = input(26,title="Slow MM period", minval=1)
signalLength =input(9,title="Signal MM period", minval=1)
useEma = input(true, title="Use EMA (otherwise SMA)")
useOldAlgo = input(false, title="Use Glaz algo (otherwise 'real' original zero lag)")
showDots = input(true, title="Show symbols to indicate crossing")
dotsDistance = input(1.5, title="Symbols distance factor", minval=0.1)
// Fast line
ma1 = useEma ? ema(source, fastLength) : sma(source, fastLength)
ma2 = useEma ? ema(ma1, fastLength) : sma(ma1, fastLength)
zerolagEMA = ((2 * ma1) - ma2)
// Slow line
mas1 = useEma ? ema(source, slowLength) : sma(source, slowLength)
mas2 = useEma ? ema(mas1, slowLength) : sma(mas1, slowLength)
zerolagslowMA = ((2 * mas1) - mas2)
// MACD line
ZeroLagMACD = zerolagEMA - zerolagslowMA
// Signal line
emasig1 = ema(ZeroLagMACD, signalLength)
emasig2 = ema(emasig1, signalLength)
signal = useOldAlgo ? sma(ZeroLagMACD, signalLength) : (2 * emasig1) - emasig2
hist = ZeroLagMACD - signal
upHist = (hist > 0) ? hist : 0
downHist = (hist <= 0) ? hist : 0
p1 = plot(upHist, color=color.blue, transp=40, style=plot.style_columns, title='Positive delta')
p2 = plot(downHist, color=color.red, transp=40, style=plot.style_columns, title='Negative delta')
zeroLine = plot(ZeroLagMACD, color=color.red, transp=0, linewidth=2, title='MACD line')
signalLine = plot(signal, color=color.blue, transp=0, linewidth=2, title='Signal')
ribbonDiff = hist > 0 ? color.blue : color.red
fill(zeroLine, signalLine, color=ribbonDiff)
circleYPosition = signal * dotsDistance
ribbonDiff2 = hist > 0 ? color.blue : color.red
// Generate dots for cross signals
plot(showDots and cross(ZeroLagMACD, signal) ? circleYPosition : na, style=plot.style_circles, linewidth=4, color=ribbonDiff2, title='Dots')
// Alerts for buy and sell signals
buySignal = cross(ZeroLagMACD, signal) and (ribbonDiff2 == color.blue) and (ZeroLagMACD < 0)
sellSignal = cross(ZeroLagMACD, signal) and (ribbonDiff2 == color.red) and (ZeroLagMACD > 0)
// Use 'strategy.entry' for placing orders in strategy context
if (buySignal)
strategy.entry("Buy", strategy.long)
alert("Buy Signal: Blue dot below zero line", alert.freq_once_per_bar_close)
if (sellSignal)
strategy.entry("Sell", strategy.short)
alert("Sell Signal: Red dot above zero line", alert.freq_once_per_bar_close)