यह रणनीति विभिन्न चलती औसत संकेतकों का उपयोग करती है, जिनमें एसएमएमए, एसएमए, जेएलईएमए और ईएमए शामिल हैं, और उनके आधार पर एक बेहतर एमएसीडी संकेतक (इंपलस एमएसीडी) का निर्माण करती है। यह इंपलस एमएसीडी और इसकी सिग्नल लाइन के क्रॉसओवर के माध्यम से ट्रेडिंग सिग्नल उत्पन्न करती है। रणनीति का मुख्य विचार इंपलस एमएसीडी के साथ प्रवृत्ति की ताकत और दिशा की पुष्टि करते हुए विभिन्न समय सीमाओं के चलती औसत का उपयोग करके बाजार के रुझानों को पकड़ना है।
यह रणनीति विभिन्न प्रकार के चलती औसत के आधार पर एक बेहतर एमएसीडी संकेतक का निर्माण करती है और संकेत रेखा के साथ क्रॉसओवर के माध्यम से ट्रेडिंग सिग्नल उत्पन्न करती है, जबकि समग्र विचार स्पष्ट है, और फायदे स्पष्ट हैं। हालांकि, रणनीति में कुछ सीमाएं भी हैं, जैसे कि अस्थिर बाजारों के लिए खराब अनुकूलन क्षमता और जोखिम नियंत्रण उपायों की कमी। रणनीति की मजबूती और लाभप्रदता को बढ़ाने के लिए प्रवृत्ति पहचान, संकेत पुष्टि, जोखिम नियंत्रण और पैरामीटर अनुकूलन जैसे पहलुओं से आगे के सुधारों पर विचार किया जा सकता है।
/*backtest start: 2023-05-11 00:00:00 end: 2024-05-16 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Impulse MACD Strategy [LazyBear]", shorttitle="IMACD_Strategy", overlay=false) // Function to calculate SMMA calc_smma(src, len) => var float smma = na smma := na(smma[1]) ? ta.sma(src, len) : (smma[1] * (len - 1) + src) / len smma // Function to calculate SMA ta.sma(src, len) sum = 0.0 for i = 0 to len - 1 sum := sum + src[i] sum / len // Function to calculate ZLEMA calc_zlema(src, length) => var float ema1 = na var float ema2 = na var float d = na ema1 := ta.ema(src, length) ema2 := ta.ema(ema1, length) d := ema1 - ema2 ema1 + d // Function to calculate EMA calc_ema(src, len) => ema = 0.0 ema := ta.ema(src, len) ema // Inputs lengthMA = input(34, title="Length of Moving Average") lengthSignal = input(9, title="Length of Signal Line") // Calculations src = hlc3 hi = calc_smma(high, lengthMA) lo = calc_smma(low, lengthMA) mi = calc_zlema(src, lengthMA) md = mi > hi ? (mi - hi) : mi < lo ? (mi - lo) : 0 sb = ta.sma(md, lengthSignal) sh = md - sb mdc = src > mi ? src > hi ? color.lime : color.green : src < lo ? color.red : color.orange // Plotting plot(0, color=color.gray, linewidth=1, title="MidLine") plot(md, color=mdc, linewidth=2, title="ImpulseMACD", style=plot.style_histogram) plot(sh, color=color.blue, linewidth=2, title="ImpulseHisto", style=plot.style_histogram) plot(sb, color=color.maroon, linewidth=2, title="ImpulseMACDCDSignal") // Execute trades based on signals if (ta.crossover(md, sb)) strategy.entry("Buy", strategy.long) if (ta.crossunder(md, sb)) strategy.close("Buy")