Sumber dimuat naik... memuat...

Saluran Donchian dinamik dan gabungan purata bergerak sederhana Strategi kuantitatif

Penulis:ChaoZhang, Tarikh: 2024-06-17 17:29:48
Tag:SMA

img

Ringkasan

Strategi ini menggabungkan dua penunjuk teknikal: Saluran Donchian dan Purata Bergerak Sederhana (SMA). Ia membuka kedudukan panjang apabila harga memecahkan di bawah jalur bawah Saluran Donchian dan ditutup di atas SMA. Sebaliknya, ia membuka kedudukan pendek apabila harga memecahkan di atas jalur atas Saluran Donchian dan ditutup di bawah SMA. Posisi panjang ditutup apabila harga mencapai jalur atas Saluran Donchian, sementara kedudukan pendek ditutup apabila harga mencapai jalur bawah. Strategi ini sesuai untuk pasaran dengan trend yang kuat.

Prinsip Strategi

  1. Hitung jalur atas dan bawah Saluran Donchian. jalur atas adalah tertinggi tertinggi selama n tempoh terakhir, dan jalur bawah adalah terendah terendah selama n tempoh terakhir.
  2. Mengira purata bergerak mudah. SMA adalah purata aritmetik harga penutupan dalam tempoh m yang lalu.
  3. Masuk panjang: Buka kedudukan panjang apabila harga berada di bawah jalur bawah Saluran Donchian dan harga penutupan berada di atas SMA.
  4. Masuk pendek: Buka kedudukan pendek apabila harga berada di atas jalur atas Saluran Donchian dan harga penutupan berada di bawah SMA.
  5. Keluar panjang: Tutup kedudukan panjang apabila harga mencapai jalur atas Saluran Donchian.
  6. Keluar pendek: Tutup kedudukan pendek apabila harga mencapai jalur bawah Saluran Donchian.

Kelebihan Strategi

  1. Menggabungkan dua elemen pasaran: trend dan turun naik. SMA menangkap trend, manakala Saluran Donchian menangkap turun naik, membolehkan strategi untuk merebut peluang mundur di pasaran trend.
  2. Syarat mengambil keuntungan yang jelas membantu mengunci keuntungan dengan cara yang tepat pada masanya. Posisi panjang dan pendek ditutup apabila harga mencapai jalur atas dan bawah Saluran Donchian, masing-masing, yang membolehkan strategi keluar dari perdagangan yang menguntungkan sebelum trend berbalik.
  3. Strategi ini hanya mempunyai tiga parameter: tempoh Saluran Donchian, offset, dan tempoh SMA, yang memudahkan pengoptimuman.

Risiko Strategi

  1. Perdagangan kerap. Strategi ini mempunyai kekerapan masuk dan keluar kedudukan yang tinggi, yang boleh mengikis pulangan di pasaran dengan kos perdagangan yang tinggi. Ini boleh dikurangkan dengan mengurangkan syarat kemasukan atau meningkatkan jangka masa.
  2. Prestasi yang lemah di pasaran jangkauan. Strategi boleh mengalami lebih banyak kerugian apabila trend tidak jelas. Penunjuk turun naik boleh digunakan untuk mengenal pasti pasaran jangkauan dan menangguhkan strategi.
  3. Kestabilan parameter yang tidak mencukupi. Parameter optimum mungkin berbeza-beza secara ketara di instrument dan jangka masa yang berbeza, menunjukkan kestabilan parameter yang lemah. Prestasi langsung mungkin tidak sesuai dengan backtest. Ujian luar sampel dan analisis kepekaan yang luas diperlukan untuk mengesahkan ketahanan parameter.

Arahan Pengoptimuman Strategi

  1. Tambah syarat kemasukan pilihan digabungkan dengan penunjuk lain. Sebagai contoh, memerlukan ADX DMI berada di atas ambang tertentu untuk kemasukan, atau hanya masuk panjang apabila RSI meninggalkan zon oversold. Ini boleh meningkatkan kadar kemenangan kemasukan.
  2. Menggunakan garis mengambil keuntungan dinamik dan bukannya garis Saluran Donchian tetap untuk mencapai fungsi pengangkutan keuntungan. Sebagai contoh, selepas harga mencapai jalur atas Saluran Donchian untuk kedudukan panjang, beralih ke penutupan kedudukan di garis stop-loss ATR atau garis stop-loss SAR.
  3. Sesuaikan secara dinamik tempoh Saluran Donchian berdasarkan tahap turun naik. Memendekkan tempoh Saluran Donchian dalam keadaan pasaran turun naik yang tinggi dan memanjangkan tempoh dalam keadaan pasaran turun naik yang rendah. Ini membantu menyesuaikan diri dengan pasaran yang berbeza.

Ringkasan

Strategi gabungan Saluran Donchian Dinamik dan Purata Bergerak Sederhana adalah rangka kerja strategi perdagangan kuantitatif yang mudah dan mudah digunakan. Ia membina logik masuk dan keluar dari perspektif mengikuti trend dan pecah turun naik, menjadikannya sesuai untuk instrumen dengan trend yang kuat. Walau bagaimanapun, strategi ini berprestasi rendah di pasaran yang sering berkisar, dan ketahanan parameternya sederhana. Kebolehsesuaian dan ketahanan strategi dapat ditingkatkan dengan memperkenalkan syarat masuk tambahan, pengambilan keuntungan dinamik, dan mekanisme penyesuaian parameter sendiri. Secara keseluruhan, strategi ini boleh berfungsi sebagai strategi rangka kerja asas yang akan diubahsuai dan diperbaiki untuk membuat strategi kuantitatif yang lebih maju.


/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("FBK Donchian Channel Strategy", overlay=true)

// Inputs
donchian_period = input.int(20, title="Donchian Channel Period")
donchian_offset = input.int(1, title="Donchian Channel Offset")
sma_period = input.int(200, title="SMA Period")
start_date = input(timestamp("2023-01-01 00:00 +0000"), title="Start Date")
end_date = input(timestamp("2023-12-31 23:59 +0000"), title="End Date")
trade_type = input.string("Both", title="Trade Type", options=["Buy Only", "Sell Only", "Both"])

// Calculate indicators
donchian_upper = ta.highest(high, donchian_period)[donchian_offset]
donchian_lower = ta.lowest(low, donchian_period)[donchian_offset]
sma = ta.sma(close, sma_period)

// Plot indicators
plot(donchian_upper, color=color.red, title="Donchian Upper")
plot(donchian_lower, color=color.green, title="Donchian Lower")
plot(sma, color=color.blue, title="SMA")

// Helper function to check if within testing period
is_in_testing_period() => true

// Entry conditions
long_condition = low <= donchian_lower and close > sma
short_condition = high >= donchian_upper and close < sma

// Exit conditions
exit_long_condition = high >= donchian_upper
exit_short_condition = low <= donchian_lower

// Open long position
if (is_in_testing_period() and (trade_type == "Buy Only" or trade_type == "Both") and long_condition)
    strategy.entry("Long", strategy.long)

// Close long position
if (is_in_testing_period() and exit_long_condition)
    strategy.close("Long")

// Open short position
if (is_in_testing_period() and (trade_type == "Sell Only" or trade_type == "Both") and short_condition)
    strategy.entry("Short", strategy.short)

// Close short position
if (is_in_testing_period() and exit_short_condition)
    strategy.close("Short")

// Close all positions at the end of the testing period
if not is_in_testing_period()
    strategy.close_all()


Berkaitan

Lebih lanjut