Strategi Mengikuti Tren Saluran Donchian


Tanggal Pembuatan: 2023-11-06 15:52:56 Akhirnya memodifikasi: 2023-11-06 15:52:56
menyalin: 0 Jumlah klik: 801
1
fokus pada
1617
Pengikut

Strategi Mengikuti Tren Saluran Donchian

Ringkasan

Strategi pelacakan tren saluran Dongxian adalah strategi pelacakan tren berdasarkan indikator saluran Dongxian. Strategi ini dibentuk dengan menghitung harga tertinggi dan terendah dari berbagai siklus, membentuk lintasan atas, bawah, dan tengah, untuk menilai arah tren pasar, dan melakukan perdagangan pelacakan tren.

Prinsip Strategi

Strategi ini pertama-tama menetapkan jangka waktu yang diperhitungkan, dan kemudian mendefinisikan aturan untuk membuka posisi multihead dan kosong.

Untuk multihead, ketika harga naik melewati jalur Dongxian, melakukan posisi terbuka multihead; ketika harga turun melewati jalur bawah, melakukan posisi terbuka multihead.

Untuk posisi kosong, buka posisi kosong ketika harga di bawah melewati rel bawah dari saluran Dongxian; buka posisi kosong ketika harga di atas melewati rel atas.

Strategi ini juga memperkenalkan indikator ATR untuk mengatur mekanisme stop loss exit. Nilai ATR dikalikan dengan faktor sebagai stop loss.

Secara khusus, stop loss multipel adalah harga awal posisi dikurangi dengan stop loss ATR; stop loss kosong adalah harga awal posisi ditambah dengan stop loss ATR.

Strategi ini juga memetakan jalur atas dan bawah dari saluran Dongxian, serta jalur stop loss ATR, untuk membentuk sistem perdagangan yang lengkap.

Keunggulan Strategis

  • Menggunakan saluran Tongxian untuk menentukan arah tren, memiliki kemampuan untuk melacak tren tertentu.

  • Parameter Smoother saluran Dongjian dapat disesuaikan, dapat dioptimalkan untuk mencari kombinasi parameter optimal.

  • Dengan adanya mekanisme pengaturan stop loss dari indikator ATR, risiko dapat dikendalikan secara efektif.

  • Peraturan perdagangan multihead jelas dan mudah dimengerti, cocok untuk pemula.

  • Struktur kodenya jelas, mudah dipahami dan dikembangkan kembali.

Risiko Strategis

  • Dalam hal ini, ada risiko perdagangan yang salah dalam hal pergerakan harga dalam jangkauan konsolidasi.

  • ATR stop loss range yang tidak tepat dapat menyebabkan stop loss yang terlalu luas atau terlalu sensitif.

  • Posisi multi-head kosong mungkin terlalu terpusat, dan aturan manajemen posisi harus ditetapkan.

  • Validasi untuk kesesuaian varietas yang diperdagangkan diperlukan, dan parameter untuk varietas yang berbeda harus dioptimalkan secara independen.

  • Biaya transaksi juga perlu diperhitungkan dan perlu disesuaikan dengan lingkungan biaya yang tinggi.

Arah optimasi strategi

  • Mengoptimalkan parameter siklus saluran untuk saluran Dongxian, mencari kombinasi parameter optimal.

  • Cobalah berbagai pengaturan ATR untuk menemukan batas kerusakan yang optimal.

  • Cobalah untuk mengunci keuntungan dengan menggunakan stop loss bergerak berdasarkan ATR.

  • Sesuai dengan kondisi pasar, perbandingan posisi kosong ganda disesuaikan.

  • Uji kekuatan parameter dari berbagai varietas, mencari kombinasi parameter umum.

  • Penelitian ini melibatkan filter seperti indikator forks untuk meningkatkan stabilitas strategi.

  • Adaptasi terhadap parameter pengujian lingkungan biaya transaksi yang berbeda.

Meringkaskan

Secara keseluruhan, strategi ini adalah strategi pelacakan tren yang relatif sederhana, yang berpusat pada penerapan saluran Dongguan. Keunggulan strategi ini adalah mudah dipahami, cocok untuk dipelajari, tetapi masih perlu dioptimalkan untuk parameter dan risiko. Dengan berbagai macam metode pengoptimalan, diharapkan untuk meningkatkan stabilitas dan profitabilitas strategi.

Kode Sumber Strategi
/*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)