
Strategi pengesanan trend saluran Dongxian adalah strategi pengesanan trend berdasarkan indikator saluran Dongxian. Strategi ini menggunakan pengiraan harga tertinggi dan terendah untuk tempoh yang berbeza, membentuk lintasan atas, bawah, dan tengah, untuk menentukan arah trend pasaran, dan melakukan perdagangan yang mengikuti trend.
Strategi ini mula-mula menetapkan jangka masa pengembalian, dan kemudian menentukan peraturan untuk membuka kedudukan berbilang dan kosong.
Bagi mata wang berganda, apabila harga naik melalui laluan Dongxian, mata wang berganda dibuka; apabila harga turun, mata wang berganda ditutup.
Untuk kedudukan kosong, kedudukan kosong dibuka apabila harga di bawah melintasi laluan bawah Dongxian; kedudukan kosong diratakan apabila harga di atas melintasi laluan atas.
Strategi ini juga memperkenalkan penunjuk ATR untuk menetapkan mekanisme berhenti rugi. Nilai ATR digandakan dengan faktor sebagai titik berhenti rugi.
Khususnya, hentian bertopeng adalah harga pembukaan kurang nilai hentian ATR; hentian kosong adalah harga pembukaan ditambah nilai hentian ATR.
Strategi ini juga memetakan laluan atas dan bawah saluran Dongxian, serta garis henti rugi ATR, untuk membentuk sistem perdagangan yang lengkap.
Menggunakan saluran Tongxian untuk menentukan arah trend, mempunyai keupayaan untuk mengesan trend.
Parameter Smoother saluran Dongxian boleh disesuaikan, dengan optimasi parameter untuk mencari kombinasi parameter terbaik.
Kaedah ini boleh dikendalikan dengan berkesan dengan menggunakan mekanisme penyetempatan stop loss yang digabungkan dengan ATR.
Peraturan-peraturan untuk berdagang dengan mata wang kosong adalah jelas dan mudah difahami, sesuai untuk pembelajaran pemula.
Kodnya jelas, mudah difahami dan boleh digunakan semula.
Terdapat risiko perdagangan yang salah untuk turun naik harga dalam jangkauan pengumpulan.
Setting yang salah pada ATR Stop Loss Range boleh menyebabkan Stop Loss terlalu luas atau terlalu sensitif.
Kedudukan kosong berganda mungkin terlalu tertumpu dan perlu menetapkan peraturan pengurusan kedudukan.
Perlu disahkan kelayakan untuk varieti yang diperdagangkan, parameter untuk varieti yang berbeza perlu dioptimumkan secara bebas.
Ia juga perlu dipertimbangkan untuk kos urus niaga, yang perlu disesuaikan dengan kos yang tinggi.
Mengoptimumkan parameter kitaran laluan untuk saluran Dongxian, mencari kombinasi parameter terbaik.
Cuba seting ATR yang berbeza untuk mencari tahap kerosakan yang terbaik.
Cuba untuk mengunci keuntungan dengan memperkenalkan stop loss bergerak berdasarkan ATR.
Sesuai dengan keadaan pasaran, sesuaikan perkadaran kedudukan kosong.
Uji kekuatan parameter pelbagai jenis, cari kombinasi parameter umum.
Penyelidikan akan memperkenalkan penapis seperti indikator garpu suara untuk meningkatkan kestabilan strategi.
Kesesuaian dengan parameter ujian persekitaran kos transaksi yang berbeza.
Secara keseluruhannya, strategi ini adalah strategi trend yang lebih mudah, yang berpusat pada penggunaan saluran Dongguan. Keunggulan strategi ini adalah mudah difahami, sesuai untuk pembelajaran, tetapi masih perlu dioptimumkan untuk parameter dan risiko.
/*backtest
start: 2022-10-30 00:00:00
end: 2023-11-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © kriswaters
//@version=4
strategy("Donchian Channels Strategy by KrisWaters", overlay=true )
// Date filter
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromYear = input(defval = 2017, title = "From Year", minval = 1900)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToYear = input(defval = 9999, title = "To Year", minval = 2017)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => true // create function "within window of time"
// Strategy Settings
canEnterLong = input(true, title="Can Enter Long Position")
canEnterShort = input(false, title="Can Enter Short Position")
showLongChannel = input(true, title="Show Donchian Long Channels")
showShortChannel = input(false , title="Show Donchian Short Channels")
useAtrAsStopRule = input(false, title="Enable ATR Stop Rule")
// DonCcian Channel Lengths
longUpperLength = input(20, minval=1)
longLowerLength = input(10, minval=1)
shortUpperLength = input(10, minval=1)
shortLowerLength = input(20, minval=1)
// Donchian indicator calculations
longUpperValue = highest(high,longUpperLength)
longLowerValue = lowest(low,longLowerLength)
shortUpperValue = highest(high,shortUpperLength)
shortLowerValue = lowest(low,shortLowerLength)
// Plot Donchian Channels
uLong = plot(showLongChannel ? longUpperValue : na, color=color.green, offset=1)
lLong = plot(showLongChannel ? longLowerValue : na, color=color.green, offset=1)
uShort = plot(showShortChannel ? shortUpperValue : na, color=color.red, offset=1)
lShort = plot(showShortChannel ? shortLowerValue : na, color=color.red, offset=1)
// Styling
fill(uLong,lLong, color=color.green, transp=95, title="Long Arkaplan")
fill(uShort,lShort, color=color.red, transp=95, title="Short Arkaplan")
// Stop-loss value calculations
atrMultiplier = 2.0
atrValue = atr(20)
longStopValue = open - (atrMultiplier*atrValue)
shortStopValue = open + (atrMultiplier*atrValue)
// Plot stop-loss line
plot(useAtrAsStopRule ? longStopValue : na, color=color.red, linewidth=2, offset=1)
plot(useAtrAsStopRule ? shortStopValue : na, color=color.red, linewidth=2, offset=1)
// Long and Short Position Rules
if canEnterLong and na(longUpperValue) != true and na(longLowerValue) != true and window()
strategy.entry("Long", true, stop=longUpperValue)
strategy.exit("Long Exit", "Long", stop=useAtrAsStopRule ? max(longLowerValue,longStopValue) : longLowerValue)
if canEnterShort and na(shortUpperValue) != true and na(shortLowerValue) != true and window()
strategy.entry("Short", false, stop=shortLowerValue)
strategy.exit("Short Exit", "Short", stop=useAtrAsStopRule ? min(shortUpperValue,shortStopValue) : shortUpperValue)