Strategi mengikut aliran berdasarkan pecahan dan penapisan kekerapan (panjang sahaja)

EMA AO
Tarikh penciptaan: 2024-05-28 14:00:24 Akhirnya diubah suai: 2024-05-28 14:00:24
Salin: 0 Bilangan klik: 501
1
fokus pada
1617
Pengikut

Strategi mengikut aliran berdasarkan pecahan dan penapisan kekerapan (panjang sahaja)

Gambaran keseluruhan

Strategi ini adalah strategi pengesanan trend berdasarkan penembusan dan penyaringan frekuensi, hanya melakukan perdagangan berbilang mata. Idea utama strategi ini adalah menggunakan indikator EMA untuk menentukan arah trend semasa, menghasilkan banyak isyarat apabila harga melampaui harga tertinggi dalam julat tertentu, dan menggunakan penyaring frekuensi untuk mengawal frekuensi perdagangan, untuk mengelakkan terlalu kerap membuka kedudukan.

Prinsip Strategi

  1. Mengira EMA untuk menentukan arah trend semasa. Apabila harga penutupan berada di atas EMA, trend semasa dianggap berlainan arah.
  2. Hitung harga tertinggi dalam julat tertentu, sebagai syarat penembusan. Apabila harga penutupan menembusi harga tertinggi dalam tempoh pengembalian terpendek atau tempoh pengembalian terpanjang, dan trend semasa adalah pelbagai, menghasilkan isyarat melakukan banyak.
  3. Memperkenalkan penapis frekuensi untuk mengawal selang masa minimum untuk membuka kedudukan berturut-turut, untuk mengelakkan frekuensi dagangan yang terlalu tinggi.
  4. Tetapkan titik hentian, tutup kedudukan apabila harga jatuh di bawah harga hentian, mengawal risiko.
  5. Definisi isyarat berakhirnya trend, apabila harga penutupan jatuh di bawah EMA, dianggap berakhirnya trend, pada masa ini jika memegang lebih banyak pesanan, ia akan ditutup.

Kelebihan Strategik

  1. Pengesanan Trend: Mengesan arah trend melalui indikator EMA, dan berdagang mengikut trend, membantu meningkatkan keuntungan strategi.
  2. Pengesahan terobosan: menggunakan terobosan harga sebagai isyarat masuk, untuk memasuki lebih banyak ruang keuntungan pada awal trend.
  3. Kawalan frekuensi: memperkenalkan penapis frekuensi, mengawal selang masa untuk membuka kedudukan berturut-turut, mengelakkan perdagangan yang terlalu kerap, mengurangkan kos dan risiko perdagangan.
  4. Perlindungan Hentikan Kerosakan: Tetapkan titik hentikan, hentikan pada masa yang tepat apabila harga bertukar turun naik mencapai tahap tertentu, dan mengawal risiko penurunan secara berkesan.
  5. Pelancaran dinamik: Pelancaran dinamik mengikut isyarat penutupan trend, dapat mengunci keuntungan yang telah ada pada masa yang tepat, untuk mengelakkan kerugian yang disebabkan oleh pembalikan trend.

Risiko Strategik

  1. Sensitiviti parameter: Prestasi strategi lebih sensitif terhadap pilihan parameter, dan pengaturan parameter yang berbeza boleh menyebabkan perbezaan besar dalam prestasi strategi. Perlu melakukan pengukuran dan pengoptimuman parameter yang mencukupi.
  2. Penembusan gagal: Penembusan harga tidak menjamin bahawa trend akan berterusan, kemungkinan berlaku kegagalan penembusan, yang menyebabkan strategi mengalami kerugian berturut-turut.
  3. Pengesanan trend: Strategi bergantung kepada indikator EMA untuk menilai trend, tetapi indikator EMA mungkin terlewat atau salah, yang mempengaruhi ketepatan strategi.
  4. Perdagangan yang kerap: Walaupun strategi memperkenalkan penapis frekuensi, ia mungkin berlaku apabila pasaran bergelombang, yang meningkatkan kos perdagangan.
  5. Risiko Hentikan Kerosakan: Tetapan titik hentikan mungkin tidak dapat sepenuhnya mengelakkan pengunduran maksimum strategi, dan dalam keadaan yang melampau, kerugian yang lebih besar masih mungkin berlaku.

Arah pengoptimuman strategi

  1. Optimasi parameter: Optimasi parameter utama strategi seperti panjang EMA, panjang tempoh pengulangan, peratusan hentian, dan lain-lain untuk mencari kombinasi parameter terbaik untuk meningkatkan kestabilan dan keuntungan strategi.
  2. Penapisan isyarat: Selepas isyarat terobosan dihasilkan, petunjuk atau syarat teknikal lain boleh diperkenalkan untuk pengesahan kedua isyarat, meningkatkan kualiti isyarat, mengurangkan kesalahan penilaian dan isyarat palsu.
  3. Penghakiman trend: Anda boleh cuba menggunakan indikator penghakiman trend lain seperti MACD, DMI, dan lain-lain, atau menggabungkan beberapa indikator untuk menilai trend bersama, meningkatkan ketepatan pengenalan trend.
  4. Hentian dinamik: menyesuaikan titik hentian secara dinamik mengikut turun naik pasaran, misalnya dengan menggunakan indikator ATR untuk mengira harga hentian dinamik, atau memperkenalkan strategi hentian pengesanan untuk mengawal risiko dengan lebih baik.
  5. Pengurusan kedudukan: Optimumkan strategi pengurusan kedudukan, sesuaikan saiz kedudukan secara dinamik mengikut turun naik pasaran dan keadaan dana akaun, kawal pintu risiko perdagangan tunggal, dan meningkatkan kecekapan penggunaan dana.

ringkaskan

Strategi ini adalah strategi pemantauan trend berdasarkan penembusan dan penyaringan frekuensi, menilai arah trend melalui indikator EMA, menggunakan penembusan harga sebagai isyarat masuk, dan memperkenalkan penyaringan frekuensi untuk mengawal frekuensi perdagangan, dan menetapkan risiko kawalan titik henti. Kelebihan strategi ini terletak pada trend pemantauan, penembusan pengesahan, kawalan frekuensi, perlindungan henti dan kedudukan sejajar dinamik, tetapi terdapat juga risiko yang berpotensi seperti sensitiviti parameter, penembusan kegagalan, pengenalan trend kegagalan, perdagangan yang kerap dan risiko henti.

Kod sumber 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)