Sumber daya yang dimuat... Pemuatan...

Strategi Trading Rata-rata Bergerak Cerdas Penembusan Tren Multi-Filter

Penulis:ChaoZhang, Tanggal: 2024-12-20 15:49:05
Tag:VWAPEMARSIADXATRHTFSMA

img

Gambaran umum

Strategi ini adalah sistem perdagangan terobosan tren berdasarkan beberapa filter indikator teknis. Ini menggabungkan beberapa indikator teknis termasuk Rata-rata Gerak Eksponensial (EMA), Harga Rata-rata Berat Volume (VWAP), Indeks Kekuatan Relatif (RSI), Indeks Arah Rata-rata (ADX), dll, untuk menyaring breakout palsu melalui beberapa konfirmasi sinyal dan meningkatkan akurasi perdagangan. Strategi ini juga menggabungkan penilaian tren jangka waktu yang lebih tinggi dan menggunakan skema stop-loss dan take-profit dinamis berbasis ATR untuk pengendalian risiko yang efektif.

Prinsip Strategi

Logika inti dari strategi ini didasarkan pada elemen kunci berikut:

  1. Sistem Penghakiman Tren: Menggunakan lintas EMA 9 periode dan 21 periode untuk menangkap perubahan tren jangka pendek, sementara referensi jangka waktu 15 menit EMA 50 periode untuk mengkonfirmasi arah tren yang lebih besar.
  2. Konfirmasi Momentum Harga: Menggunakan indikator RSI untuk konfirmasi momentum, membutuhkan RSI>55 untuk long dan RSI<45 untuk short.
  3. Verifikasi Kekuatan Tren: Menggabungkan indikator ADX untuk menilai kekuatan tren, membutuhkan ADX>25 untuk memastikan validitas tren.
  4. Verifikasi Posisi Harga: Menggunakan VWAP sebagai referensi untuk posisi harga, membutuhkan harga berada di posisi VWAP yang benar.
  5. Volume Konfirmasi: Mengharuskan volume perdagangan 1,5 kali lebih besar dari volume rata-rata 10 periode untuk memastikan partisipasi pasar yang cukup.
  6. Manajemen Risiko: Menghitung ukuran posisi secara dinamis berdasarkan persentase tetap dari ekuitas akun dan ATR, menggunakan 1,5x ATR untuk stop-loss dan 3x ATR untuk take-profit.

Keuntungan Strategi

  1. Mekanisme konfirmasi sinyal ganda sangat mengurangi gangguan dari sinyal palsu.
  2. Kombinasi analisis jangka waktu yang lebih tinggi dan lebih rendah meningkatkan akurasi penilaian tren.
  3. Manajemen posisi yang dinamis dan pengaturan stop loss/take profit mencapai kontrol risiko yang baik.
  4. Penggunaan volume breakout sebagai konfirmasi perdagangan meningkatkan keandalan perdagangan.
  5. Kemampuan penyesuaian parameter yang kuat memfasilitasi optimalisasi untuk kondisi pasar yang berbeda.

Risiko Strategi

  1. Beberapa filter dapat menyebabkan kehilangan beberapa peluang perdagangan yang valid.
  2. Dapat menghasilkan sinyal perdagangan yang sering di berbagai pasar.
  3. Optimasi parameter dapat menyebabkan overfit data historis.
  4. Hentian ATR mungkin terlalu luas di pasar yang sangat volatile.

Arah Optimasi Strategi

  1. Memperkenalkan mekanisme parameter adaptif untuk menyesuaikan parameter secara dinamis berdasarkan kondisi pasar.
  2. Tambahkan modul pengenalan lingkungan pasar untuk menggunakan kombinasi parameter yang berbeda di lingkungan pasar yang berbeda.
  3. Sertakan filter waktu perdagangan untuk menghindari periode volatilitas tinggi.
  4. Mengoptimalkan rasio stop loss dan take profit, dengan mempertimbangkan penyesuaian dinamis berdasarkan volatilitas pasar.
  5. Tambahkan klasifikasi kekuatan tren untuk mengadopsi strategi manajemen posisi yang berbeda pada tingkat kekuatan yang berbeda.

Ringkasan

Strategi ini membangun sistem perdagangan yang relatif lengkap melalui sinergi dari beberapa indikator teknis. Keuntungannya utama terletak pada peningkatan akurasi perdagangan melalui konfirmasi sinyal multi-dimensi sambil menggunakan metode manajemen risiko ilmiah untuk melindungi keamanan modal. Meskipun ada keterbatasan tertentu, melalui optimasi dan perbaikan terus-menerus, strategi ini memiliki potensi untuk mencapai pengembalian yang stabil dalam perdagangan aktual.


/*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)


Berkaitan

Lebih banyak