Strategi pelacakan tren multi-indikator momentum: saluran Donchian + tren super + sistem pembangunan posisi filter volume

DC ST MA VOL BO
Tanggal Pembuatan: 2025-02-21 11:47:17 Akhirnya memodifikasi: 2025-02-21 11:47:17
menyalin: 0 Jumlah klik: 565
2
fokus pada
319
Pengikut

Strategi pelacakan tren multi-indikator momentum: saluran Donchian + tren super + sistem pembangunan posisi filter volume Strategi pelacakan tren multi-indikator momentum: saluran Donchian + tren super + sistem pembangunan posisi filter volume

Ringkasan

Strategi ini adalah sistem perdagangan pelacakan tren berdasarkan penembusan saluran Donchian, yang menggabungkan indikator SuperTrend dan filter volume transaksi untuk meningkatkan keandalan sinyal perdagangan. Strategi ini terutama mengidentifikasi peluang perdagangan multihead potensial dengan menangkap harga yang melampaui titik tertinggi historis, sambil menggunakan konfirmasi volume transaksi dan indikator pelacakan tren untuk memfilter sinyal penembusan palsu.

Prinsip Strategi

Logika inti dari strategi ini didasarkan pada komponen-komponen kunci berikut:

  1. Saluran Tongxian: menghitung harga tertinggi dan terendah dalam siklus yang ditentukan pengguna, membentuk lintasan atas, bawah, dan tengah. Ketika harga menembus lintasan atas, memicu sinyal masuk multihead.
  2. Filter volume transaksi: meningkatkan keandalan terobosan dengan membandingkan volume transaksi saat ini dengan rata-rata bergerak 20 siklus, memastikan hanya masuk saat volume transaksi meningkat.
  3. Indikator supertrend: sebagai alat konfirmasi tren, ditampilkan dalam warna hijau pada tren multihead dan merah pada tren headless.
  4. Fleksibel Stop loss: menyediakan empat pilihan stop loss yang berbeda, termasuk stop loss di bawah rel, stop loss di tengah rel, stop loss super trend, dan stop loss tracking persentase.

Keunggulan Strategis

  1. Multiple Signal Confirmation: Kombinasi dari harga terobosan, konfirmasi volume transaksi dan indikator tren, mengurangi risiko terobosan palsu.
  2. Adaptabilitas: dapat disesuaikan dengan berbagai lingkungan pasar dan siklus perdagangan melalui penyesuaian parameter.
  3. Manajemen risiko yang baik: menyediakan berbagai pilihan stop loss yang dapat dipilih sesuai dengan karakteristik pasar.
  4. Visibilitas yang jelas: Antarmuka strategi menampilkan berbagai indikator secara intuitif, sehingga memudahkan trader memahami kondisi pasar.
  5. Fleksibilitas retrospeksi: Memungkinkan untuk menyesuaikan rentang waktu retrospeksi, sehingga lebih mudah untuk mengoptimalkan strategi.

Risiko Strategis

  1. Risiko pasar yang bergoyang: Sering terjadi sinyal palsu dalam situasi yang bergoyang.
  2. Risiko slippage: Dalam pasar yang kurang likuid, sinyal penembusan dapat menyebabkan harga masuk menyimpang karena slippage.
  3. Risiko over-filtering: Mengaktifkan volume filter mungkin akan melewatkan beberapa peluang perdagangan yang efektif.
  4. Sensitivitas parameter: Efek strategi peka terhadap pengaturan parameter dan memerlukan pengoptimalan yang cermat.

Arah optimasi strategi

  1. Tambahkan filter kekuatan tren: Anda dapat menambahkan indikator kekuatan tren seperti ADX, hanya masuk jika tren kuat.
  2. Optimalkan indikator lalu lintas: Anda dapat mempertimbangkan untuk menggunakan lalu lintas relatif atau lalu lintas terobosan indikator sebagai pengganti rata-rata bergerak sederhana.
  3. Tambahkan filter waktu: Tambahkan pengaturan jendela waktu perdagangan untuk menghindari saat-saat di mana pasar berfluktuasi besar.
  4. Optimasi parameter dinamis: Mengatur siklus saluran dan parameter tren super secara otomatis sesuai dengan fluktuasi pasar.
  5. Memperkenalkan pembelajaran mesin: Mengoptimalkan pilihan parameter dan pemfilteran sinyal menggunakan algoritma pembelajaran mesin.

Meringkaskan

Strategi ini menggunakan beberapa indikator teknis secara komprehensif untuk membangun sistem perdagangan pelacakan tren yang relatif sempurna. Keunggulan strategi ini adalah keandalan sinyal yang tinggi, fleksibilitas manajemen risiko, tetapi masih membutuhkan parameter yang dioptimalkan oleh pedagang sesuai dengan karakteristik pasar tertentu. Dengan perbaikan dan pengoptimalan berkelanjutan, strategi ini diharapkan untuk mendapatkan efek perdagangan yang stabil di pasar tren.

Kode Sumber Strategi
/*backtest
start: 2024-10-01 00:00:00
end: 2025-02-19 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

// Breakout trading system based on Donchain channel strategy that works best on a weekly chart and daily charts. Weekly is preferred. 

//@version=5

strategy('Donchian BO with Volume Filter and Supertrend', shorttitle='DBO+Vol+ST', default_qty_type=strategy.percent_of_equity, default_qty_value=2, overlay=true)

// Input options to configure backtest date range
startDate = input.int(title='Start Date', defval=1, minval=1, maxval=31)
startMonth = input.int(title='Start Month', defval=1, minval=1, maxval=12)
startYear = input.int(title='Start Year', defval=2016, minval=1800, maxval=2100)
avgVol = input.int(title="Avg Volume length", defval=20)
srcInput = input.source(close, "Source")

// Volume filter toggle
useVolumeFilter = input.bool(true, title='Enable Volume Filter')

endDate = input.int(title='End Date', defval=1, minval=1, maxval=31)
endMonth = input.int(title='End Month', defval=7, minval=1, maxval=12)
endYear = input.int(title='End Year', defval=2030, minval=1800, maxval=2100)

multiplier = input.int(title='SuperTrend Mult', defval=2, minval=1, maxval=12)
stlen = input.int(title='SuperTrend Length', defval=10, minval=1, maxval=12)

length = input.int(21, minval=1)
exit = input.int(3, minval=1, maxval=4, title='Exit Option')  // Use Option 1 to exit using lower band; Use Option 2 to exit using basis line

lower = ta.lowest(length)
upper = ta.highest(length)
basis = math.avg(upper, lower)

// Plotting the Donchian channel
l = plot(lower, color=color.new(color.blue, 0))
u = plot(upper, color=color.new(color.blue, 0))
plot(basis, color=color.new(color.orange, 0))
fill(u, l, color=color.new(color.blue, 90))

// Check if the current bar is in the date range
inDateRange = time >= timestamp(syminfo.timezone, startYear, startMonth, startDate, 0, 0) and time < timestamp(syminfo.timezone, endYear, endMonth, endDate, 0, 0)

// Long trailing stop-loss percentage
longTrailPerc = input.float(title='Trail Long Loss (%)', minval=0.0, step=0.1, defval=3) * 0.01
longStopPrice = 0.0

longStopPrice := if strategy.position_size > 0
    stopValue = close * (1 - longTrailPerc)
    math.max(stopValue, longStopPrice[1])
else
    0

// Volume filter: 20-period moving average
volumeMA = ta.sma(volume, avgVol)

// Long entry condition: Donchian breakout + volume filter
longCondition = ta.crossover(srcInput, upper[1]) and (not useVolumeFilter or volume > volumeMA)
longsma = ta.sma(close, 200)

if inDateRange and longCondition
    strategy.entry('Long', strategy.long)

// Exit conditions
if inDateRange and exit == 1
    if ta.crossunder(close, lower[1])
        strategy.close('Long')

if inDateRange and exit == 2
    if ta.crossunder(close, basis[1])
        strategy.close('Long')

[superTrend, dir] = ta.supertrend(multiplier, stlen)
if inDateRange and exit == 3
    if ta.crossunder(close, superTrend)
        strategy.close('Long')

if inDateRange and exit == 4
    if strategy.position_size > 0
        strategy.exit(id='XL TRL STP', stop=longStopPrice)

// Short conditions (commented out for now)
shortCondition = ta.crossunder(close, lower[1])

// Exit all positions when date range ends
if not inDateRange
    strategy.close_all()

// --- Add Supertrend Indicator ---
stColor = dir == 1 ? color.red : color.green
plot(superTrend, color=stColor, title="SuperTrend", linewidth=2)