
रणनीति दो अलग-अलग चक्रों की चलती औसत (फास्ट और धीमी रेखा) का उपयोग करके 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)