এই কৌশলটি একটি প্রবণতা অনুসরণকারী ট্রেডিং সিস্টেম যা একাধিক প্রযুক্তিগত সূচককে একত্রিত করে। এটি মূলত প্যারাবোলিক এসএআর, সহজ চলমান গড় (এসএমএ) এবং দিকনির্দেশক আন্দোলন সূচক (ডিএমআই) ব্যবহার করে বাজারের প্রবণতা এবং প্রবেশের পয়েন্টগুলি নির্ধারণ করে, শতাংশ ভিত্তিক মুনাফা লক্ষ্য এবং এমএসিডি বিচ্যুতির মাধ্যমে প্রস্থানগুলি অনুকূল করে। মূল ধারণাটি হ'ল শক্তিশালী প্রবণতা নিশ্চিত করার পরে অবস্থানগুলি প্রবেশ করা এবং পূর্বনির্ধারিত মুনাফা লক্ষ্যমাত্রায় পৌঁছে বা প্রবণতা বিপরীত সংকেত উপস্থিত হলে প্রস্থান করা।
কৌশলটি একটি বহু-স্তরীয় ফিল্টারিং প্রক্রিয়া ব্যবহার করেঃ
এই কৌশলটি একাধিক প্রযুক্তিগত সূচক সমন্বয়ের মাধ্যমে একটি অপেক্ষাকৃত সম্পূর্ণ প্রবণতা অনুসরণকারী ট্রেডিং সিস্টেম তৈরি করে। এর শক্তি সংকেত নিশ্চিতকরণ নির্ভরযোগ্যতা এবং ঝুঁকি নিয়ন্ত্রণের নমনীয়তায় রয়েছে। যদিও অন্তর্নিহিত বিলম্বের ঝুঁকি রয়েছে, পরামিতি অপ্টিমাইজেশন এবং গতিশীল পরিচালনার প্রক্রিয়াগুলির মাধ্যমে কৌশলটি ভাল ব্যবহারিক মূল্য বজায় রাখে। ক্রমাগত অপ্টিমাইজেশন এবং উন্নতির মাধ্যমে, এই কৌশলটি একটি শক্তিশালী ট্রেডিং সরঞ্জাম হিসাবে কাজ করতে পারে।
/*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")