یہ حکمت عملی ایک رجحان پر عمل کرنے والا تجارتی نظام ہے جو ایکسپونینشل موونگ ایوریج (ای ایم اے) اور اوسط سمت انڈیکس (اے ڈی ایکس) کو جوڑتا ہے۔ یہ ای ایم اے 50 اور قیمت کراس اوور کے ذریعہ تجارتی سمت کا تعین کرتا ہے ، رجحان کی طاقت کو فلٹر کرنے کے لئے اے ڈی ایکس کا استعمال کرتا ہے ، اور مسلسل منافع بخش موم بتیوں پر مبنی متحرک اسٹاپ نقصان کا طریقہ استعمال کرتا ہے۔ یہ نقطہ نظر مارکیٹ کے اہم رجحانات کو پکڑنے اور جب رجحانات کمزور ہوجاتے ہیں تو بروقت باہر نکلنے دونوں کو قابل بناتا ہے۔
بنیادی منطق مندرجہ ذیل اہم عناصر پر مبنی ہے:
یہ ایک اچھی طرح سے ڈیزائن کردہ رجحان کی پیروی کرنے والی حکمت عملی ہے جو ای ایم اے اور اے ڈی ایکس کے فوائد کو یکجا کرکے خطرات کو کنٹرول کرتے ہوئے مؤثر طریقے سے رجحانات کو پکڑتی ہے۔ متحرک اسٹاپ نقصان کا طریقہ کار خاص طور پر جدید ہے ، جو منافع کے تحفظ اور رجحان کی گرفت کو مؤثر طریقے سے متوازن کرتا ہے۔ اگرچہ اصلاح کی گنجائش ہے ، لیکن مجموعی فریم ورک مکمل اور منطقی طور پر ٹھوس ہے ، جس کی وجہ سے یہ ایک حکمت عملی کا نظام ہے جو براہ راست تجارت میں توثیق کے قابل ہے۔
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-04 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=6 strategy("Simple EMA 50 Strategy with ADX Filter", overlay=true) // Input parameters emaLength = input.int(50, title="EMA Length") adxThreshold = input.float(20, title="ADX Threshold", minval=0) // Calculate EMA and ADX ema50 = ta.ema(close, emaLength) adxSmoothing = input.int(20, title="ADX Smoothing") [diPlus, diMinus, adx] = ta.dmi(20, adxSmoothing) // Conditions for long and short entries adxCondition = adx > adxThreshold longCondition = adxCondition and close > ema50 // Check if candle closes above EMA shortCondition = adxCondition and close < ema50 // Check if candle closes below EMA // Exit conditions based on 4 consecutive profitable candles var float longSL = na var float shortSL = na var longCandleCounter = 0 var shortCandleCounter = 0 // Increment counters if positions are open and profitable if (strategy.position_size > 0 and close > strategy.position_avg_price) longCandleCounter += 1 if (longCandleCounter >= 4) longSL := na(longSL) ? close : math.max(longSL, close) // Update SL dynamically else longCandleCounter := 0 longSL := na if (strategy.position_size < 0 and close < strategy.position_avg_price) shortCandleCounter += 1 if (shortCandleCounter >= 4) shortSL := na(shortSL) ? close : math.min(shortSL, close) // Update SL dynamically else shortCandleCounter := 0 shortSL := na // Exit based on trailing SL if (strategy.position_size > 0 and not na(longSL) and close < longSL) strategy.close("Buy", comment="Candle-based SL") if (strategy.position_size < 0 and not na(shortSL) and close > shortSL) strategy.close("Sell", comment="Candle-based SL") // Entry logic: Check every candle for new positions if (longCondition) strategy.entry("Buy", strategy.long) if (shortCondition) strategy.entry("Sell", strategy.short) // Plot EMA and ADX for reference plot(ema50, color=color.blue, title="EMA 50") plot(adx, color=color.orange, title="ADX", style=plot.style_stepline, linewidth=1) plot(longSL, color=color.green, title="Long SL", style=plot.style_cross, linewidth=1) plot(shortSL, color=color.red, title="Short SL", style=plot.style_cross, linewidth=1) // Plot signals plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal") plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal")