Strategi Penembusan Saluran Donchian Berganda adalah strategi perdagangan kuantitatif berdasarkan Saluran Donchian. Strategi ini menggunakan gabungan Saluran Donchian yang cepat dan perlahan untuk mencapai perdagangan penembusan berisiko rendah dengan pulangan yang tinggi. Ia pergi panjang / pendek apabila harga keluar dari saluran yang perlahan dan keluar pada stop loss atau mengambil keuntungan apabila harga pecah kembali melalui saluran yang cepat.
Strategi ini terutamanya menggunakan dua Saluran Donchian, termasuk saluran yang lebih perlahan dengan tempoh yang lebih lama dan saluran yang lebih cepat dengan tempoh yang lebih pendek.
Saluran Donchian yang perlahan mempunyai tempoh yang lebih lama yang dapat menapis bunyi bising pasaran dengan berkesan, menjadikan isyarat pecahnya lebih boleh dipercayai.
Saluran Donchian yang cepat mempunyai tempoh yang lebih pendek yang dapat bertindak balas dengan cepat terhadap turun naik harga jangka pendek.
Di samping itu, keadaan turun naik ditetapkan sebagai penapis untuk isyarat kemasukan. Strategi ini hanya akan mencetuskan kemasukan apabila pergerakan harga melebihi ambang peratusan yang telah ditentukan. Ini mengelakkan whipsaws yang kerap semasa penyatuan terhad julat.
Risiko ini boleh dikurangkan dengan pengoptimuman parameter, penempatan stop loss yang munasabah, kesedaran peristiwa dll.
Strategi Penembusan Saluran Double Donchian secara keseluruhan adalah strategi trend yang agak stabil dan boleh dipercayai. Ia menggabungkan kekuatan kedua-dua penangkapan trend dan kawalan risiko, menjadikannya sesuai sebagai modul asas dalam pelbagai strategi dagangan saham. Penambahbaikan prestasi yang lebih lanjut boleh dijangka melalui penyesuaian parameter dan penyempurnaan logik.
/*backtest start: 2024-01-04 00:00:00 end: 2024-02-03 00:00:00 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) slowLen = input.int(50, title="Slow Donchian") fastLen = input.int(30, title="Fast Donchian") volatility = input.int(3, title="Volatility (%)") longProfitPerc = input.float(2, title="Long TP1 (%)", minval=0.0, step=0.1) * 0.01 shortProfitPerc = input.float(2, title="Short TP1 (%)", minval=0.0, step=0.1) * 0.01 TP1Yuzde =input.int(50, title = "TP1 Position Amount (%)") ubSlow = ta.highest(close, slowLen)[1] lbSlow = ta.lowest(close, slowLen)[1] ubFast = ta.highest(close, fastLen)[1] lbFast = ta.lowest(close, fastLen)[1] 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") fark = (ubSlow - lbSlow) / lbSlow * 100 longExitPrice = strategy.position_avg_price * (1 + longProfitPerc) shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc) longCondition = ta.crossover(close, ubSlow) and fark > volatility if (longCondition) strategy.entry("Long", strategy.long) shortCondition = ta.crossunder(close, lbSlow) and fark > volatility if (shortCondition) strategy.entry("Short", strategy.short) if strategy.position_size > 0 and ta.crossunder(close, lbFast) strategy.close("Long", "Close All") if strategy.position_size < 0 and ta.crossover(close, ubFast) strategy.close("Short", "Close All") // Take Profit if strategy.position_size > 0 strategy.exit("TP1", "Long", qty_percent = TP1Yuzde, limit = longExitPrice) if strategy.position_size < 0 strategy.exit("TP1", "Short", qty_percent = TP1Yuzde, limit = shortExitPrice)