Strategi perdagangan kuantitatif Donchian berdasarkan terobosan saluran harga


Tanggal Pembuatan: 2023-12-08 11:00:05 Akhirnya memodifikasi: 2023-12-08 11:00:05
menyalin: 0 Jumlah klik: 655
1
fokus pada
1621
Pengikut

Strategi perdagangan kuantitatif Donchian berdasarkan terobosan saluran harga

Ringkasan

Gagasan inti dari strategi ini adalah untuk melakukan perdagangan berdasarkan terobosan harga di saluran Dongxian, yang termasuk dalam jenis strategi kuantitatif untuk mengikuti tren. Strategi ini dapat secara otomatis mengidentifikasi saluran harga, membuka posisi tinggi ketika harga melintasi saluran, dan posisi rendah ketika harga kembali ke dekat atau titik berhenti di bawah saluran. Strategi ini dirancang untuk menangkap tren harga garis tengah dan panjang, yang berlaku untuk perdagangan derivatif keuangan seperti indeks saham.

Prinsip

Strategi ini didasarkan pada indikator saluran Dongxian, saluran Dongxian adalah area saluran yang digambar melalui harga tertinggi dan terendah dalam periode tertentu. Metode penghitungannya adalah:

Uptrend = harga tertinggi dalam hampir n siklus Jalur bawah = harga terendah dalam hampir n siklus

Ketika harga menembus tren naik dianggap memasuki tren multihead, ketika harga jatuh dari tren turun dianggap memasuki tren kosong. Strategi ini hanya mempertimbangkan situasi menembus tren naik.

Logika transaksi adalah sebagai berikut:

  1. Menggunakan harga tertinggi dalam n siklus untuk melukis jalur kereta api di Jalur Dongqian
  2. Jika Anda memiliki banyak uang, Anda akan memiliki lebih banyak uang.
  3. Stop-loss mode untuk harga close-out kembali ke dekat atau set stop loss di bawah jalur

Keunggulan

Strategi ini memiliki keuntungan sebagai berikut:

  1. Strategi yang jelas, mudah dipahami dan diterapkan
  2. Indikator Jalur Dongxian sudah matang dan dapat diandalkan, mudah untuk menilai arah tren
  3. Mengidentifikasi saluran secara otomatis, tanpa perlu mengevaluasi gerakan
  4. Parameter yang dapat dikonfigurasi, beradaptasi
  5. Mengandung mekanisme stop loss yang dapat membatasi losses

Risiko

Strategi ini juga memiliki beberapa risiko:

  1. Jembatan Dongcheng bisa pecah dan menyebabkan kerugian yang tidak perlu
  2. Pengaturan posisi stop loss yang tidak tepat dapat memperbesar losses
  3. Perhatikan risiko reversal saat mendekati jalan
  4. Pengaturan parameter yang tidak tepat akan mempengaruhi efek kebijakan

Solusi yang sesuai:

  1. Kombinasi dengan indikator lain yang disaring
  2. Optimalkan posisi stop loss, keluar dengan lancar
  3. Pertimbangkan untuk meningkatkan volume transaksi atau memperluas area stop-loss di dekat saluran
  4. Uji parameter yang berbeda untuk menemukan parameter optimal

Arah optimasi

Strategi ini juga dapat dioptimalkan dengan:

  1. Menambahkan penilaian indikator lain untuk menghindari perpecahan, seperti MACD, KD, dll.
  2. Mengoptimalkan mekanisme stop loss, seperti stop loss yang bergerak dengan fluktuasi harga
  3. Pengendalian partisipasi yang dioptimalkan, misalnya hanya bertransaksi saat volatilitas meningkat
  4. Optimalisasi parameter, mencari kombinasi parameter yang optimal

Meringkaskan

Strategi ini memiliki ide yang jelas, mudah dipahami dan diterapkan, menggunakan indikator yang sudah mapan untuk mengidentifikasi arah tren secara otomatis. Selain itu, konfigurasi yang lebih fleksibel, dapat disesuaikan sesuai dengan kebutuhan yang sebenarnya. Dengan stop loss dan optimasi parameter, efek yang lebih baik dapat dicapai.

Kode Sumber Strategi
/*backtest
start: 2022-12-07 00:00:00
end: 2023-12-07 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/
// © Giovanni_Trombetta

// Strategy to capture price channel breakouts

//@version=4
strategy("ChannelsBreakout", max_bars_back=50, overlay=true)

instrument = input(1, title = "Select 1: Stock/Forex, 2: Future")
money = input(10000, title = "Money for each trade")
backtest_start = input(2000, "Insert first year to backtest")
period = input(50, title = "Period in bars of Donchian Channel")
monetary_stoploss = input(1000, title = "Monetary Stop Loss")

quantity = if instrument != 1 
    1
else
    int(money / close)
    
upBarrier = highest(high,period)
downBarrier = lowest(low,period)
up = highest(high,period / 4)
down = lowest(low,period / 4)

plot(upBarrier, color=color.green, linewidth=2)
plot(downBarrier, color=color.red, linewidth=2)
plot(up, color=color.lime, linewidth=1)
plot(down, color=color.orange, linewidth=2)

longCondition = crossover(close, upBarrier[1]) and year >= backtest_start

if (longCondition)
    strategy.entry("Long", strategy.long, quantity, when = strategy.position_size == 0)

closeCondition = crossunder(close, down[1]) or down < down[1]

if (closeCondition)
    strategy.close("Long", comment = "Trailing")
    
stop_level = strategy.position_avg_price - monetary_stoploss / strategy.position_size
strategy.exit("StopLoss", from_entry = "Long", stop = stop_level)
plot(stop_level, color=color.yellow, linewidth=2)

// l = label.new(bar_index, na,
//   text="PineScript Code", color= color.lime, textcolor = color.white,
//   style=label.style_labelup, yloc=yloc.belowbar, size=size.normal)
// label.delete(l[1])