Strategi Perdagangan Momentum Pecah Arah Aliran Berbilang

EMA ATR VOLUME SMA BREAKOUT Consolidation
Tarikh penciptaan: 2025-02-20 13:14:39 Akhirnya diubah suai: 2025-02-20 14:53:56
Salin: 0 Bilangan klik: 82
2
fokus pada
37
Pengikut

Strategi Perdagangan Momentum Pecah Arah Aliran Berbilang Strategi Perdagangan Momentum Pecah Arah Aliran Berbilang

Gambaran keseluruhan

Strategi ini adalah sistem pengesanan trend yang menggabungkan pelbagai petunjuk, yang menangkap peluang tren pasaran terutamanya dengan mengenal pasti penembusan harga, pengesahan jumlah transaksi, dan kombinasi sistem rata-rata. Strategi ini menentukan isyarat perdagangan dengan memantau penembusan harga terhadap ketinggian / ketinggian baru-baru ini, peningkatan yang ketara dalam jumlah transaksi, dan susunan rata-rata bergerak pelbagai indeks (EMA).

Prinsip Strategi

Logik utama strategi ini adalah berdasarkan kepada beberapa elemen utama:

  1. Sistem penembusan harga: memantau penembusan harga ke atas/bawah dalam 20 kitaran terakhir
  2. Pengesahan jumlah transaksi: Memerlukan jumlah transaksi pada waktu terobosan sekurang-kurangnya dua kali ganda daripada purata transaksi dalam 20 kitaran terakhir
  3. Sistem garis rata: membina sistem pengesahan trend menggunakan EMA 30/50/200
  4. Buat banyak syarat: harga memecahkan tinggi baru, jumlah transaksi meningkat, harga berdiri di 200 EMA, garis purata jangka pendek berada di atas garis purata jangka menengah dan garis purata jangka menengah berada di atas garis purata jangka panjang
  5. Syarat untuk masuk: Terdapat dua mekanisme kemasukan:
    • Penembusan kosong tradisional: harga menembusi rendah baru, jumlah transaksi meningkat, garis tengah kosong dan 200 EMA miring ke bawah
    • Penyusunan sempit kosong: harga membentuk penyusunan sempit di bawah garis purata jangka menengah, penyusunan sempit kurang daripada 0.5 kali ATR

Kelebihan Strategik

  1. Mekanisme pengesahan berganda: meningkatkan kebolehpercayaan isyarat melalui pengesahan tiga kali harga, jumlah transaksi dan garis purata
  2. Fleksibiliti dalam mekanisme shorting: menawarkan dua cara masuk shorting yang berasingan untuk meningkatkan peluang dagangan
  3. Adaptif: Menentukan susunan yang ketat melalui ATR, membolehkan strategi menyesuaikan diri dengan keadaan pasaran yang berbeza
  4. Pengendalian risiko yang sempurna: menggunakan 200 EMA sebagai rujukan hentian kerugian, menyediakan mekanisme keluar yang jelas
  5. Penyesuaian parameter: parameter utama boleh dioptimumkan mengikut ciri-ciri pasaran yang berbeza

Risiko Strategik

  1. Risiko Penembusan Palsu: Pasaran mungkin mengalami penembusan palsu yang membawa kepada isyarat yang salah
  2. Risiko tergelincir: kemungkinan tergelincir yang lebih besar pada masa terobosan dengan peningkatan jumlah transaksi
  3. Risiko trend reversal: Dalam pasaran trend yang kuat, penggunaan stop loss rata-rata boleh menyebabkan penarikan awal
  4. Sensitiviti parameter: prestasi strategi lebih sensitif kepada tetapan parameter dan memerlukan pengoptimuman yang berhati-hati
  5. Ketergantungan kepada keadaan pasaran: Isyarat palsu yang sering berlaku dalam pasaran yang bergolak

Arah pengoptimuman strategi

  1. Memperkenalkan penapis kekuatan trend: penapis isyarat dalam keadaan trend lemah dengan penambahan indikator kekuatan trend seperti ADX
  2. Mekanisme penangguhan yang dioptimumkan: penangguhan dinamik berasaskan ATR boleh diperkenalkan untuk meningkatkan fleksibiliti penangguhan
  3. Pengurusan kedudukan yang lebih baik: penyesuaian saiz pegangan mengikut kekuatan penembusan dan dinamik turun naik pasaran
  4. Menambah penapis masa: penapis masa harian ditambah untuk mengelakkan dagangan pada masa pembukaan dan penutupan yang lebih turun naik
  5. Memperkenalkan klasifikasi keadaan pasaran: parameter strategi penyesuaian dinamik mengikut keadaan pasaran yang berbeza ((trend / goyah)

ringkaskan

Strategi dagangan pelbagai trend yang memecahkan momentum adalah sistem penjejakan trend yang komprehensif, yang menyediakan peluang perdagangan yang fleksibel dengan penggunaan gabungan pelbagai petunjuk teknikal, sambil memastikan kebolehpercayaan isyarat. Inovasi strategi ini adalah gabungan kaedah dagangan pecah tradisional dan mekanisme pengenalan pengurutan yang sempit baru, yang membolehkannya menyesuaikan diri dengan keadaan pasaran yang berbeza. Walaupun terdapat risiko tertentu, dengan pengoptimuman parameter yang munasabah dan langkah-langkah pengurusan risiko, strategi ini dijangka dapat mencapai prestasi yang stabil di pasaran yang berprestij.

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