
এই কৌশলটি 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)