Dual Donchian Channel Breakout Strategi

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

img

Gambaran umum

Dual Donchian Channel Breakout Strategy adalah strategi perdagangan breakout yang didasarkan pada Donchian Channels. Strategi ini menggunakan saluran Donchian cepat dan lambat untuk membangun sinyal perdagangan panjang dan pendek. Ketika harga menembus saluran lambat, buka posisi panjang atau pendek. Ketika harga menembus kembali saluran cepat, tutup posisi. Strategi ini juga menetapkan kondisi mengambil keuntungan dan stop loss.

Prinsip Strategi

Dual Donchian Channel Breakout Strategy didasarkan pada dua parameter:Periode Saluran Donchian yang lambatdanPeriode Saluran Donchian CepatStrategi pertama menghitung band atas dan bawah dari dua saluran Donchian.

  • Periode saluran Donchian lambat default adalah 50 bar, mencerminkan tren jangka panjang.
  • Periode saluran Donchian cepat default adalah 30 bar, mencerminkan perubahan tren jangka pendek.

Sinyal masuk panjang adalahpecah di atas pita atasdenganvolatilitas lebih besar dari ambang batas. Sinyal masuk pendek adalahPembagian di bawah band bawahdenganvolatilitas lebih besar dari ambang batas.

Sinyal keluar stop loss panjang adalahPembagian di bawah band bawah. Sinyal keluar stop loss pendek adalahpecah di atas pita atas.

Strategi ini juga menetapkanmengambil keuntunganKondisi keluar. rasio mengambil keuntungan default adalah 2%, yaitu mengambil keuntungan setengah posisi ketika pergerakan harga mencapai 2%.

Analisis Keuntungan

Dual Donchian Channel Breakout Strategy memiliki keuntungan berikut:

  1. Desain saluran ganda dapat menangkap sinyal tren dari jangka waktu yang lebih panjang dan lebih pendek, memungkinkan entri yang lebih akurat.

  2. Kondisi volatilitas menghindari perdagangan yang sering di pasar yang terikat rentang.

  3. Pengaturan mengambil keuntungan dan stop loss yang komprehensif mengunci keuntungan parsial dan mengurangi kerugian.

  4. Logika strategi yang sederhana dan jelas, mudah dipahami dan diimplementasikan.

  5. Parameter yang dapat disesuaikan sesuai dengan produk dan preferensi perdagangan yang berbeda.

Analisis Risiko

Strategi Penembusan Saluran Dual Donchian juga memiliki beberapa risiko:

  1. Desain saluran ganda sensitif dan dapat menghasilkan sinyal palsu. saluran yang lebih luas atau parameter volatilitas disesuaikan dapat mengurangi sinyal palsu.

  2. Dalam pasar yang tidak stabil, stop loss dapat diaktifkan terlalu sering.

  3. Persentase tetap mengambil keuntungan gagal untuk memaksimalkan keuntungan. Pertimbangkan intervensi dinamis atau manual untuk harga mengambil keuntungan optimal.

  4. Kinerja perdagangan yang sebenarnya mungkin berbeda dari harapan backtest.

Arahan Optimasi

Dual Donchian Channel Breakout Strategy dapat dioptimalkan dalam beberapa aspek:

  1. Uji lebih banyak kombinasi periode untuk menemukan parameter optimal.

  2. Cobalah ukuran volatilitas yang berbeda seperti ATR untuk menemukan metrik yang paling stabil.

  3. Tetapkan batas jumlah entri untuk menghindari kerugian pada akhir tren.

  4. Cobalah mengambil keuntungan dinamis untuk keuntungan perdagangan tunggal yang lebih tinggi.

  5. Masukkan indikator lain untuk menyaring entri dan meningkatkan akurasi, misalnya volume.

  6. Mengoptimalkan model manajemen uang seperti ukuran posisi pecahan tetap untuk kontrol risiko yang lebih baik.

Kesimpulan

Sebagai kesimpulan, Dual Donchian Channel Breakout Strategy adalah strategi trend berikut yang sangat baik. Ini menggabungkan kemampuan identifikasi tren dan perlindungan pembalikan. Dengan optimasi parameter dan penyempurnaan aturan, strategi ini dapat menguntungkan di sebagian besar produk dan kondisi pasar. Strategi ini sederhana dan praktis, layak dipelajari dan diterapkan untuk pedagang 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 banyak