Strategi dagangan terobosan saluran penjejakan aliran penunjuk teknikal berbilang dan sistem penapisan corak K-line

EMA ATR
Tarikh penciptaan: 2025-02-20 16:26:40 Akhirnya diubah suai: 2025-02-27 17:30:47
Salin: 0 Bilangan klik: 312
2
fokus pada
319
Pengikut

Strategi dagangan terobosan saluran penjejakan aliran penunjuk teknikal berbilang dan sistem penapisan corak K-line Strategi dagangan terobosan saluran penjejakan aliran penunjuk teknikal berbilang dan sistem penapisan corak K-line

Gambaran keseluruhan

Strategi ini adalah sistem perdagangan indikator teknikal multidimensi yang menggabungkan Keltner Channel, K-line morphologies dan analisis kuantiti transaksi. Strategi ini meningkatkan kebolehpercayaan isyarat perdagangan dengan memantau penembusan harga ke saluran, dan menggabungkan kuantiti transaksi dan morphologies penyaringan sebagai syarat penapisan. Sistem ini merancang mekanisme pengurusan wang yang lengkap, termasuk seting stop loss dan stop loss yang dinamik berdasarkan ATR.

Prinsip Strategi

Strategi ini dibina berdasarkan komponen teras berikut:

  1. Menggunakan 20 kitaran EMA sebagai tren tengah, digabungkan dengan 1.5 kali ATR untuk membina tren atas dan bawah, membentuk laluan Kentner
  2. Mengesan peluang perdagangan yang berpotensi dengan memantau harga penutupan yang menembusi sempadan saluran
  3. Penapisan menggunakan penunjuk jumlah transaksi yang memerlukan jumlah transaksi lebih tinggi daripada purata 20 kitaran
  4. Gabungan bullish / bearish melonjakkan bentuk sebagai isyarat pengesahan tambahan
  5. Setup menggunakan 1.5 kali ATR sebagai stop loss dan 2 kali ATR sebagai stop loss untuk mencapai nisbah keuntungan risiko kira-kira 1: 1.33

Kelebihan Strategik

  1. Memperbaiki kebolehpercayaan isyarat dagangan melalui pengesahan silang pelbagai petunjuk teknikal
  2. Keluasan saluran dinamik untuk menyesuaikan diri dengan perubahan kadar turun naik pasaran
  3. Pengesahan jumlah transaksi meningkatkan kebolehgunaan isyarat transaksi
  4. Penapisan bentuk K mengurangkan gangguan pecah palsu
  5. Pencegahan Kerosakan yang Baik untuk Keselamatan Kewangan
  6. Tanda visual membantu peniaga mengenal pasti penipuan palsu

Risiko Strategik

  1. Pasar yang bergolak mungkin menghasilkan isyarat pecah palsu yang kerap
  2. Stop loss mungkin terlalu luas apabila turun naik
  3. Keadaan penapisan berganda mungkin terlepas beberapa isyarat yang sah
  4. Kebolehpercayaan yang menurun dalam keadaan pasaran tertentu
  5. Tetapan stop loss dengan pengganda tetap mungkin tidak sesuai untuk semua keadaan pasaran

Arah pengoptimuman strategi

  1. Memperkenalkan penunjuk kekuatan trend (seperti ADX) untuk menyaring pasaran goyah
  2. Pembangunan mekanisme ATR yang beradaptasi
  3. Tambah lebih banyak pengenalan bentuk K untuk meningkatkan kualiti isyarat
  4. Pendapatan Stop Loss yang disesuaikan dengan pergerakan kadar turun naik pasaran
  5. Tambah penapis masa untuk mengelakkan dagangan pada masa yang tidak menguntungkan
  6. Membangunkan sistem klasifikasi keadaan pasaran, menggunakan parameter yang berbeza untuk pasaran yang berbeza

ringkaskan

Strategi ini membina sistem perdagangan yang agak lengkap dengan mengintegrasikan beberapa alat analisis teknikal. Kelebihannya terletak pada mekanisme pengesahan isyarat berbilang dan sistem pengurusan risiko yang baik, tetapi masih memerlukan penyesuaian yang dioptimumkan mengikut ciri-ciri pasaran tertentu.

Kod sumber strategi
/*backtest
start: 2024-06-01 00:00:00
end: 2024-12-01 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("Keltner Channel Breakout with Candlestick Patterns (Manual) - Visualize False Breakouts with Chinese Labels", overlay=true)

// 输入参数
length = input.int(20, title="EMA 长度")
mult = input.float(1.5, title="ATR 乘数")  // 让通道稍微紧一点,增加突破机会
atrLength = input.int(14, title="ATR 长度")
volLength = input.int(20, title="成交量长度")
stopLossMultiplier = input.float(1.5, title="止损ATR倍数")
takeProfitMultiplier = input.float(2.0, title="止盈ATR倍数")

// 计算 Keltner 通道
ema20 = ta.ema(close, length)
atr = ta.atr(atrLength)
upper = ema20 + mult * atr
lower = ema20 - mult * atr

// 绘制 Keltner 通道
plot(upper, color=color.green, linewidth=2, title="上轨")
plot(lower, color=color.red, linewidth=2, title="下轨")
plot(ema20, color=color.blue, linewidth=2, title="中轨 (EMA20)")

// 判断突破
breakout_up = close > upper
breakout_down = close < lower

// 成交量过滤:当前成交量是否高于过去 N 根 K 线的平均成交量
volume_above_avg = volume > ta.sma(volume, volLength)

// 手动判断 K线形态:看涨吞没和看跌吞没
bullish_engulfing = close > open and open[1] > close[1] and close > open[1] and open < close[1]
bearish_engulfing = close < open and open[1] < close[1] and close < open[1] and open > close[1]

// 只在突破上轨和下轨时应用 K线形态过滤
valid_breakout_up = breakout_up and volume_above_avg and bullish_engulfing
valid_breakout_down = breakout_down and volume_above_avg and bearish_engulfing

// 交易信号
long_condition = valid_breakout_up
short_condition = valid_breakout_down

// 交易策略
if (long_condition)
    strategy.entry("Long", strategy.long, comment="做多")

if (short_condition)
    strategy.entry("Short", strategy.short, comment="做空")

// 止损 & 止盈
long_stop_loss = close - stopLossMultiplier * atr
long_take_profit = close + takeProfitMultiplier * atr
short_stop_loss = close + stopLossMultiplier * atr
short_take_profit = close - takeProfitMultiplier * atr

strategy.exit("Exit Long", from_entry="Long", stop=long_stop_loss, limit=long_take_profit)
strategy.exit("Exit Short", from_entry="Short", stop=short_stop_loss, limit=short_take_profit)

// 可视化假突破事件
plotshape(series=breakout_up and not bullish_engulfing, location=location.abovebar, color=color.red, style=shape.triangledown, title="假突破-上")
plotshape(series=breakout_down and not bearish_engulfing, location=location.belowbar, color=color.green, style=shape.triangleup, title="假突破-下")

// 可视化 K线形态(中文标签)
plotshape(series=bullish_engulfing and breakout_up, location=location.belowbar, color=color.green, style=shape.labelup, title="看涨吞没", text="看涨吞没")
plotshape(series=bearish_engulfing and breakout_down, location=location.abovebar, color=color.red, style=shape.labeldown, title="看跌吞没", text="看跌吞没")