
یہ ایک سے زیادہ ایکسپونینشل موونگ ایوریج (EMA) کراس اوور پر مبنی حکمت عملی کے بعد ایک رجحان ہے۔ یہ حکمت عملی 10-مدت کی مختصر مدت کے EMA، 50-مدت کے درمیانی مدت کے EMA، اور 200-مدت کے طویل مدتی EMA کے کراس اوور تعلقات کا استعمال کرتی ہے تاکہ مارکیٹ کے رجحانات کو گرفت میں لے سکیں اور شرائط پوری ہونے پر طویل اور مختصر تجارت میں داخل ہوں۔ حکمت عملی کا بنیادی خیال متعدد ٹائم فریموں کی حرکت پذیر اوسط کے ذریعے مارکیٹ کے شور کو فلٹر کرنا، مرکزی رجحان کی سمت کی نشاندہی کرنا، اور رجحان جاری رہنے پر منافع حاصل کرنا ہے۔
حکمت عملی ٹرپل EMA کراس اوور سسٹم کو تجارتی سگنل جنریشن میکانزم کے طور پر استعمال کرتی ہے۔ خاص طور پر:
یہ حکمت عملی ایک کلاسک ٹرینڈ ٹریکنگ سسٹم ہے جو متعدد EMAs کے مربوط استعمال کے ذریعے نہ صرف مرکزی رجحان کی گرفت کو یقینی بناتی ہے بلکہ بروقت نفع اور نقصان کو روکنے کے قابل بھی بناتی ہے۔ اگرچہ ایک خاص وقفہ ہے، معقول پیرامیٹر سیٹنگز اور رسک مینجمنٹ کے ذریعے، پھر بھی ٹرینڈنگ مارکیٹ میں مستحکم منافع حاصل کیا جا سکتا ہے۔ حکمت عملی کو بہتر بنانے کی بہت گنجائش ہے، اور دیگر تکنیکی اشارے متعارف کروا کر اور تجارتی قواعد کو بہتر بنا کر کارکردگی کو بہتر بنایا جا سکتا ہے۔
/*backtest
start: 2024-12-10 00:00:00
end: 2025-01-09 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/
//@version=5
strategy("EMA Crossover Strategy (Enhanced Debug)", overlay=true)
// Inputs for EMA periods
shortEMA = input.int(10, title="Short EMA Period")
mediumEMA = input.int(50, title="Medium EMA Period")
longEMA = input.int(200, title="Long EMA Period")
// Calculating EMAs
emaShort = ta.ema(close, shortEMA)
emaMedium = ta.ema(close, mediumEMA)
emaLong = ta.ema(close, longEMA)
// Plot EMAs
plot(emaShort, color=color.green, title="Short EMA")
plot(emaMedium, color=color.blue, title="Medium EMA")
plot(emaLong, color=color.red, title="Long EMA")
// Conditions for entry and exit
longCondition = close > emaLong and ta.crossover(emaShort, emaMedium) and emaMedium > emaLong
shortCondition = close < emaLong and ta.crossunder(emaShort, emaMedium) and emaMedium < emaLong
closeLongCondition = ta.crossunder(emaShort, emaMedium)
closeShortCondition = ta.crossover(emaShort, emaMedium)
// Debugging labels for unexpected behavior
if (ta.crossover(emaShort, emaLong) and not ta.crossover(emaShort, emaMedium))
label.new(bar_index, high, "Short > Long", style=label.style_circle, color=color.red, textcolor=color.white)
// Debugging EMA relationships
if (emaMedium <= emaLong)
label.new(bar_index, high, "Medium < Long", style=label.style_cross, color=color.orange, textcolor=color.white)
// Entry logic
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
// Exit logic
if (closeLongCondition)
strategy.close("Long")
if (closeShortCondition)
strategy.close("Short")
// Display labels for signals
plotshape(series=longCondition, style=shape.labelup, color=color.green, location=location.belowbar, title="Buy Signal")
plotshape(series=shortCondition, style=shape.labeldown, color=color.red, location=location.abovebar, title="Sell Signal")