यह रणनीति एक ट्रेंड-फॉलोइंग ट्रेडिंग सिस्टम है जो कई तकनीकी संकेतकों को जोड़ती है। यह मुख्य रूप से बाजार के रुझानों और प्रवेश बिंदुओं को निर्धारित करने के लिए पैराबोलिक एसएआर, सरल चलती औसत (एसएमए), और दिशात्मक आंदोलन सूचकांक (डीएमआई) का उपयोग करता है, जबकि प्रतिशत आधारित लाभ लक्ष्यों और एमएसीडी विचलन के माध्यम से निकास को अनुकूलित करता है। मुख्य अवधारणा मजबूत रुझानों की पुष्टि के बाद पदों में प्रवेश करना और पूर्व निर्धारित लाभ लक्ष्यों तक पहुंचने या जब प्रवृत्ति उलट संकेत दिखाई देते हैं तो बाहर निकलना है।
इस रणनीति में एक बहुस्तरीय फ़िल्टरिंग तंत्र का उपयोग किया गया हैः
यह रणनीति कई तकनीकी संकेतकों के समन्वय के माध्यम से एक अपेक्षाकृत पूर्ण प्रवृत्ति-अनुसरण ट्रेडिंग प्रणाली का निर्माण करती है। इसकी ताकत सिग्नल पुष्टि विश्वसनीयता और जोखिम नियंत्रण लचीलापन में निहित है। जबकि अंतर्निहित लेग जोखिम हैं, रणनीति पैरामीटर अनुकूलन और गतिशील प्रबंधन तंत्र के माध्यम से अच्छा व्यावहारिक मूल्य बनाए रखती है। निरंतर अनुकूलन और सुधार के माध्यम से, यह रणनीति एक मजबूत ट्रेडिंग उपकरण के रूप में कार्य कर सकती है।
/*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")