Strategi Penembusan Saluran Donchian adalah strategi perdagangan kuantitatif yang mengikuti trend. Ia menggunakan Saluran Donchian untuk menangkap trend pasaran sambil menggunakan hentian trailing ATRSL untuk menguruskan risiko. Apabila harga melanggar band atas Saluran Donchian, strategi memasuki kedudukan panjang; apabila harga jatuh di bawah garis hentian trailing ATRSL, strategi menutup kedudukan.
donLength
parameter, mengira tertinggi tertinggi dan terendah rendah masa laludonLength
tempoh sebagai band atasdonUpper
dan band bawahdonLower
garis tengah saluran Donchian, masing-masingdonBasis
adalah purata jalur atas dan bawah.AP2
danAF2
parameter, mengira nilai ATRSL2
. Kemudian, secara dinamik menyesuaikan harga hentianTrail2
mengikut hubungan antara harga penutupan semasaSC
dan harga hentian yang laluTrail2[1]
.donLength
, AP2
, danAF2
mengikut keperluan mereka untuk mengoptimumkan prestasi strategi.Strategi Penembusan Saluran Donchian adalah strategi trend berikut klasik yang menangkap trend menggunakan Saluran Donchian dan menguruskan risiko dengan hentian trailing ATRSL. Kelebihan strategi termasuk logiknya yang mudah dan jelas, kemudahan pelaksanaan, dan potensi untuk pengoptimuman. Walau bagaimanapun, kekurangannya termasuk prestasi yang buruk semasa pasaran yang bergolak dan pembalikan trend, dan kesan penting tetapan parameter pada prestasi strategi. Dalam aplikasi praktikal, strategi dapat ditingkatkan dengan menambahkan penapis trend, mengoptimumkan kerugian berhenti, dan menggabungkan modul ukuran kedudukan untuk meningkatkan kestabilan dan keuntungan. Pada masa yang sama, penting untuk mengawal frekuensi perdagangan dan kos strategi, dan menyesuaikan parameter secara fleksibel berdasarkan ciri pasaran dan pilihan risiko peribadi.
/*backtest start: 2023-03-16 00:00:00 end: 2024-03-21 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Stock Trend USE THIS", overlay = true) donLength = input(100, minval=1) //Donchian Long donLower = lowest(donLength) donUpper = highest(donLength) donBasis = avg(donUpper,donLower) // ATRSL SC = close // Slow Trail // AP2 = input(10, title="Slow ATR period") // ATR Period AF2 = input(3, title="Slow ATR multiplier") // ATR Factor SL2 = AF2 * atr(AP2) // Stop Loss Trail2 = 0.0 iff_3 = SC > nz(Trail2[1], 0) ? SC - SL2 : SC + SL2 iff_4 = SC < nz(Trail2[1], 0) and SC[1] < nz(Trail2[1], 0) ? min(nz(Trail2[1], 0), SC + SL2) : iff_3 Trail2 := SC > nz(Trail2[1], 0) and SC[1] > nz(Trail2[1], 0) ? max(nz(Trail2[1], 0), SC - SL2) : iff_4 // Long and Short Conditions longCondition = (crossover(close,donUpper[1])) // Close Conditions closeLongCondition = crossunder(close,Trail2) // Strategy logic if (longCondition) strategy.entry("Long", strategy.long) alert("Open Long position") if (closeLongCondition) strategy.close("Long") alert("Close Long position") // Plot Donchian l = plot(donLower, color=color.blue) u = plot(donUpper, color=color.blue) plot(donBasis, color=color.orange) fill(u, l, color=color.blue) plot(Trail2, color=color.blue, title="ATRSL Trail")