Strategi Perdagangan Analisis Trend Impuls Pergerakan Eksponen Purata Pergerakan

EMA ICM
Tarikh penciptaan: 2025-02-18 17:41:28 Akhirnya diubah suai: 2025-02-18 17:41:28
Salin: 1 Bilangan klik: 375
1
fokus pada
1617
Pengikut

Strategi Perdagangan Analisis Trend Impuls Pergerakan Eksponen Purata Pergerakan

Gambaran keseluruhan

Strategi ini adalah sistem perdagangan untuk mengesan trend berdasarkan purata bergerak indeks (EMA) dan model pembetulan nadi (ICM). Ia menangkap perubahan trend pasaran dengan mengenal pasti harga yang bercampur dengan EMA dan corak pulsa-pembetulan-pulsa berikutnya, dan melakukan perdagangan apabila syarat-syarat tertentu dipenuhi.

Prinsip Strategi

Logik teras strategi adalah berdasarkan komponen utama berikut:

  1. Menggunakan EMA 10 kitaran sebagai penunjuk rujukan arah trend
  2. Cari bentuk denyutan-pembetulan-puls dalam 3 kitaran selepas harga bersilang dengan EMA
  3. Syarat kemasukan:
    • Harga di atas EMA
    • Garis K pertama adalah untuk melihat denyutan titisan ((Peningkatan lebih besar daripada nilai asal)
    • Garis K kedua adalah pembetulan turun ((harga penutupan lebih rendah daripada harga pembukaan)
    • Garis K yang ketiga adalah denyutan pendaratan yang melampaui dua garis K terdahulu.
  4. Syarat kemasukan kepala kosong berbanding dengan kepala banyak
  5. Tetapkan kedudukan stop loss dan stop loss secara automatik menggunakan nisbah keuntungan risiko tetap ((3 kali lipat default)

Kelebihan Strategik

  1. Gabungan penunjuk teknikal dan bentuk harga untuk memberikan isyarat dagangan yang lebih dipercayai
  2. Keberlanjutan trend melalui pembetulan-pembetulan-pembetulan bentuk
  3. Menggunakan nisbah risiko dan ganjaran tetap untuk pengurusan kedudukan, yang memberi manfaat kepada keuntungan yang stabil dalam jangka panjang
  4. Logik input jelas, mudah difahami dan dilaksanakan
  5. Sesuai untuk pelbagai jenis transaksi dan tempoh masa

Risiko Strategik

  1. Isyarat pelarian palsu yang kerap mungkin berlaku dalam pasaran yang tidak menentu
  2. Nisbah risiko dan ganjaran tetap mungkin tidak sesuai untuk semua keadaan pasaran
  3. Pilihan parameter EMA dan penurunan lebar denyutan akan mempengaruhi prestasi strategi
  4. Ketegangan yang berterusan boleh menyebabkan kedudukan hentian yang tidak munasabah
  5. Pembalasan yang lebih besar mungkin berlaku jika pasaran berbalik dengan cepat

Arah pengoptimuman strategi

  1. Memperkenalkan penyesuaian dinamik parameter kadar turun naik kepada nilai ambang denyutan
  2. Meningkatkan intensiti penapis trend mengurangkan penembusan palsu
  3. Pendapatan risiko yang disesuaikan dengan dinamika ciri pasaran
  4. Tambah penapis masa untuk mengelakkan dagangan pada masa yang tidak menguntungkan
  5. Gabungan penunjuk kuantiti untuk meningkatkan kebolehpercayaan isyarat

ringkaskan

Strategi ini, dengan menggabungkan EMA dan model pembetulan nadi, membina sistem trend yang jelas secara logik. Kelebihannya adalah bahawa isyarat jelas, risiko boleh dikawal, tetapi masih perlu dioptimumkan mengikut ciri-ciri pasaran tertentu. Dengan menambah keadaan penapisan yang sesuai dan mekanisme penyesuaian parameter dinamik, kestabilan dan keuntungan strategi dapat ditingkatkan lagi.

Kod sumber strategi
/*backtest
start: 2024-02-19 00:00:00
end: 2025-02-17 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA Cross Impulsive Strategy", overlay=true, margin_long=100, margin_short=100)

// Parameters
emaLength = input.int(10, title="EMA Length")
impulsiveBodyTicks = input.int(10, title="Minimum Impulsive Candle Body (Ticks)")
rMultiplier = input.int(3, title="Risk Reward Multiplier")

// Calculate EMA
ema10 = ta.ema(close, emaLength)

// Cross conditions
crossUp = ta.crossover(close, ema10)
crossDown = ta.crossunder(close, ema10)

// Impulsive and correction conditions
tickSize = syminfo.mintick
impulsiveBodyMin = impulsiveBodyTicks * tickSize

isImpulsiveBullish = (close > open) and (close - open >= impulsiveBodyMin)
isImpulsiveBearish = (close < open) and (open - close >= impulsiveBodyMin)
isCorrectionBearish = (close < open)
isCorrectionBullish = (close > open)

// Long setup tracking
var int barsSinceLongCross = 0
var bool impulsive1Long = false
var bool correctionLong = false
var bool impulsive2Long = false

if crossUp
    barsSinceLongCross := 0
    impulsive1Long := false
    correctionLong := false
    impulsive2Long := false
else
    barsSinceLongCross := barsSinceLongCross + 1

if barsSinceLongCross == 1
    impulsive1Long := isImpulsiveBullish

if barsSinceLongCross == 2
    correctionLong := isCorrectionBearish

if barsSinceLongCross == 3
    impulsive2Long := isImpulsiveBullish and (close > math.max(high[1], high[2]))

// Short setup tracking
var int barsSinceShortCross = 0
var bool impulsive1Short = false
var bool correctionShort = false
var bool impulsive2Short = false

if crossDown
    barsSinceShortCross := 0
    impulsive1Short := false
    correctionShort := false
    impulsive2Short := false
else
    barsSinceShortCross := barsSinceShortCross + 1

if barsSinceShortCross == 1
    impulsive1Short := isImpulsiveBearish

if barsSinceShortCross == 2
    correctionShort := isCorrectionBullish

if barsSinceShortCross == 3
    impulsive2Short := isImpulsiveBearish and (close < math.min(low[1], low[2]))

// Execute trades
if barsSinceLongCross == 3 and impulsive1Long and correctionLong and impulsive2Long
    strategy.entry("Long", strategy.long)
    strategy.exit("Exit Long", "Long", stop=low, profit=close + (close - low) * rMultiplier)

if barsSinceShortCross == 3 and impulsive1Short and correctionShort and impulsive2Short
    strategy.entry("Short", strategy.short)
    strategy.exit("Exit Short", "Short", stop=high, profit=close - (high - close) * rMultiplier)

// Plot EMA
plot(ema10, color=color.blue, title="10 EMA")