Strategi Penembusan Saluran Donchian

Penulis:ChaoZhang, Tanggal: 2024-02-26 14:55:04
Tag:

img

Gambaran umum

Strategi Breakout saluran Donchian adalah strategi trend-mengikuti berdasarkan saluran harga.

Logika Strategi

Strategi ini pertama-tama menghitung rata-rata pergerakan harga tertinggi, terendah terendah, dan garis tengah selama periode tertentu. Band atas dan bawah membentuk saluran harga, sementara garis tengah berada di tengah saluran. Ketika harga melanggar di atas garis tengah, itu menandakan tren naik dan pergi panjang. Ketika harga melanggar di bawah garis tengah, itu menandakan tren turun dan pergi pendek.

Secara khusus, strategi ini beroperasi dalam langkah-langkah berikut:

  1. Menghitung 20 periode tertinggi tertinggi, yaitu dcUpper;
  2. Menghitung 20 periode terendah terendah, yaitu dcLower;
  3. Menghitung rata-rata dcUpper dan dcLower untuk mendapatkan dcAverage, sebagai garis tengah saluran;
  4. Plot dcUpper, dcLower, dan dcAverage untuk membentuk Saluran Donchian;
  5. Pergi panjang ketika close berada di atas garis tengah dcAverage, dan pergi pendek ketika close berada di bawah dcAverage;
  6. Aturan keluar: jika close berada di bawah band bawah dcLower jika long, close posisi long; jika close berada di atas garis tengah dcAverage jika short, close posisi short.

Logika di atas menggambarkan prinsip dasar perdagangan strategi - menangkap tren dengan price breakout dan beralih arah pada titik pivot.

Analisis Keuntungan

Strategi ini memiliki keuntungan berikut:

  1. Dasar teoritis yang kuat - menggunakan saluran harga untuk menentukan tren adalah pendekatan analisis teknis yang terbukti;
  2. Logika yang sederhana dan jelas, mudah dimengerti dan diterapkan;
  3. Sistem berbasis breakout dengan banyak peluang mengikuti tren, strategi perdagangan kuantitatif yang sesuai;
  4. Mekanisme stop loss yang jelas untuk membatasi kerugian perdagangan tunggal;
  5. Fleksibilitas - parameter dapat disesuaikan untuk lingkungan pasar yang berbeda.

Analisis Risiko

Ada juga beberapa risiko:

  1. Frekuensi perdagangan yang tinggi mengarah pada biaya dan slippage yang lebih tinggi;
  2. Penempatan stop loss yang tidak benar menyebabkan over-stop loss;
  3. Parameter yang tidak tepat menyebabkan sinyal hilang atau salah;
  4. Kegagalan terlambat dari tren akan mengakibatkan kerugian.

Solusi:

  1. Mengoptimalkan parameter dan mengontrol frekuensi perdagangan;
  2. Meningkatkan logika stop loss untuk mencegah over-stop loss;
  3. Uji di lingkungan yang berbeda dan sesuaikan parameter;
  4. Tambahkan filter untuk menghindari kegagalan tren terlambat.

Arahan Optimasi

Strategi ini dapat dioptimalkan lebih lanjut dalam aspek berikut:

  1. Tambahkan metrik struktur pasar untuk menghindari perdagangan terhadap tren utama;
  2. Meningkatkan penyaringan sinyal untuk memastikan validitas breakout dan mengurangi sinyal palsu;
  3. Menggabungkan metrik volatilitas untuk mengukur intensitas breakout;
  4. Menerapkan analisis multi-frame waktu atau multi-aset untuk meningkatkan ketahanan;
  5. Menggunakan pembelajaran mesin untuk menyesuaikan otomatis parameter yang beradaptasi dengan perubahan pasar.

Kesimpulan

Kesimpulannya, strategi breakout saluran Donchian adalah sistem trend-mengikuti yang efektif, dengan dasar teoritis yang kuat, logika sederhana, dan kemampuan untuk menunggang tren melalui breakout. Sementara itu, risiko yang melekat dari sistem breakout tersebut membutuhkan penyesuaian parameter dan penyaringan sinyal. Dengan penelitian dan optimalisasi lebih lanjut, strategi Donchian dapat menjadi lebih kuat dan praktis untuk pedagang kuantitatif.


/*backtest
start: 2024-01-26 00:00:00
end: 2024-02-25 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3

strategy(title = "dc", overlay = true)


testStartYear = input(2018, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testEndYear = input(2018, "Backtest Start Year")
testEndMonth = input(12)
testEndDay = input(31, "Backtest Start Day")
testPeriodEnd = timestamp(testStartYear,testStartMonth,testStartDay,0,0)


testPeriod() =>
    true
    //time >= testPeriodStart  ? true : false

dcPeriod = input(20, "Period")

dcUpper = highest(close, dcPeriod)[1]
dcLower = lowest(close, dcPeriod)[1]
dcAverage = (dcUpper + dcLower) / 2

plot(dcLower, style=line, linewidth=3, color=red, offset=1)
plot(dcUpper, style=line, linewidth=3, color=aqua, offset=1)

plot(dcAverage, color=black, style=line, linewidth=3, title="Mid-Line Average")

strategy.entry("simpleBuy", strategy.long, when=close > dcAverage)
strategy.close("simpleBuy",when=close < dcLower)
    
strategy.entry("simpleSell", strategy.short,when=close < dcAverage)
strategy.close("simpleSell",when=close > dcAverage)
    



Lebih banyak