- Persegi
- Trend Mengikuti dengan Penapis Pecah dan Frekuensi (Hanya Panjang)
Trend Mengikuti dengan Penapis Pecah dan Frekuensi (Hanya Panjang)
Penulis:
ChaoZhang, Tarikh: 2024-05-28 14:00:24
Tag:
EMAAO
Ringkasan
Strategi ini adalah strategi mengikut trend berdasarkan penapisan pecah dan frekuensi, hanya mengambil kedudukan panjang. Idea utama strategi adalah menggunakan penunjuk EMA untuk menentukan arah trend semasa, menjana isyarat panjang apabila harga keluar dari harga tertinggi dalam julat tertentu, dan menggunakan penapis frekuensi untuk mengawal kekerapan perdagangan untuk mengelakkan membuka kedudukan terlalu kerap. Strategi ini juga menetapkan titik stop loss untuk mengawal risiko dan menutup kedudukan apabila trend berakhir.
Prinsip Strategi
- Hitung penunjuk EMA untuk menentukan arah trend semasa. Apabila harga penutupan di atas EMA, ia dianggap sebagai trend menaik.
- Hitung harga tertinggi dalam julat tertentu sebagai keadaan pecah. Apabila harga penutupan keluar dari harga tertinggi dalam tempoh penglihatan yang paling pendek atau terpanjang dan trend semasa adalah menaik, isyarat panjang dihasilkan.
- Memperkenalkan penapis kekerapan untuk mengawal masa selang minimum antara pembukaan kedudukan berturut-turut untuk mengelakkan kekerapan perdagangan yang berlebihan.
- Tetapkan titik stop loss. Apabila harga jatuh di bawah harga stop loss, tutup kedudukan untuk mengawal risiko.
- Menentukan isyarat akhir trend. Apabila harga penutupan jatuh di bawah EMA, trend dianggap telah berakhir. Jika kedudukan panjang dipegang pada masa ini, tutup kedudukan.
Kelebihan Strategi
- Mengikuti trend: Dengan menggunakan penunjuk EMA untuk menentukan arah trend dan berdagang selaras dengan trend, ia membantu meningkatkan pulangan strategi.
- Pengesahan Penembusan: Menggunakan penembusan harga sebagai isyarat kemasukan membolehkan kemasukan tepat pada masanya pada awal trend, menangkap lebih banyak potensi keuntungan.
- Kawalan kekerapan: Memperkenalkan penapis kekerapan untuk mengawal selang masa antara pembukaan kedudukan berturut-turut mengelakkan perdagangan berlebihan dan mengurangkan kos dan risiko perdagangan.
- Perlindungan Stop Loss: Menetapkan titik stop loss untuk menghentikan kerugian dengan segera apabila harga bergerak ke arah yang bertentangan dengan magnitud tertentu secara berkesan mengawal risiko penurunan.
- Penutupan kedudukan dinamik: Penutupan kedudukan secara dinamik berdasarkan isyarat akhir trend membolehkan kunci keuntungan sedia ada tepat pada masanya dan mengelakkan kerugian yang disebabkan oleh pembalikan trend.
Risiko Strategi
- Sensitiviti parameter: Prestasi strategi agak sensitif terhadap pemilihan parameter, dan tetapan parameter yang berbeza boleh menyebabkan perbezaan yang ketara dalam prestasi strategi.
- Kegagalan penembusan: Penembusan harga tidak menjamin bahawa trend itu pasti akan berterusan, dan mungkin terdapat kes kegagalan penembusan, yang mengakibatkan kerugian berturut-turut untuk strategi.
- Pengiktirafan trend: Strategi bergantung kepada penunjuk EMA untuk menilai trend, tetapi penunjuk EMA mungkin mengalami kelewatan atau penilaian yang salah, yang mempengaruhi ketepatan strategi.
- Perdagangan kerap: Walaupun strategi memperkenalkan penapis kekerapan, pembukaan dan penutupan kedudukan yang kerap masih boleh berlaku apabila turun naik pasaran tinggi, meningkatkan kos perdagangan.
- Risiko Stop Loss: Tetapan titik stop loss mungkin tidak sepenuhnya mengelakkan pengeluaran maksimum strategi, dan kerugian besar masih boleh berlaku dalam keadaan pasaran yang melampau.
Arahan Pengoptimuman Strategi
- Pengoptimuman parameter: Mengoptimumkan parameter utama strategi, seperti panjang EMA, tempoh jangka panjang, peratusan stop loss, dll., Untuk mencari kombinasi parameter yang optimum dan meningkatkan kestabilan dan keuntungan strategi.
- Penapisan isyarat: Selepas isyarat pecah dihasilkan, penunjuk atau keadaan teknikal lain boleh diperkenalkan untuk mengesahkan isyarat untuk kali kedua, meningkatkan kualiti isyarat dan mengurangkan pertimbangan yang salah dan isyarat palsu.
- Penghakiman trend: Cuba menggunakan penunjuk penilaian trend lain seperti MACD, DMI, dll., atau menggabungkan beberapa penunjuk untuk menilai trend bersama dan meningkatkan ketepatan pengenalan trend.
- Stop loss dinamik: Sesuaikan titik stop loss secara dinamik mengikut keadaan turun naik pasaran, seperti menggunakan penunjuk ATR untuk mengira harga stop loss dinamik atau memperkenalkan strategi stop loss yang berdekatan untuk mengawal risiko dengan lebih baik.
- Pengurusan kedudukan: Mengoptimumkan strategi pengurusan kedudukan, menyesuaikan saiz kedudukan secara dinamik mengikut turun naik pasaran dan keadaan modal akaun, mengawal pendedahan risiko satu transaksi, dan meningkatkan kecekapan penggunaan modal.
Ringkasan
Strategi ini adalah strategi trend berikut berdasarkan penapisan pecah dan kekerapan. Ia menggunakan penunjuk EMA untuk menentukan arah trend, menggunakan penapisan harga sebagai isyarat kemasukan, memperkenalkan penapis kekerapan untuk mengawal kekerapan perdagangan, dan menetapkan titik stop loss untuk mengawal risiko. Kelebihan strategi terletak pada trend berikut, pengesahan pecah, kawalan kekerapan, perlindungan stop loss, dan penutupan kedudukan dinamik, tetapi ia juga mempunyai risiko berpotensi seperti kepekaan parameter, kegagalan pecah, pengenalan trend, perdagangan kerap, dan risiko kehilangan berhenti. Untuk mengoptimumkan lagi strategi, kita boleh bermula dari aspek seperti pengoptimuman parameter, penapisan isyarat, penilaian trend, stop loss dinamik, dan pengurusan kedudukan untuk meningkatkan kestabilan dan keuntungan strategi.
/*backtest
start: 2023-05-22 00:00:00
end: 2024-05-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Trend Following with Breakout and Frequency Filter (Long Only)", overlay=true)
// 输入参数
emaLength = input.int(50, title="EMA长度")
lookbackPeriodMin = input.int(80, title="最短回溯期")
lookbackPeriodMax = input.int(120, title="最长回溯期")
stopLossPct = input.float(2, title="止损百分比") / 100 // 止损百分比
minHoldBars = input.int(10, title="最小持仓K线数量") // 最小持仓K线数量
// 计算EMA
ema = ta.ema(close, emaLength)
// 计算最高价和最低价
highestHigh = ta.highest(high, lookbackPeriodMax)
lowestLow = ta.lowest(low, lookbackPeriodMax)
// 定义趋势方向
isBullish = close > ema
// 定义突破信号
breakoutCondition = (ta.crossover(close, highestHigh[lookbackPeriodMin]) or ta.crossover(close, highestHigh[lookbackPeriodMax])) and isBullish
// 计算止损点
stopLossLevelLong = close * (1 - stopLossPct)
// 绘制EMA
plot(ema, title="EMA", color=color.blue)
// 记录上次开仓时间
var float lastEntryTime = na
// 策略执行并标注信号
if (breakoutCondition and (na(lastEntryTime) or (time - lastEntryTime) > minHoldBars * timeframe.multiplier))
strategy.entry("做多", strategy.long)
label.new(bar_index, high, text="买入", style=label.style_label_up, color=color.green, textcolor=color.white)
strategy.exit("止损", from_entry="做多", stop=stopLossLevelLong)
lastEntryTime := time
// 定义趋势结束信号
exitCondition = close < ema
if (exitCondition and (strategy.position_size > 0) and (time - lastEntryTime) > minHoldBars * timeframe.multiplier)
strategy.close("做多")
label.new(bar_index, low, text="卖出", style=label.style_label_down, color=color.red, textcolor=color.white)
Berkaitan
Lebih lanjut