
Dual Donchian Channel Breakout Strategy adalah strategi perdagangan yang didasarkan pada saluran Donchian. Strategi ini menggunakan dua saluran Donchian yang cepat dan lambat untuk membangun sinyal perdagangan yang lebih banyak dan kosong.
Strategi penembusan saluran Donchian ganda didasarkan pada dua parameter:Siklus saluran Donchian yang lambatDanSiklus Jalur Donchian RapidStrategi pertama adalah menghitung rel atas dan bawah dari dua saluran Donchian.
sinyal masuk multi-head adalahHarga naikDanTingkat fluktuasi lebih besar dari penurunan◦ Sinyal masuk pesawat terbang adalah:Harga TerjatuhDanTingkat fluktuasi lebih besar dari penurunan。
sinyal stop loss adalah harga kembaliMenjatuhkannya│ sinyal stop loss posisi kosong adalah harga kembaliTerobosan di rel。
Kebijakan ini disesuaikan denganBerhentiKondisi Keluar: Secara default, setel hingga 2% dari margin, yaitu setengah dari posisi Anda ketika harga berubah hingga 2%.
Strategi penembusan saluran Donchian ganda memiliki keuntungan sebagai berikut:
Dengan menggunakan desain dua saluran, sinyal tren dapat ditangkap pada garis yang lebih panjang dan lebih pendek, sehingga dapat masuk dengan lebih akurat.
Kondisi volatilitas menghindari perdagangan yang sering terjadi di pasar horizontal.
Pengaturan stop loss dan stop loss bersifat komprehensif dan dapat mengunci sebagian keuntungan atau mengurangi kerugian.
Strategi logisnya sederhana dan jelas, mudah dipahami dan diterapkan.
Parameter yang dapat disesuaikan untuk berbagai varietas dan preferensi perdagangan.
Strategi penembusan saluran Donchian ganda juga memiliki risiko:
Desain saluran ganda lebih sensitif dan mudah menghasilkan sinyal yang salah. Anda dapat memperluas jangkauan saluran atau menyesuaikan parameter tingkat fluktuasi untuk mengurangi sinyal yang salah.
Stop loss dalam kondisi yang ekstrem mungkin terlalu sering dipicu. Anda dapat mengatur batas perdagangan atau memperluas stop loss.
Stop-loss dengan rasio tetap tidak dapat memaksimalkan keuntungan. Anda dapat mempertimbangkan untuk melakukan stop-loss dengan cara yang dinamis atau intervensi manual untuk menentukan harga stop-loss.
Kondisi disk nyata di luar deteksi mungkin tidak sesuai dengan yang diharapkan, harus diverifikasi terlebih dahulu, dan jika perlu menyesuaikan parameter.
Strategi penembusan saluran Donchian ganda dapat dioptimalkan dalam beberapa hal:
Uji lebih banyak kombinasi parameter periodik untuk menemukan parameter yang optimal.
Cobalah metode lain untuk menghitung volatilitas, seperti ATR, untuk mencari parameter yang paling stabil.
Tetapkan batasan jumlah posisi yang dibuka untuk menghindari rebound di akhir tren yang menyebabkan kerugian.
Cobalah untuk melacak stop loss secara dinamis untuk mendapatkan keuntungan yang lebih tinggi.
Kombinasi dengan indikator lain untuk memfilter sinyal masuk ke dalam permainan, meningkatkan akurasi pengambilan keputusan.
Strategi pengelolaan modal yang optimal, seperti fixed equity, rumus Kelly, dan lain-lain, untuk mengontrol rasio risiko-penghasilan yang lebih baik.
Strategi penembusan saluran Donchian ganda secara keseluruhan merupakan strategi pelacakan tren yang sangat baik. Ini menggabungkan kemampuan untuk mengenali tren dan kemampuan untuk melindungi dari reversal. Dengan optimasi parameter dan perbaikan aturan, dapat disesuaikan dengan sebagian besar varietas, perdagangan yang menguntungkan di berbagai pasar.
/*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)