
Strategi penembusan saluran tangkian adalah strategi perdagangan kuantitatif yang mengikuti tren. Strategi ini menggunakan saluran tangkian untuk menangkap tren pasar, sekaligus menggunakan ATRSL untuk mengendalikan risiko. Strategi ini membuka posisi lebih banyak ketika harga menembus saluran tangkian; Strategi ini melangsungkan posisi ketika harga jatuh di bawah ATRSL.
donLengthParameter yang dihitung sebelumnyadonLengthHarga tertinggi dan harga terendah dalam satu siklus, masing-masing sebagai rel kereta api di Jalur DongxiandonUpperDan di bawah reldonLower, saluran tengahdonBasisSebagai rata-rata naik turun.AP2 Dan AF2Parameter untuk menghitung nilai ATRSL2Kemudian berdasarkan harga penutupan saat ini.SCDan sebelumnya bergerak stop loss.Trail2[1]Hubungan, dinamika penyesuaian harga stop loss bergerakTrail2。donLength、AP2 Dan AF2Parameter lain, optimasi kinerja strategi.Strategi penembusan saluran Dongguan adalah strategi pelacakan tren klasik, menangkap tren melalui saluran Dongguan, dan menggunakan ATRSL untuk mengontrol risiko stop loss. Keuntungan dari strategi ini adalah logika yang sederhana dan jelas, mudah diimplementasikan dan dioptimalkan; Kelemahannya adalah kinerja yang buruk pada saat pasar bergolak dan trend reversal, dan pengaturan parameter memiliki pengaruh besar pada kinerja strategi. Dalam aplikasi nyata, modul seperti penyaringan tren, pengoptimalan stop loss dan manajemen posisi dapat ditambahkan pada dasar strategi asli, meningkatkan stabilitas dan keuntungan strategi.
/*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")