
Strategi Penembusan Saluran Dual Donchian adalah strategi perdagangan yang berdasarkan pada saluran Donchian. Ia menggunakan kedua-dua saluran Donchian yang cepat dan lambat untuk membina isyarat perdagangan bertopeng dan kosong.
Strategi penembusan dua saluran Donchian adalah berdasarkan dua parameter:Kitaran laluan Donchian yang perlahandanKitaran laluan Donchian pantasStrategi pertama adalah mengira laluan atas dan bawah dua saluran Donchian.
Isyarat masuk berbilang arah adalahHarga naik ke paras yang lebih baikdanVolatiliti lebih besar daripada nilai terendah◦ isyarat kemasukan udara kosong adalahHarga MeledakdanVolatiliti lebih besar daripada nilai terendah。
Tanda-tanda Hentian Hentian Multi-Head adalah harga kembaliMeletakkan diri│ tanda hentian kosong adalah harga semulaPembaharuan。
Strategi ini ditetapkan padaPenangguhanSyarat Keluar: Secara lalai, kadar penarikan adalah 2%, iaitu separuh daripada kedudukan penarikan apabila perubahan harga mencapai 2%.
Strategi penembusan saluran Donchian berganda mempunyai kelebihan berikut:
Menggunakan reka bentuk dua saluran, ia dapat menangkap isyarat trend pada garis yang lebih panjang dan lebih pendek, untuk mencapai kemasukan yang lebih tepat.
Keadaan kadar turun naik mengelakkan dagangan yang kerap di pasaran.
Tetapan berhenti dan hentikan kerugian adalah komprehensif, boleh mengunci sebahagian keuntungan, atau dapat mengurangkan kerugian.
Logik strategi mudah difahami dan dilaksanakan.
Parameter boleh disesuaikan untuk pelbagai jenis dan pilihan perdagangan.
Strategi penembusan saluran Donchian berganda juga mempunyai risiko:
Reka bentuk dua saluran lebih sensitif dan mudah menghasilkan isyarat salah. Anda boleh meluaskan julat saluran atau menyesuaikan parameter kadar turun naik untuk mengurangkan isyarat salah.
Hentian terhad mungkin berlaku terlalu kerap. Anda boleh menetapkan had maksimum untuk jumlah dagangan atau memperluaskan Hentian terhad.
Penangguhan peratusan tetap tidak dapat memaksimumkan keuntungan. Penangguhan boleh dipertimbangkan untuk mengesan penangguhan secara dinamik atau intervensi buatan untuk menentukan harga penangguhan.
Keadaan cakera nyata di luar pengesanan mungkin tidak sesuai dengan yang diharapkan, harus disahkan terlebih dahulu, dan jika perlu, ubah parameter.
Strategi penembusan dua saluran Donchian boleh dioptimumkan dalam beberapa aspek:
Uji lebih banyak kombinasi parameter kitaran untuk mencari parameter terbaik.
Cuba kaedah pengiraan kadar turun naik yang berbeza, seperti ATR, untuk mencari parameter yang paling stabil.
Tetapkan had kepada jumlah kali anda membuka kedudukan anda untuk mengelakkan kerugian akibat rebound pada akhir trend.
Berusahalah untuk menjejaki stop loss secara dinamik untuk mencapai keuntungan tunggal yang lebih tinggi.
Menapis isyarat masuk ke pertandingan, meningkatkan ketepatan membuat keputusan. Sebagai contoh, penyambungan penunjuk lalu lintas.
Strategi pengurusan wang yang dioptimumkan, seperti bahagian tetap, formula Kelly, dan sebagainya, mengawal nisbah risiko dan ganjaran yang lebih baik.
Strategi penembusan saluran Donchian ganda secara keseluruhan adalah strategi pengesanan trend yang sangat baik. Ia mempunyai keupayaan untuk mengenali trend dan perlindungan pembalikan. Dengan pengoptimuman parameter dan penyempurnaan peraturan, ia dapat disesuaikan dengan kebanyakan varieti, perdagangan yang menguntungkan di pelbagai pasaran.
/*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)