یہ حکمت عملی مختلف حرکت پذیر اوسط اشارے ، بشمول ایس ایم ایم اے ، ایس ایم اے ، زی ایل ای ایم اے ، اور ای ایم اے کا استعمال کرتی ہے ، اور ان کی بنیاد پر ایک بہتر ایم اے سی ڈی اشارے (انپلس ایم اے سی ڈی) کی تعمیر کرتی ہے۔ یہ امپلس ایم اے سی ڈی اور اس کی سگنل لائن کے کراس اوور کے ذریعے تجارتی سگنل تیار کرتی ہے۔ حکمت عملی کا بنیادی خیال مختلف ٹائم فریموں کے حرکت پذیر اوسط کا استعمال کرتے ہوئے مارکیٹ کے رجحانات کو پکڑنا ہے جبکہ امپلس ایم اے سی ڈی کے ساتھ رجحان کی طاقت اور سمت کی تصدیق کرنا ہے۔
یہ حکمت عملی مختلف قسم کے متحرک اوسطوں کی بنیاد پر ایک بہتر MACD اشارے کی تعمیر کرتی ہے اور سگنل لائن کے ساتھ اس کے کراس اوور کے ذریعے تجارتی سگنل تیار کرتی ہے جبکہ رجحان کی طاقت کو بدیہی طور پر ظاہر کرتی ہے۔ مجموعی خیال واضح ہے ، اور فوائد واضح ہیں۔ تاہم ، اس حکمت عملی میں کچھ حدود بھی ہیں ، جیسے ہلکی مارکیٹوں میں ناقص موافقت اور خطرے پر قابو پانے کے اقدامات کی کمی۔ حکمت عملی کی استحکام اور منافع کو بڑھانے کے لئے رجحان کی نشاندہی ، سگنل کی تصدیق ، خطرے پر قابو پانے ، اور پیرامیٹر کی اصلاح جیسے پہلوؤں سے مزید بہتری پر غور کیا جاسکتا ہے۔
/*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")