Penembusan aliran penapis berbilang strategi dagangan purata bergerak pintar

VWAP EMA RSI ADX ATR HTF SMA
Tarikh penciptaan: 2024-12-20 15:49:05 Akhirnya diubah suai: 2024-12-20 15:49:05
Salin: 0 Bilangan klik: 427
1
fokus pada
1617
Pengikut

Penembusan aliran penapis berbilang strategi dagangan purata bergerak pintar

Gambaran keseluruhan

Strategi ini adalah sistem perdagangan pecah trend berdasarkan rangkaian pelbagai petunjuk teknikal. Ia menggunakan pelbagai petunjuk teknikal, seperti purata bergerak indeks (EMA), purata harga bertimbangan dengan jumlah transaksi (VWAP), indeks yang agak kuat (RSI), indeks trend rata-rata (ADX), dan sebagainya untuk menyaring pecah palsu dan meningkatkan ketepatan perdagangan melalui pengiktirafan pelbagai isyarat.

Prinsip Strategi

Logik teras strategi adalah berdasarkan elemen utama berikut:

  1. Sistem penghakiman trend: menggunakan EMA 9 kitaran dan 21 kitaran untuk menangkap perubahan trend jangka pendek, sambil merujuk kepada EMA 50 kitaran 15 minit untuk mengesahkan arah trend yang lebih besar.
  2. Pengesahan pergerakan harga: Menggunakan indikator RSI untuk pengesahan pergerakan, RSI> 55 diperlukan untuk multihead, RSI < 45 diperlukan untuk kepala kosong.
  3. Pengesahan kekuatan trend: memperkenalkan indikator ADX untuk menilai kekuatan trend, memerlukan ADX> 25 untuk memastikan kesahihan trend.
  4. Pengesahan kedudukan harga: menggunakan VWAP sebagai rujukan kedudukan harga, meminta harga berada di kedudukan VWAP yang betul.
  5. Pengesahan kuantiti transaksi: Memerlukan jumlah transaksi lebih besar daripada 1.5 kali purata transaksi dalam 10 kitaran untuk memastikan penyertaan yang mencukupi dalam pasaran.
  6. Pengurusan risiko: Menggunakan 1.5 kali ATR sebagai stop loss dan 3 kali ATR sebagai stop loss.

Kelebihan Strategik

  1. Mekanisme pengesahan pelbagai isyarat mengurangkan gangguan isyarat palsu.
  2. Digabungkan dengan analisis kitaran masa yang tinggi dan rendah, ini meningkatkan ketepatan penilaian trend.
  3. Pengurusan kedudukan yang dinamik dan tetapan penangguhan kerugian, mewujudkan kawalan yang baik terhadap risiko.
  4. Menggunakan terobosan kuantiti sebagai pengesahan transaksi, meningkatkan kebolehpercayaan transaksi.
  5. Parameter strategi boleh disesuaikan dengan mudah untuk mengoptimumkan mengikut keadaan pasaran yang berbeza.

Risiko Strategik

  1. Ini adalah salah satu daripada beberapa peluang perdagangan yang mungkin terlepas.
  2. Ia mungkin akan menghasilkan isyarat dagangan yang kerap dalam pasaran yang bergolak.
  3. Pengoptimuman parameter mungkin menyebabkan data sejarah yang terlalu sesuai.
  4. ATR terhad dalam pasaran yang sangat tidak menentu.

Arah pengoptimuman strategi

  1. Memperkenalkan mekanisme parameter penyesuaian diri, menyesuaikan parameter mengikut keadaan pasaran yang dinamik.
  2. Tambah modul pengenalan persekitaran pasaran, menggunakan kombinasi parameter yang berbeza dalam persekitaran pasaran yang berbeza.
  3. Menambah penapis masa untuk mengelakkan turun naik yang tinggi.
  4. Pengoptimuman Stop Loss Stop Stop Ratio, boleh dipertimbangkan untuk disesuaikan dengan pergerakan turun naik pasaran.
  5. Meningkatkan penilaian peringkat kekuatan trend, menggunakan strategi pengurusan kedudukan yang berbeza dengan kekuatan yang berbeza.

ringkaskan

Strategi ini membina sistem perdagangan yang agak lengkap melalui kerjasama kolaboratif pelbagai petunjuk teknikal. Kelebihan utamanya adalah meningkatkan ketepatan perdagangan melalui pengesahan isyarat berbilang dimensi, sambil menggunakan kaedah pengurusan risiko saintifik untuk melindungi keselamatan dana. Walaupun terdapat beberapa batasan, strategi ini dijangka memperoleh keuntungan yang stabil dalam perdagangan sebenar melalui pengoptimuman dan penambahbaikan yang berterusan.

Kod sumber strategi
/*backtest
start: 2024-11-19 00:00:00
end: 2024-12-18 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Trend-Filtered Scalping Strategy", overlay=true, shorttitle="TFSS")

// Inputs
emaShort     = input.int(9, title="EMA Short", minval=1)
emaLong      = input.int(21, title="EMA Long", minval=1)
rsiLength    = input.int(14, title="RSI Length", minval=1)
atrLength    = input.int(14, title="ATR Length", minval=1)
adxLength    = input.int(20, title="ADX Length", minval=1)
adxSmoothing = input.int(14, title="ADX Smoothing", minval=1)
volMultiplier = input.float(1.5, title="Volume Spike Multiplier", minval=1.0)
riskPercent  = input.float(1, title="Risk % of Equity", minval=0.1, step=0.1)

// Higher Time Frame for Trend Filter
htfTimeframe = input.timeframe("15", title="Higher Time Frame")
ema50HTF     = request.security(syminfo.tickerid, htfTimeframe, ta.ema(close, 50))

// Indicators
ema9  = ta.ema(close, emaShort)
ema21 = ta.ema(close, emaLong)
vwap  = ta.vwap(close)
rsi   = ta.rsi(close, rsiLength)
atr   = ta.atr(atrLength)
volAvg = ta.sma(volume, 10)

// ADX Calculation with Smoothing
[_, _, adx] = ta.dmi(adxLength, adxSmoothing)

// Entry Conditions
longCondition = (ta.crossover(ema9, ema21) and close > vwap and rsi > 55 and adx > 25 and close > ema50HTF and volume > volAvg * volMultiplier)
shortCondition = (ta.crossunder(ema9, ema21) and close < vwap and rsi < 45 and adx > 25 and close < ema50HTF and volume > volAvg * volMultiplier)

// Position Sizing Based on Risk %
capitalPerTrade = (strategy.equity * (riskPercent / 100)) / atr
longStop  = close - 1.5 * atr
longTarget = close + 3 * atr
shortStop = close + 1.5 * atr
shortTarget = close - 3 * atr

// Entry Logic
if longCondition and not strategy.opentrades
    strategy.entry("Long", strategy.long, qty=capitalPerTrade)
    strategy.exit("Exit Long", from_entry="Long", stop=longStop, limit=longTarget)

if shortCondition and not strategy.opentrades
    strategy.entry("Short", strategy.short, qty=capitalPerTrade)
    strategy.exit("Exit Short", from_entry="Short", stop=shortStop, limit=shortTarget)

// Alerts
alertcondition(longCondition, title="Long Entry Alert", message="Long Condition Triggered!")
alertcondition(shortCondition, title="Short Entry Alert", message="Short Condition Triggered!")

// Plot Indicators
plot(ema9, title="EMA 9", color=color.green)
plot(ema21, title="EMA 21", color=color.red)
plot(vwap, title="VWAP", color=color.blue)
plot(ema50HTF, title="HTF EMA 50", color=color.purple)
hline(55, "RSI Long Threshold", color=color.green)
hline(45, "RSI Short Threshold", color=color.red)