
یہ حکمت عملی ایک رجحان سے باخبر رہنے والی تجارتی نظام ہے جس میں متعدد تکنیکی اشارے شامل ہیں۔ یہ بنیادی طور پر مارکیٹ کے رجحانات اور داخلے کے وقت کا تعین کرنے کے لئے پیرالول لائن ٹرانسمیشن اشارے ((SAR) ، منتقل اوسط ((SMA) اور سمت کی متحرک اشارے ((DMI) کا استعمال کرتا ہے ، اور فیصد اسٹاپ اور MACD پیچھے ہٹ کر باہر نکلنے کو بہتر بناتا ہے۔ حکمت عملی کے ڈیزائن کا بنیادی خیال یہ ہے کہ مضبوط رجحانات کے بعد داخل ہونا ، اور وقت پر باہر نکلنا جب منافع کے اہداف کو پورا کیا جائے یا رجحان کی تبدیلی کا اشارہ ہو۔
اس حکمت عملی میں ٹریڈنگ سگنل کی تصدیق کے لیے فلٹرنگ کے متعدد طریقوں کا استعمال کیا گیا ہے۔
اس حکمت عملی نے متعدد تکنیکی اشارے کے ہم آہنگی کے ساتھ کام کیا ، جس سے ایک نسبتا complete مکمل رجحان سے باخبر رہنے والا تجارتی نظام تشکیل دیا گیا۔ اس کا فائدہ سگنل کی تصدیق کی وشوسنییتا اور خطرے سے نمٹنے میں لچک ہے۔ اگرچہ کچھ پسماندہ خطرات موجود ہیں ، لیکن پیرامیٹرز کو بہتر بنانے اور متحرک انتظامیہ میں شامل ہونے سے حکمت عملی کی مجموعی کارکردگی بہتر ہے۔ مسلسل اصلاح اور بہتری کے ساتھ ، یہ حکمت عملی ایک مستحکم تجارتی آلہ بن سکتی ہے۔
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-09 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Swing Trading Strategy with DMI", overlay=true)
// Define parameters
sarStart = input.float(0.02, title="SAR Start")
sarIncrement = input.float(0.02, title="SAR Increment")
sarMax = input.float(0.2, title="SAR Max")
atrLength = input.int(10, title="ATR Length")
macdShort = input.int(12, title="MACD Short Length")
macdLong = input.int(26, title="MACD Long Length")
macdSignal = input.int(9, title="MACD Signal Length")
smaLength = input.int(50, title="SMA Length")
dmiLength = input.int(14, title="DMI Length")
adxSmoothing = input.int(14, title="ADX Smoothing") // Smoothing period for ADX
targetProfitPercentage = input.float(3.0, title="Target Profit Percentage")
// Calculate SAR
sar = ta.sar(sarStart, sarIncrement, sarMax)
// Calculate ATR
atr = ta.atr(atrLength)
// Calculate MACD
[macdLine, macdSignalLine, _] = ta.macd(close, macdShort, macdLong, macdSignal)
// Calculate SMA
sma = ta.sma(close, smaLength)
bullishTrend = close > sma
// Calculate DMI
[plusDI, minusDI, adx] = ta.dmi(dmiLength, adxSmoothing) // Specify ADX smoothing period
// Determine if DMI is bullish
dmiBullish = plusDI > minusDI
// Define buy signal
buySignal = ta.crossover(close, sar) and bullishTrend and dmiBullish
// Track buy price and position state
var float buyPrice = na
var bool inPosition = false
// Enter position
if (buySignal and not inPosition)
buyPrice := close
inPosition := true
strategy.entry("Buy", strategy.long)
// Define target price (3% above the buy price)
targetPrice = na(buyPrice) ? na : buyPrice * (1 + targetProfitPercentage / 100)
// Define MACD sell signal
macdSellSignal = ta.crossunder(macdLine, macdSignalLine)
// Define sell signal
sellSignal = inPosition and (close >= targetPrice or macdSellSignal)
// Exit position
if (sellSignal)
inPosition := false
strategy.exit("Sell", "Buy", limit=targetPrice)
// Plot SAR on the chart
plot(sar, color=color.red, style=plot.style_cross, linewidth=2)
// Plot SMA (optional, for visualizing the trend)
plot(sma, color=color.blue, title="SMA")
// Plot DMI +DI and -DI
plot(plusDI, color=color.green, title="+DI")
plot(minusDI, color=color.red, title="-DI")
// Plot buy signal on the chart
//plotshape(series=buySignal, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
// Plot sell signal on the chart
//plotshape(series=sellSignal, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Optional: Plot background color for buy and sell signals
bgcolor(buySignal ? color.new(color.green, 90) : na, title="Buy Signal Background")
bgcolor(sellSignal ? color.new(color.red, 90) : na, title="Sell Signal Background")