Strategi Penembusan Saluran Double Donchian

Penulis:ChaoZhang, Tarikh: 2024-02-04 09:42:14
Tag:

img

Ringkasan

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.

Logika Strategi

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.

Analisis Kelebihan

  • Mekanisme saluran dua menetapkan dua barisan pertahanan dan berkesan mengawal risiko
  • Gabungan saluran cepat dan perlahan menangkap trend dengan cekap
  • Penapis turun naik mengurangkan perdagangan yang tidak berkesan
  • Pada masa yang sama mengesan trend dan mengelakkan overfitting
  • Logik yang mudah dan jelas, mudah difahami dan dikuasai

Analisis Risiko

  • Perubahan harga yang ganas boleh menembusi stop loss dan menyebabkan kerugian besar
  • Tetapan parameter yang tidak betul (contohnya tempoh saluran) boleh menjejaskan kecekapan strategi
  • Kos dagangan juga merosakkan keuntungan hingga tahap tertentu
  • Risiko jurang di sekitar peristiwa penting memerlukan perhatian

Risiko ini boleh dikurangkan dengan pengoptimuman parameter, penempatan stop loss yang munasabah, kesedaran peristiwa dll.

Arahan pengoptimuman

  • Uji gabungan yang berbeza dari tempoh saluran Donchian
  • Mengoptimumkan parameter turun naik untuk masa kemasukan terbaik
  • Tambah penunjuk pemeriksaan trend untuk mengelakkan perdagangan yang bertentangan dengan trend
  • Pemilihan stok berasaskan asas
  • Sesuaikan mekanisme stop loss untuk mengehadkan kerugian

Kesimpulan

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)

Lebih lanjut