Trend penunjuk Donchian berbilang tempoh berikutan dan strategi perdagangan perbezaan

DC MA Trend momentum volatility SIGNAL
Tarikh penciptaan: 2025-02-21 10:38:06 Akhirnya diubah suai: 2025-02-21 10:38:06
Salin: 0 Bilangan klik: 448
2
fokus pada
319
Pengikut

Trend penunjuk Donchian berbilang tempoh berikutan dan strategi perdagangan perbezaan Trend penunjuk Donchian berbilang tempoh berikutan dan strategi perdagangan perbezaan

Gambaran keseluruhan

Strategi ini membina sistem pengesanan trend berdasarkan indikator saluran Dongxian yang berbilang kitaran. Dengan menganalisis penembusan saluran Dongxian dalam tempoh masa yang berbeza, gabungan trend utama dan hubungan kerjasama dengan trend tempatan, membentuk grafik jalur trend yang intuitif secara visual. Strategi ini menggunakan perubahan warna yang mendalam untuk menunjukkan kekuatan dan kelemahan trend.

Prinsip Strategi

Strategi ini adalah berdasarkan kepada penunjuk saluran Donchian untuk menilai trend. Saluran Donchian terdiri daripada saluran harga tertinggi dan saluran harga terendah, untuk menilai trend dengan membandingkan harga semasa dengan hubungan lokasi saluran.

  1. Penghakiman Trend Utama: Menggunakan 20 kitaran saluran Dongxian, apabila harga menembusi tren atas membentuk tren naik, menembusi tren bawah membentuk tren turun
  2. Penghakiman trend tempatan: Di bawah kerangka trend utama, arah trend tempatan dinilai menggunakan saluran Dongxian yang mempunyai kitaran yang lebih pendek
  3. Graf trendband: membentuk trendband melalui gabungan 10 kitaran yang berlainan, warna gelap dan terang mencerminkan kekuatan trend
  4. Isyarat dagangan: tren utama ke atas membuka lebih banyak pesanan, tren utama ke bawah membuka pesanan kosong, tren berbalik ketika posisi rata

Kelebihan Strategik

  1. Penilaian trend secara objektif: berdasarkan kecenderungan penilaian harga, mengelakkan bias yang disebabkan oleh penilaian subjektif
  2. Pengesahan pelbagai kitaran: meningkatkan ketepatan penghakiman trend dengan melapisi trend kitaran yang berbeza
  3. Kesan visual Intuitif: perubahan warna pada trendband Intuitif menunjukkan keadaan pasaran
  4. Peraturan perdagangan jelas: isyarat masuk dan keluar jelas, mudah untuk dilaksanakan secara berprogram
  5. Kebolehsuaian: dapat menyesuaikan parameter untuk mengoptimumkan prestasi strategi mengikut ciri-ciri varieti perdagangan

Risiko Strategik

  1. Risiko trend reversal: Kemunduran yang lebih besar mungkin berlaku pada titik perubahan trend
  2. Tidak berlaku untuk pasaran yang bergoyang: pergerakan yang bergoyang melintang mudah menghasilkan isyarat palsu
  3. Sensitiviti parameter: tetapan parameter yang berbeza dapat mempengaruhi kesan strategi
  4. Kesan Sliding Point: Perdagangan yang kerap mungkin terjejas oleh Sliding Point
  5. Risiko sistemik: Kejadian pasaran yang tidak dijangka boleh menyebabkan kerugian besar

Arah pengoptimuman strategi

  1. Menambah penapis kekuatan trend: memperkenalkan penunjuk kekuatan trend seperti ADX, penapis isyarat trend lemah
  2. Tetapan henti yang dioptimumkan: penyesuaian kedudukan henti berdasarkan ATR dinamik untuk meningkatkan keupayaan kawalan risiko
  3. Penambahan pengesahan jumlah pertukaran: analisis gabungan pertukaran untuk mengesahkan keberkesanan trend
  4. Memperkenalkan penyesuaian kadar turun naik: parameter penyesuaian dinamik mengikut kadar turun naik pasaran
  5. Pengurusan kedudukan yang lebih baik: penyesuaian dinamik saiz pegangan berdasarkan kekuatan trend

ringkaskan

Strategi ini menggunakan aplikasi inovatif dari saluran Dongxian pelbagai kitaran, membina visual kesan yang menonjol, logik yang jelas trend mengikuti sistem perdagangan. kelebihan utama strategi ini adalah untuk memvisualisasikan proses analisis trend yang rumit, memudahkan pedagang untuk memahami pergerakan pasaran secara intuitif. Dengan pengoptimuman parameter yang munasabah dan langkah-langkah kawalan risiko, strategi ini mempunyai nilai aplikasi yang baik dalam kehidupan nyata.

Kod sumber strategi
/*backtest
start: 2024-06-12 00:00:00
end: 2025-02-19 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy("Donchian Trend Ribbon Strategy", shorttitle="DonchianTrendRibbonStrat", overlay=true, precision=0)

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Parameters
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dlen = input.int(defval=20, title="Donchian Channel Period", minval=10)

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Helper function to determine color
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
f_color(mainTrend, localTrend) =>
    // mainTrend = 1 => uptrend, -1 => downtrend
    // localTrend = 1 => local uptrend, -1 => local downtrend
    // Return color based on whether local trend aligns with the main trend
    color c = na
    if mainTrend == 1
        c := localTrend == 1 ? color.new(color.lime, 0) : color.new(color.lime, 60)
    else if mainTrend == -1
        c := localTrend == -1 ? color.new(color.red, 0) : color.new(color.red, 60)
    else
        c := na
    c

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Function dchannel - determines main trend (1 or -1)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dchannel(len) =>
    float hh = ta.highest(len)
    float ll = ta.lowest(len)
    var int tr = 0
    tr := close > hh[1] ? 1 : close < ll[1] ? -1 : nz(tr[1])

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Function dchannelalt - determines local trend and returns color
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dchannelalt(len, maintrend) =>
    float hh = ta.highest(len)
    float ll = ta.lowest(len)
    var int tr = 0
    tr := close > hh[1] ? 1 : close < ll[1] ? -1 : nz(tr[1])
    f_color(maintrend, tr)

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Calculate main trend
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
maintrend = dchannel(dlen)

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Plotting the Donchian Trend Ribbon
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
plot( 5,  color=dchannelalt(dlen - 0, maintrend),  style=plot.style_columns, histbase= 0)
plot(10, color=dchannelalt(dlen - 1, maintrend),   style=plot.style_columns, histbase= 5)
plot(15, color=dchannelalt(dlen - 2, maintrend),   style=plot.style_columns, histbase=10)
plot(20, color=dchannelalt(dlen - 3, maintrend),   style=plot.style_columns, histbase=15)
plot(25, color=dchannelalt(dlen - 4, maintrend),   style=plot.style_columns, histbase=20)
plot(30, color=dchannelalt(dlen - 5, maintrend),   style=plot.style_columns, histbase=25)
plot(35, color=dchannelalt(dlen - 6, maintrend),   style=plot.style_columns, histbase=30)
plot(40, color=dchannelalt(dlen - 7, maintrend),   style=plot.style_columns, histbase=35)
plot(45, color=dchannelalt(dlen - 8, maintrend),   style=plot.style_columns, histbase=40)
plot(50, color=dchannelalt(dlen - 9, maintrend),   style=plot.style_columns, histbase=45)

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Trading Logic (STRATEGY)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bool goLong  = (maintrend == 1)
bool goShort = (maintrend == -1)

// Entry signals
if goLong
    strategy.entry("Long", strategy.long)

if goShort
    strategy.entry("Short", strategy.short)

// Close positions when trend changes
if strategy.position_size > 0 and goShort
    strategy.close("Long")

if strategy.position_size < 0 and goLong
    strategy.close("Short")