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.
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.
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%.
Strategi Penembusan Saluran Dual Donchian mempunyai kelebihan berikut:
Reka bentuk saluran dua boleh menangkap isyarat trend dari bingkai masa yang lebih panjang dan lebih pendek, yang membolehkan entri yang lebih tepat.
Keadaan turun naik mengelakkan perdagangan yang kerap di pasaran yang terhad.
Tetapan mengambil keuntungan dan menghentikan kerugian yang komprehensif mengunci keuntungan separa dan mengurangkan kerugian.
Logik strategi yang mudah dan jelas, mudah difahami dan dilaksanakan.
Parameter yang boleh disesuaikan sesuai dengan produk dan keutamaan perdagangan yang berbeza.
Strategi Penembusan Saluran Dual Donchian juga mempunyai beberapa risiko:
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.
Dalam pasaran yang tidak menentu, stop loss boleh mencetuskan terlalu kerap.
Peratusan tetap mengambil keuntungan gagal memaksimumkan keuntungan. Pertimbangkan campur tangan dinamik atau manual untuk harga mengambil keuntungan yang optimum.
Prestasi dagangan sebenar mungkin berbeza dari jangkaan backtest.
Strategi Penembusan Saluran Dual Donchian boleh dioptimumkan dalam beberapa aspek:
Uji lebih banyak kombinasi tempoh untuk mencari parameter optimum.
Cuba ukuran turun naik yang berbeza seperti ATR untuk mencari metrik yang paling stabil.
Tetapkan had jumlah entri untuk mengelakkan kerugian pada akhir trend.
Cuba mengambil keuntungan dinamik untuk keuntungan perdagangan tunggal yang lebih tinggi.
Masukkan penunjuk lain untuk menapis entri dan meningkatkan ketepatan, contohnya jumlah.
Mengoptimumkan model pengurusan wang seperti saiz kedudukan pecahan tetap untuk kawalan risiko yang lebih baik.
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)