
Strategi penembusan saluran Tongxian adalah strategi perdagangan kuantitatif yang mengikuti trend. Strategi ini menggunakan saluran Tongxian untuk menangkap trend pasaran, sambil menggunakan ATRSL untuk mengawal risiko. Strategi ini membuka lebih banyak kedudukan apabila harga menembusi saluran Tongxian; strategi ini melonggarkan kedudukan apabila harga jatuh di bawah ATRSL.
donLengthParameter dikira laludonLengthHarga tertinggi dan harga terendah bagi satu kitaran, masing-masing sebagai laluan untuk laluan DongxiandonUpperdan bawah landasandonLower, saluran tengahdonBasisSebagai purata naik turun keretapi.AP2 danAF2Parameter mengira nilai ATRSL2Kemudian berdasarkan harga penutupan semasa.SCDan sebelum itu, ia bergerak pada harga stop loss.Trail2[1]Hubungan, dinamika penyesuaian harga henti bergerakTrail2。donLength、AP2 danAF2Parameter dan lain-lain untuk mengoptimumkan prestasi strategi.Strategi penembusan saluran Dongguan adalah strategi penjejakan trend klasik, menangkap trend melalui saluran Dongguan, dan menggunakan risiko kawalan hentian bergerak ATRSL. Kelebihan strategi ini adalah logiknya mudah dan jelas, mudah dilaksanakan dan dioptimumkan; Kelemahannya adalah prestasi yang buruk ketika pasaran bergolak dan trend berbalik, dan parameter yang ditetapkan mempengaruhi prestasi strategi. Dalam aplikasi sebenar, modul seperti penapis trend, pengoptimuman hentian dan pengurusan kedudukan boleh ditambah pada asas strategi asli, meningkatkan kestabilan dan keuntungan.
/*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")