یہ حکمت عملی ایک رجحان کے بعد ٹریڈنگ کا نظام ہے جو متعدد تکنیکی اشارے کو جوڑتا ہے۔ یہ بنیادی طور پر مارکیٹ کے رجحانات اور انٹری پوائنٹس کا تعین کرنے کے لئے پیرابولک 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")