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