Strategi Breakout Saluran Donchian adalah strategi perdagangan kuantitatif yang mengikuti tren. Strategi ini menggunakan Saluran Donchian untuk menangkap tren pasar sambil menggunakan ATRSL trailing stop untuk mengelola risiko. Ketika harga melanggar band atas Saluran Donchian, strategi memasuki posisi panjang; ketika harga jatuh di bawah garis ATRSL trailing stop, strategi menutup posisi.
donLength
parameter, menghitung tertinggi tertinggi dan terendah terendah dari masa laludonLength
periode sebagai band atasdonUpper
dan band bawahdonLower
dari Saluran Donchian, masing-masingdonBasis
adalah rata-rata dari band atas dan bawah.AP2
danAF2
parameter, menghitung nilai ATRSL2
. Kemudian, secara dinamis menyesuaikan harga stop trailingTrail2
menurut hubungan antara harga penutupan saat iniSC
dan harga trailing stop sebelumnyaTrail2[1]
.donLength
, AP2
, danAF2
sesuai dengan kebutuhan mereka untuk mengoptimalkan kinerja strategi.Strategi Breakout Saluran Donchian adalah strategi trend-mengikuti klasik yang menangkap tren menggunakan Saluran Donchian dan mengelola risiko dengan trailing stop ATRSL. Keuntungan strategi ini termasuk logika yang sederhana dan jelas, kemudahan implementasi, dan potensi untuk optimasi. Namun, kekurangannya termasuk kinerja yang buruk selama pasar bergolak dan pembalikan tren, dan dampak signifikan dari pengaturan parameter pada kinerja strategi. Dalam aplikasi praktis, strategi dapat ditingkatkan dengan menambahkan filter tren, mengoptimalkan stop loss, dan menggabungkan modul ukuran posisi untuk meningkatkan stabilitas dan profitabilitas. Pada saat yang sama, penting untuk mengontrol frekuensi perdagangan dan biaya strategi, dan menyesuaikan parameter secara fleksibel berdasarkan karakteristik pasar dan preferensi risiko pribadi.
/*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")