Strategi Perdagangan Momentum Penembusan Tren Ganda

EMA ATR VOLUME SMA BREAKOUT Consolidation
Tanggal Pembuatan: 2025-02-20 13:14:39 Akhirnya memodifikasi: 2025-02-20 14:53:56
menyalin: 1 Jumlah klik: 398
2
fokus pada
319
Pengikut

Strategi Perdagangan Momentum Penembusan Tren Ganda Strategi Perdagangan Momentum Penembusan Tren Ganda

Ringkasan

Strategi ini adalah sistem pelacakan tren yang menggabungkan beberapa indikator, terutama untuk menangkap peluang tren pasar dengan mengidentifikasi harga terobosan, konfirmasi volume transaksi, dan kombinasi sistem rata-rata. Strategi ini untuk menentukan sinyal perdagangan dengan memantau harga terhadap terobosan tinggi / rendah baru-baru ini, pembesaran signifikan volume transaksi, dan susunan rata-rata bergerak multi-indeks (EMA). Strategi ini juga menyertakan mekanisme identifikasi pengelompokan yang sempit dan inovatif untuk menangkap potensi peluang shorting.

Prinsip Strategi

Logika inti dari strategi ini didasarkan pada beberapa elemen kunci:

  1. Sistem Penembusan Harga: Memantau harga untuk menembus titik tinggi/rendah selama 20 siklus terakhir
  2. Konfirmasi volume transaksi: Memerlukan volume transaksi pada saat terobosan setidaknya dua kali lipat dari rata-rata transaksi dalam 20 siklus terakhir
  3. Sistem garis rata: Sistem konfirmasi tren yang dibangun menggunakan EMA dengan siklus 30/50/200
  4. Buat beberapa kondisi: harga menerobos tinggi baru, volume transaksi meningkat, harga berdiri di 200 EMA, rata-rata jangka pendek berada di atas rata-rata jangka menengah dan rata-rata jangka menengah berada di atas rata-rata jangka panjang
  5. Ada dua mekanisme untuk masuk:
    • Traditional breakout shorting: harga breakout low baru, volume transaksi meningkat, garis tengah kosong dan 200 EMA miring ke bawah
    • Narrowing short: harga membentuk narrowing short di bawah garis rata-rata jangka menengah, dengan narrowing short kurang dari 0,5 kali ATR

Keunggulan Strategis

  1. Mekanisme konfirmasi ganda: meningkatkan keandalan sinyal melalui penetapan harga, volume transaksi dan konfirmasi ganda rata-rata
  2. Fleksibelnya mekanisme shorting: menawarkan dua cara masuk shorting yang terpisah untuk meningkatkan peluang trading
  3. Adaptif: Definisi yang lebih sempit melalui ATR, memungkinkan strategi untuk beradaptasi dengan berbagai kondisi pasar yang bergejolak
  4. Pengendalian risiko yang sempurna: menggunakan 200 EMA sebagai referensi stop loss, memberikan mekanisme keluar yang jelas
  5. Parameter dapat disesuaikan: parameter kunci dapat dioptimalkan sesuai dengan karakteristik pasar yang berbeda

Risiko Strategis

  1. Risiko Penembusan Palsu: Pasar Bisa Terjerat Penembusan Palsu, Membuat Sinyal Yang Salah
  2. Risiko slippage: kemungkinan slippage yang lebih besar pada saat volume transaksi meningkat
  3. Risiko reversal: Dalam pasar tren yang kuat, menggunakan stop loss rata-rata dapat menyebabkan keluar prematur
  4. Sensitivitas parameter: kinerja kebijakan sangat sensitif terhadap pengaturan parameter dan perlu dioptimalkan dengan hati-hati
  5. Ketergantungan pada kondisi pasar: sinyal palsu yang sering terjadi dalam pasar yang bergejolak

Arah optimasi strategi

  1. Memperkenalkan penyaringan kekuatan tren: indikator kekuatan tren seperti ADX dapat ditambahkan, memfilter sinyal di bawah lingkungan tren yang lemah
  2. Optimalisasi mekanisme stop loss: dapat diperkenalkan stop loss dinamis berbasis ATR, meningkatkan fleksibilitas stop loss
  3. Meningkatkan manajemen posisi: penyesuaian ukuran kepemilikan berdasarkan kekuatan terobosan dan dinamika volatilitas pasar
  4. Menambahkan waktu penyaringan: Menambahkan waktu penyaringan dalam hari untuk menghindari perdagangan pada saat buka dan tutup yang lebih bergejolak
  5. Memperkenalkan klasifikasi lingkungan pasar: Parameter strategi penyesuaian dinamis sesuai dengan lingkungan pasar yang berbeda (trend / getaran)

Meringkaskan

Strategi perdagangan tren multi-penembusan dinamika adalah sistem pelacakan tren yang komprehensif, yang menyediakan peluang perdagangan yang fleksibel dengan penggunaan gabungan dari beberapa indikator teknis, sambil menjamin keandalan sinyal. Inovasi strategi ini adalah kombinasi antara metode perdagangan tradisional yang terobosan dan mekanisme identifikasi pengelompokan yang sempit, yang memungkinkan untuk beradaptasi dengan lingkungan pasar yang berbeda. Meskipun ada risiko tertentu, strategi ini diharapkan untuk mendapatkan kinerja yang stabil di pasar tren dengan optimasi parameter yang wajar dan langkah-langkah manajemen risiko.

Kode Sumber Strategi
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Breakout Strategy (Long & Short) + Slope of 200 EMA", overlay=true)

// -------------------
// 1. Settings
// -------------------
breakout_candles = input.int(20, title="Number of Candles for Breakout")
range_candles    = input.int(10, title="Number of Candles for Previous Range")

ema_long_period   = input.int(200, title="Long EMA Period")
ema_medium_period = input.int(50,  title="Medium EMA Period")
ema_short_period  = input.int(30,  title="Short EMA Period")

// Checkbox to allow/disallow short positions
allowShort = input.bool(true, title="Allow Short Positions")

// Inputs for the new Narrow Consolidation Short setup
consolidationBars     = input.int(10,   "Consolidation Bars",   minval=1)
narrowThreshInAtr     = input.float(0.5,"Narrowness (ATR Mult.)",minval=0.0)
atrLength             = input.int(14,   "ATR Length for Range")

// -------------------
// 2. Calculations
// -------------------
breakout_up   = close > ta.highest(high, breakout_candles)[1]
breakout_down = close < ta.lowest(low,  breakout_candles)[1]

prev_range_high = ta.highest(high, range_candles)[1]
prev_range_low  = ta.lowest(low,  range_candles)[1]

ema_long   = ta.ema(close, ema_long_period)
ema_medium = ta.ema(close, ema_medium_period)
ema_short  = ta.ema(close, ema_short_period)

average_vol      = ta.sma(volume, breakout_candles)
volume_condition = volume > 2 * average_vol

// 200 EMA sloping down?
ema_long_slope_down = ema_long < ema_long[1]

// For the Narrow Consolidation Short
rangeHigh   = ta.highest(high, consolidationBars)
rangeLow    = ta.lowest(low,  consolidationBars)
rangeSize   = rangeHigh - rangeLow

atrValue    = ta.atr(atrLength)

// Condition: Price range is "narrow" if it's less than (ATR * threshold)
narrowConsolidation = rangeSize < (atrValue * narrowThreshInAtr)

// Condition: All bars under Medium EMA if the highest difference (high - ema_medium) in last N bars is < 0
allBelowMedium = ta.highest(high - ema_medium, consolidationBars) < 0

// -------------------
// 3. Long Entry
// -------------------
breakout_candle_confirmed_long = ta.barssince(breakout_up) <= 3

long_condition = breakout_candle_confirmed_long
     and volume_condition
     and close > prev_range_high
     and close > ema_long
     and ema_short > ema_medium
     and ema_medium > ema_long
     and strategy.opentrades == 0

if long_condition
    strategy.entry("Long", strategy.long)

// -------------------
// 4. Short Entries
// -------------------

// (A) Original breakout-based short logic
breakout_candle_confirmed_short = ta.barssince(breakout_down) <= 3
short_condition_breakout = breakout_candle_confirmed_short
     and volume_condition
     and close < prev_range_low
     and close < ema_long
     and ema_short < ema_medium
     and ema_medium < ema_long
     and ema_long_slope_down
     and strategy.opentrades == 0

// (B) NEW: Narrow Consolidation Short
short_condition_consolidation = narrowConsolidation
     and allBelowMedium
     and strategy.opentrades == 0

// Combine them: if either short scenario is valid, go short
short_condition = (short_condition_breakout or short_condition_consolidation) and allowShort

if short_condition
    // Use a different order ID if you want to distinguish them
    // but "Short" is fine for a single position
    strategy.entry("Short", strategy.short)

// -------------------
// 5. Exits
// -------------------
if strategy.position_size > 0 and close < ema_long
    strategy.close("Long", qty_percent=100)

if strategy.position_size < 0 and close > ema_long
    strategy.close("Short", qty_percent=100)

// ======================================================================
// 5. ADDITIONAL PARTIAL EXITS / STOPS
// ======================================================================
// You can add partial exits for shorts or longs similarly.
// For example:
// if strategy.position_size < 0 and close > stop_level_for_short
//     strategy.close("Short", qty_percent=50)