Strategi mengikut arah aliran berdasarkan silang EMA dan SMA


Tarikh penciptaan: 2024-01-17 15:42:22 Akhirnya diubah suai: 2024-01-17 15:42:22
Salin: 0 Bilangan klik: 626
1
fokus pada
1617
Pengikut

Strategi mengikut arah aliran berdasarkan silang EMA dan SMA

Gambaran keseluruhan

Strategi trend-following berdasarkan EMA dan SMA crossover adalah strategi perdagangan trend-following berdasarkan indeks moving average (EMA) dan simple moving average (SMA) crossover. Strategi ini bertujuan untuk mengenal pasti isyarat membeli dan menjual yang berpotensi dengan menangkap masa EMA jangka pendek melintasi SMA jangka panjang.

Prinsip Strategi

Strategi ini menghasilkan isyarat dagangan berdasarkan dua kriteria:

  1. 5 EMA terkini dengan 20 SMA terkini
  2. 4 jam, 5 EMA terkini, 20 SMA terkini

Apabila kedua-dua syarat ini dipenuhi, menghasilkan isyarat beli; apabila kedua-dua syarat ini tidak dipenuhi, menghasilkan isyarat jual.

Strategi ini menghasilkan isyarat perdagangan dengan membandingkan persilangan EMA dan SMA dalam tempoh masa yang berbeza, menilai arah trend secara menyeluruh. EMA jangka pendek mencerminkan perubahan trend dalam harga yang lebih sensitif, sementara SMA jangka panjang mempunyai kemampuan penyaringan trend yang lebih baik. Apabila EMA jangka pendek melintasi SMA jangka panjang, menunjukkan harga berbalik sedikit, memasuki keadaan trend, dan menghasilkan isyarat beli; sebaliknya, apabila EMA jangka pendek melintasi SMA jangka panjang, menunjukkan berakhirnya trend, dan menghasilkan isyarat jual.

Pada masa yang sama, strategi memasukkan penilaian EMA dan SMA pada tahap 4 jam untuk menyaring bunyi jangka pendek dan menjadikan isyarat perdagangan lebih dipercayai.

Kelebihan Strategik

Strategi ini mempunyai kelebihan berikut:

  1. Mudah, praktikal dan mudah difahami
  2. Tanggapan pantas untuk menangkap perubahan trend
  3. Pengambilan pelbagai kitaran masa untuk penapisan bunyi yang berkesan

Risiko Strategik

Strategi ini mempunyai beberapa risiko:

  1. Mudah menghasilkan isyarat palsu, perlu berhati-hati dengan isyarat yang disahkan
  2. Tidak dapat menangani pasaran yang bergolak
  3. Parameter EMA dan SMA perlu dipilih dengan berhati-hati

Risiko boleh dikawal dengan cara-cara seperti penambahan stop loss, parameter pengoptimuman dan sebagainya.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dalam beberapa aspek:

  1. Uji lebih banyak kombinasi parameter kitaran EMA dan SMA
  2. Tambah indikator lain untuk mengesahkan isyarat, seperti MACD, Brinband dan sebagainya
  3. Menubuhkan mekanisme hentikan kerugian dinamik
  4. Penapisan isyarat berdasarkan jumlah transaksi

ringkaskan

Strategi ini secara keseluruhan agak mudah dan praktikal, dengan membalikkan trend melalui EMA dan SMA silang, merupakan strategi pemantauan trend asas. Ia boleh diperbaiki dengan kaedah pengoptimuman parameter, penapisan isyarat dan lain-lain, untuk menyesuaikan diri dengan lebih banyak keadaan pasaran, meningkatkan keberkesanan strategi.

Kod sumber strategi
/*backtest
start: 2023-12-17 00:00:00
end: 2024-01-12 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA and SMA Crossover Strategy", shorttitle="Shashank Cross", overlay=true)

// Condition 1: Latest EMA (Close, 5) crossed above Latest SMA (Close, 20)
ema5 = ta.ema(close, 5)
sma20 = ta.sma(close, 20)

condition1 = ta.crossover(ema5, sma20)

// Condition 2: [0] 4-hour EMA ([0] 4-hour Close, 5) crossed above [0] 4-hour SMA ([0] 4-hour Close, 20)
ema5_4h = request.security(syminfo.tickerid, "240", ta.ema(close, 5))
sma20_4h = request.security(syminfo.tickerid, "240", ta.sma(close, 20))

condition2 = ta.crossover(ema5_4h, sma20_4h)

// Combine both conditions for a buy signal
buy_signal = condition1 and condition2

// Plotting signals on the chart
plotshape(buy_signal, color=color.green, style=shape.labelup, location=location.belowbar, size=size.small, text="Buy Signal")

// Strategy logic
if (buy_signal)
    strategy.entry("Buy", strategy.long)

// Exit long position on the next bar at market price
if (ta.barssince(buy_signal) == 1)
    strategy.close("Exit")

// You can add more code for stop-loss, take-profit, etc., as per your strategy.