Strategi ini disebut
Strategi ini menghitung tertinggi tertinggi dan terendah terendah selama periode tertentu di masa lalu dengan menggunakan fungsi tertinggi dan terendah untuk menentukan rel atas dan bawah saluran harga. Titik tengah saluran didefinisikan sebagai rata-rata rel atas dan bawah. Kemudian menghitung ukuran tubuh garis K dan meluruskannya menggunakan SMA untuk menentukan apakah tubuh garis K terakhir lebih besar dari setengah dari tubuh rata-rata. Ini juga menilai apakah dua garis K terakhir berada di arah yang sama (dua garis merah atau hijau berturut-turut). Ketika kondisi ini terpenuhi, ia menghasilkan sinyal beli / jual dan menutup posisi ketika harga jatuh kembali ke arah saluran.
Ini adalah strategi breakout yang menggunakan saluran harga untuk menilai tren keseluruhan.
Menggunakan saluran harga untuk menentukan arah tren secara keseluruhan dapat secara efektif menyaring kebisingan pasar.
Dua garis K berturut-turut yang menembus saluran ke arah yang sama menunjukkan momentum yang lebih kuat dan tingkat keberhasilan yang lebih tinggi.
Menghakimi tubuh K-line yang lebih besar dari setengah tubuh rata-rata dapat menghindari tertipu oleh kebocoran palsu.
Logika strategi sederhana dan mudah diterapkan.
Parameter yang dapat disesuaikan seperti periode saluran, produk perdagangan, jam perdagangan dll membuatnya sangat mudah beradaptasi.
Strategi ini juga memiliki beberapa risiko potensial:
Masih ada kemungkinan kegagalan, yang dapat menyebabkan kerugian.
Saluran harga mungkin gagal ketika pasar berfluktuasi dengan keras.
Kurangnya mekanisme stop loss gagal mengontrol kerugian secara efektif.
Aturan perdagangan yang sederhana memiliki risiko overfit.
Tidak mampu beradaptasi dengan lingkungan pasar yang lebih kompleks.
Solusi yang sesuai adalah:
Mengoptimalkan parameter untuk meningkatkan tingkat keberhasilan breakout.
Tambahkan indeks volatilitas untuk menghindari pasar bergolak.
Tambahkan mobil stop loss.
Melakukan tes kompleksitas untuk memeriksa overfitting.
Meningkatkan model pembelajaran mesin untuk meningkatkan kemampuan beradaptasi.
Arah optimasi utama adalah:
Tambahkan mekanisme stop loss untuk mengontrol risiko dengan lebih baik.
Mengoptimalkan parameter seperti periode saluran, ambang keluar dll. Temukan parameter optimal melalui algoritma genetik, pencarian grid dll.
Tambahkan kondisi penyaringan untuk meningkatkan kepastian breakout. Misalnya, menggabungkan volume perdagangan untuk mengkonfirmasi breakout.
Tambahkan model pembelajaran mesin seperti LSTM untuk meningkatkan kemampuan prediksi dan kemampuan beradaptasi dengan memanfaatkan lebih banyak data.
Melakukan optimasi portofolio, menggabungkan berbagai jenis strategi breakout untuk mencapai orthogonalitas dan mengurangi kesamaan.
Kesimpulannya, ini adalah strategi kuantitatif berdasarkan saluran harga untuk menentukan tren dan menemukan sinyal breakout. Ini memiliki keuntungan menilai tren dan mengkonfirmasi breakout, tetapi juga memiliki risiko breakout palsu tertentu. Kita dapat meningkatkan strategi dengan pengoptimalan parameter, stop loss, menambahkan filter dll untuk mengurangi risiko. Sementara itu, memperkenalkan model pembelajaran mesin dapat lebih meningkatkan kemampuan prediktif. Secara keseluruhan, ini adalah pendekatan strategi kuantitatif yang menjanjikan yang layak diteliti dan ditingkatkan.
/*backtest start: 2023-12-16 00:00:00 end: 2024-01-15 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=2 strategy(title = "Noro's Price Channel Strategy v1.0", shorttitle = "Price Channel str 1.0", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") pch = input(30, defval = 30, minval = 2, maxval = 200, title = "Price Channel") showcl = input(true, defval = true, title = "Show center-line") fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") src = close //Price channel lasthigh = highest(src, pch) lastlow = lowest(src, pch) center = (lasthigh + lastlow) / 2 col = showcl ? blue : na plot(center, color = col, linewidth = 2) //Bars bar = close > open ? 1 : close < open ? -1 : 0 rbars = sma(bar, 2) == -1 gbars = sma(bar, 2) == 1 //Signals body = abs(close - open) abody = sma(body, 10) up = rbars and close > center and body > abody / 2 dn = gbars and close < center and body > abody / 2 exit = ((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body > abody / 2 //Trading if up if strategy.position_size < 0 strategy.close_all() strategy.entry("Long", strategy.long, needlong == false ? 0 : na) if dn if strategy.position_size > 0 strategy.close_all() strategy.entry("Short", strategy.short, needshort == false ? 0 : na) if exit strategy.close_all()