Sumber dimuat naik... memuat...

Trend Multi-Indikator Mengikuti Strategi dengan Pengoptimuman Keuntungan

Penulis:ChaoZhang, Tarikh: 2024-12-11 17:22:57
Tag:SARATRMACDSMADMIADX

img

Ringkasan

Strategi ini adalah sistem perdagangan trend-mengikuti yang menggabungkan beberapa penunjuk teknikal. Ia terutamanya menggunakan Parabolic SAR, Purata Bergerak Sederhana (SMA), dan Indeks Pergerakan Arah (DMI) untuk menentukan trend pasaran dan titik kemasukan, sambil mengoptimumkan keluar melalui sasaran keuntungan berasaskan peratusan dan perbezaan MACD. Konsep terasnya adalah untuk memasuki kedudukan selepas mengesahkan trend yang kuat dan keluar apabila mencapai sasaran keuntungan yang ditetapkan sebelumnya atau apabila isyarat pembalikan trend muncul.

Prinsip Strategi

Strategi ini menggunakan mekanisme penapisan pelbagai lapisan:

  1. Isyarat dagangan awal ditangkap melalui persilangan SAR
  2. Arah trend keseluruhan ditentukan menggunakan SMA 50 tempoh
  3. Indikator DMI mengesahkan kekuatan trend dan arah
  4. Syarat kemasukan memerlukan: harga melintasi di atas SAR, harga di atas SMA dan DMI menaik
  5. Mekanisme keluar berganda: 3% keuntungan sasaran atau persimpangan penurunan MACD
  6. Indikator ATR untuk rujukan turun naik pasaran

Kelebihan Strategi

  1. Penyelarasan silang pelbagai penunjuk teknikal mengurangkan isyarat palsu
  2. Gabungan trend berikut dan petunjuk momentum meningkatkan kadar kejayaan
  3. Sasaran keuntungan peratusan tetap memastikan keuntungan yang konsisten
  4. Mekanisme keluar divergensi MACD menghalang pengeluaran pembalikan trend
  5. Parameter strategi boleh disesuaikan dengan fleksibel untuk ciri pasaran yang berbeza
  6. Pemantauan ATR menyediakan rujukan keadaan pasaran

Risiko Strategi

  1. Pelbagai penunjuk boleh menyebabkan kelewatan isyarat
  2. Sasaran keuntungan peratusan tetap mungkin menyebabkan keluar awal semasa trend yang kuat
  3. Kekurangan mekanisme stop-loss meningkatkan pendedahan risiko
  4. Isyarat palsu yang berlebihan mungkin berlaku di pasaran yang berbeza
  5. Indikator DMI boleh menghasilkan isyarat yang mengelirukan di pasaran yang bergolak

Arahan pengoptimuman

  1. Melaksanakan mekanisme stop-loss adaptif menggunakan berhenti dinamik berasaskan ATR
  2. Membangunkan penapis turun naik untuk menyesuaikan saiz kedudukan semasa tempoh turun naik yang tinggi
  3. Mengoptimumkan parameter MACD untuk pengesanan pembalikan trend yang lebih baik
  4. Tambah mekanisme pengesahan jumlah untuk kebolehpercayaan isyarat yang lebih baik
  5. Membangunkan sasaran keuntungan dinamik berdasarkan turun naik pasaran

Ringkasan

Strategi ini membina sistem perdagangan trend yang agak lengkap melalui penyelarasan pelbagai penunjuk teknikal. Kekuatannya terletak pada kebolehpercayaan pengesahan isyarat dan fleksibiliti kawalan risiko. Walaupun terdapat risiko kelewatan yang melekat, strategi ini mengekalkan nilai praktikal yang baik melalui pengoptimuman parameter dan mekanisme pengurusan dinamik. Melalui pengoptimuman dan penambahbaikan berterusan, strategi ini dapat berfungsi sebagai alat perdagangan yang mantap.


/*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")


Berkaitan

Lebih lanjut