Dual Donchian Channel Breakout Strategy

Penulis:ChaoZhang, Tarikh: 2024-02-21 11:38:48
Tag:

img

Ringkasan

Strategi Penembusan Saluran Donchian Berganda adalah strategi perdagangan penembusan berdasarkan Saluran Donchian. Ia menggunakan Saluran Donchian yang cepat dan perlahan untuk membina isyarat perdagangan yang panjang dan pendek. Apabila harga menembusi saluran yang perlahan, buka kedudukan panjang atau pendek. Apabila harga menembusi saluran yang cepat, tutup kedudukan. Strategi ini juga menetapkan mengambil keuntungan dan syarat berhenti kerugian.

Prinsip Strategi

Strategi Penembusan Saluran Dual Donchian adalah berdasarkan dua parameter:Tempoh Saluran Donchian yang perlahandanTempoh Saluran Donchian CepatStrategi pertama mengira jalur atas dan bawah kedua-dua Saluran Donchian.

  • Tempoh saluran Donchian perlahan lalai adalah 50 bar, mencerminkan trend jangka panjang.
  • Tempoh saluran Donchian pantas lalai adalah 30 bar, mencerminkan perubahan trend jangka pendek.

Isyarat masuk panjang adalahPenembusan di atas jalur atasdenganVolatiliti melebihi ambang. Isyarat masuk pendek adalahpembahagian di bawah jalur bawahdenganVolatiliti melebihi ambang.

Isyarat keluar stop loss panjang adalahpembahagian di bawah jalur bawah. Isyarat keluar stop loss pendek adalahPenembusan di atas jalur atas.

Strategi ini juga menetapkanmengambil keuntunganSyarat keluar. nisbah mengambil keuntungan lalai adalah 2%, iaitu mengambil keuntungan separuh kedudukan apabila pergerakan harga mencapai 2%.

Analisis Kelebihan

Strategi Penembusan Saluran Dual Donchian mempunyai kelebihan berikut:

  1. Reka bentuk saluran dua boleh menangkap isyarat trend dari bingkai masa yang lebih panjang dan lebih pendek, yang membolehkan entri yang lebih tepat.

  2. Keadaan turun naik mengelakkan perdagangan yang kerap di pasaran yang terhad.

  3. Tetapan mengambil keuntungan dan menghentikan kerugian yang komprehensif mengunci keuntungan separa dan mengurangkan kerugian.

  4. Logik strategi yang mudah dan jelas, mudah difahami dan dilaksanakan.

  5. Parameter yang boleh disesuaikan sesuai dengan produk dan keutamaan perdagangan yang berbeza.

Analisis Risiko

Strategi Penembusan Saluran Dual Donchian juga mempunyai beberapa risiko:

  1. Reka bentuk saluran dua adalah sensitif dan boleh menghasilkan isyarat palsu. Saluran yang lebih luas atau parameter turun naik yang diselaraskan boleh mengurangkan isyarat palsu.

  2. Dalam pasaran yang tidak menentu, stop loss boleh mencetuskan terlalu kerap.

  3. Peratusan tetap mengambil keuntungan gagal memaksimumkan keuntungan. Pertimbangkan campur tangan dinamik atau manual untuk harga mengambil keuntungan yang optimum.

  4. Prestasi dagangan sebenar mungkin berbeza dari jangkaan backtest.

Arahan pengoptimuman

Strategi Penembusan Saluran Dual Donchian boleh dioptimumkan dalam beberapa aspek:

  1. Uji lebih banyak kombinasi tempoh untuk mencari parameter optimum.

  2. Cuba ukuran turun naik yang berbeza seperti ATR untuk mencari metrik yang paling stabil.

  3. Tetapkan had jumlah entri untuk mengelakkan kerugian pada akhir trend.

  4. Cuba mengambil keuntungan dinamik untuk keuntungan perdagangan tunggal yang lebih tinggi.

  5. Masukkan penunjuk lain untuk menapis entri dan meningkatkan ketepatan, contohnya jumlah.

  6. Mengoptimumkan model pengurusan wang seperti saiz kedudukan pecahan tetap untuk kawalan risiko yang lebih baik.

Kesimpulan

Kesimpulannya, Dual Donchian Channel Breakout Strategy adalah strategi trend berikut yang sangat baik. Ia menggabungkan kedua-dua pengenalan trend dan keupayaan perlindungan pembalikan. Dengan pengoptimuman parameter dan penyempurnaan peraturan, ia boleh menguntungkan di kebanyakan produk dan keadaan pasaran. Strategi ini mudah dan praktikal, bernilai dipelajari dan digunakan untuk peniaga kuantitatif.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Scriptâ„¢ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © omererkan

//@version=5
strategy(title="Double Donchian Channel Breakout", overlay=true, initial_capital = 1000, commission_value = 0.05, default_qty_value = 100, default_qty_type = strategy.percent_of_equity)

// Donchian Channels
slowLen = input.int(50, title="Slow Donchian", group = "Conditions")
fastLen = input.int(30, title="Fast Donchian", group = "Conditions")

// Volatility Calculated as a percentage
volatility = input.int(3, title="Volatility (%)", group = "Conditions")

// Long positions
long = input.bool(true, "Long Position On/Off", group = "Strategy")
longProfitPerc = input.float(2, title="Long TP1 (%)", group = "Strategy", minval=0.0, step=0.1) * 0.01

// Short positions
short = input.bool(true, "Short Position On/Off", group = "Strategy")
shortProfitPerc = input.float(2, title="Short TP1 (%)", group = "Strategy", minval=0.0, step=0.1) * 0.01

// First take profit point for positions
TP1Yuzde =input.int(50, title = "TP1 Position Amount (%)", group = "Strategy")

// Slow Donchian Calculated
ubSlow = ta.highest(high, slowLen)[1]
lbSlow = ta.lowest(low, slowLen)[1]

// Fast Donchian Calculated
ubFast = ta.highest(high, fastLen)[1]
lbFast = ta.lowest(low, fastLen)[1]

// Plot Donchian Channel for entries
plot(ubSlow, color=color.green, linewidth=2, title="Slow DoCh - Upperband")
plot(lbSlow, color=color.green, linewidth=2, title="Slow DoCh - Lowerband")
plot(ubFast, color=color.blue, linewidth=2, title="Fast DoCh - Upperband")
plot(lbFast, color=color.blue, linewidth=2, title="Fast DoCh - Lowerband")

// This calculation, the strategy does not open position in the horizontal market.
fark = (ubSlow - lbSlow) / lbSlow * 100

// Take profit levels
longExitPrice  = strategy.position_avg_price * (1 + longProfitPerc)
shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc)

// Code long trading conditions
longCondition = ta.crossover(close, ubSlow) and fark > volatility
if longCondition and long == true
    strategy.entry("Long", strategy.long)

// Code short trading conditions
shortCondition = ta.crossunder(close, lbSlow) and fark > volatility
if shortCondition and short == true
    strategy.entry("Short", strategy.short)

// Determine long trading conditions
if strategy.position_size > 0 and ta.crossunder(close, lbFast) 
    strategy.close_all("Close All")

// Determine short trading conditions
if strategy.position_size < 0 and ta.crossover(close, ubFast)
    strategy.close_all("Close All")

// Take Profit Long
if strategy.position_size > 0
    strategy.exit("TP1", "Long", qty_percent = TP1Yuzde, limit = longExitPrice)

// Take Profit Short
if strategy.position_size < 0
    strategy.exit("TP1", "Short", qty_percent = TP1Yuzde, limit = shortExitPrice)

Lebih lanjut