
یہ حکمت عملی ایک رجحان ٹریڈنگ سسٹم ہے جس میں انڈیکس چلنے والی اوسط ((EMA) اور سادہ چلنے والی اوسط ((SMA) کا امتزاج ہے۔ حکمت عملی بنیادی طور پر EMA50 اور EMA150 کے کراس سے ٹریڈنگ سگنل پیدا کرتی ہے ، جبکہ SMA150 کو اسٹاپ لائن کے طور پر استعمال کرتی ہے ، اور اس میں اسٹاپ کے بعد دوبارہ داخل ہونے کا طریقہ کار شامل ہے۔ یہ ڈیزائن درمیانی اور طویل مدتی رجحانات کو پکڑنے کے ساتھ ساتھ خطرے کو بھی مؤثر طریقے سے کنٹرول کرتا ہے۔
حکمت عملی کی بنیادی منطق میں درج ذیل کلیدی عناصر شامل ہیں:
یہ ایک مناسب ڈیزائن کیا گیا رجحان ٹریکنگ حکمت عملی ہے ، جس میں یکساں کراس لائن کے ذریعے رجحانات کو پکڑنا ہے ، اور اس میں ایک مکمل رسک کنٹرول میکانزم موجود ہے۔ حکمت عملی کا بنیادی فائدہ نظام کی رجحان سے باخبر رہنے کی صلاحیت اور رسک مینجمنٹ ڈیزائن میں ہے ، لیکن عملی استعمال میں حکمت عملی کی کارکردگی پر مارکیٹ کے ماحول کے اثرات پر دھیان دینے کی ضرورت ہے۔ تجویز کردہ اصلاحی سمت کے ذریعہ ، حکمت عملی میں مزید بہتری کی گنجائش ہے۔
/*backtest
start: 2024-02-22 00:00:00
end: 2025-02-19 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/
//@version=6
strategy("EMA 50 and EMA 150 with SMA150 Stop-loss and Re-Entry #ganges", overlay=true, commission_type=strategy.commission.percent, commission_value=0.1, slippage=3)
// EMA and SMA Calculations
ema50 = ta.ema(close, 50)
ema150 = ta.ema(close, 150)
sma150 = ta.sma(close, 150)
// Conditions for Buy, Sell, and Stop-Loss
ema50CrossAboveEMA150 = ta.crossover(ema50, ema150) // Buy signal
ema50CrossBelowEMA150 = ta.crossunder(ema50, ema150) // Sell signal
priceCrossAboveEMA150 = ta.crossover(close, ema150) // Price crosses EMA 150 from below
priceCloseBelowSMA150 = close < sma150 // Stop-loss for long positions
// Track stop-loss hit state
var bool stopLossHit = false
// Strategy Logic
// Buy Logic: EMA 50 crosses EMA 150 from below
if ema50CrossAboveEMA150
strategy.entry("Buy Signal", strategy.long, qty=1)
stopLossHit := false // Reset stop-loss state when a new buy position is opened
// Sell Logic: EMA 50 crosses EMA 150 from above
if ema50CrossBelowEMA150
strategy.entry("Sell Signal", strategy.short, qty=1)
stopLossHit := false // Reset stop-loss state when a new sell position is opened
// Stop-Loss for Long Positions: Close if price falls below SMA 150
if strategy.position_size > 0 and priceCloseBelowSMA150
strategy.close("Buy Signal")
stopLossHit := true // Mark stop-loss hit
// Re-Entry Logic After Stop-Loss
if stopLossHit
if priceCrossAboveEMA150 // Re-buy logic: PRICE crosses EMA 150 from below
strategy.entry("Re-Buy Signal", strategy.long, qty=1)
stopLossHit := false // Reset stop-loss state after re-entry
if ema50CrossBelowEMA150 // Re-sell logic: EMA 50 crosses EMA 150 from above
strategy.entry("Re-Sell Signal", strategy.short, qty=1)
stopLossHit := false // Reset stop-loss state after re-entry
// Plot EMA and SMA Lines
plot(ema50, color=color.blue, title="EMA 50")
plot(ema150, color=color.red, title="EMA 150")
plot(sma150, color=color.orange, title="SMA 150")
// // Calculate Recent All-Time High
// highestHigh = ta.highest(high, 500) // Lookback period of 500 bars
// percentageFall = ((highestHigh - close) / highestHigh) * 100
// // Display Percentage Fall on the Most Recent Candle Only
// isLastBar = bar_index == ta.max(bar_index)
// if isLastBar
// labelText = str.tostring(percentageFall, "#.##") + "% Fall from ATH"
// labelPosition = high + ta.atr(14) * 2 // Positioning label above the candle
// label.new(bar_index, labelPosition, labelText, color=color.red, textcolor=color.white, size=size.small, style=label.style_label_down)