Strategi Pembalikan Trend Berdasarkan EMA dan SMA Crossover

Penulis:ChaoZhang, Tarikh: 2024-01-04 17:59:04
Tag:

img

Ringkasan

Tujuan strategi ini adalah untuk mengenal pasti titik pembalikan trend yang berpotensi dengan memerhatikan persimpangan antara purata bergerak eksponen (EMA) 20 tempoh dan purata bergerak mudah (SMA) 20 tempoh. Ia memutuskan untuk pergi panjang atau pergi pendek berdasarkan arah persimpangan.

Logika Strategi

  1. Apabila EMA 20 tempoh melintasi di atas SMA 20 tempoh dan harga penutupan di atas EMA 20 tempoh, pergi panjang.
  2. Apabila EMA 20 tempoh melintasi di bawah SMA 20 tempoh dan harga penutupan di bawah EMA 20 tempoh, pergi pendek.
  3. Untuk kedudukan panjang, tutup perdagangan apabila EMA 20 tempoh melintasi di bawah SMA 20 tempoh.
  4. Untuk kedudukan pendek, tutup perdagangan apabila EMA 20 tempoh melintasi di atas SMA 20 tempoh.

Strategi ini menggunakan fungsi crossover dan crossunder dari perpustakaan ta untuk mengesan crossover purata bergerak.

Analisis Kelebihan

Strategi ini menggabungkan keupayaan trend berikut purata bergerak dan penjanaan isyarat peristiwa silang, yang mempunyai kelebihan berikut:

  1. Purata bergerak dapat menapis bunyi bising pasaran secara berkesan dan mengenal pasti trend jangka sederhana hingga panjang.
  2. Crossover mudah dikendalikan dan dengan jelas mengenal pasti perubahan dalam momentum pasaran.
  3. Parameter 20 tempoh berfungsi dengan baik untuk kebanyakan stok dan jangka masa tanpa memerlukan penyesuaian yang kerap.
  4. Menggunakan harga penutupan berhubung dengan EMA mengelakkan beberapa isyarat palsu.
  5. Peraturan mudah dan mudah difahami, sesuai untuk pelabur yang kurang canggih.

Analisis Risiko

Strategi ini juga mempunyai risiko berikut:

  1. Purata bergerak mempunyai kelewatan dan mungkin terlepas pembalikan trend jangka pendek dan mendadak.
  2. Crossover boleh menghasilkan isyarat bising, mempengaruhi kestabilan.
  3. Parameter 20 tempoh tetap mungkin tidak berfungsi dengan baik untuk beberapa stok, yang memerlukan penyusunan.
  4. Tidak ada stop loss, yang membolehkan perdagangan kehilangan besar.

Penyelesaian:

  1. Memendekkan tempoh purata bergerak untuk meningkatkan tindak balas.
  2. Tambah penapis untuk mengelakkan isyarat palsu.
  3. Uji dan mengoptimumkan parameter dan kategori stok.
  4. Menggabungkan stop loss untuk mengawal risiko.

Arahan pengoptimuman

Strategi ini juga boleh ditingkatkan dalam aspek berikut:

  1. Tambahkan penunjuk lain untuk membina strategi komposit, contohnya jumlah, RSI.
  2. Uji dan optimumkan tempoh dan simbol, menetapkan parameter penyesuaian.
  3. Membina mekanisme keluar dinamik seperti stop loss, stop loss berdasarkan masa.
  4. Tambah keupayaan dagangan algoritma untuk automasi.
  5. Menggabungkan pembelajaran mesin untuk pengoptimuman adaptif.

Ringkasan

Strategi ini agak mudah dan praktikal secara keseluruhan, mengenal pasti titik pembalikan trend yang berpotensi melalui teori crossover purata bergerak. tetapi terdapat juga ruang untuk peningkatan melalui penunjuk tambahan, parameter dinamik, stop loss, perdagangan algoritma dan lain-lain untuk menjadikan strategi lebih kukuh, boleh dipercayai dan automatik.


/*backtest
start: 2022-12-28 00:00:00
end: 2024-01-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA-SMA Crossover Strategy", overlay=true)

// Define the length of the moving averages
emaLength = 20
smaLength = 20

// Calculate moving averages
emaValue = ta.ema(close, emaLength)
smaValue = ta.sma(close, smaLength)

// Buy condition
buyCondition = ta.crossover(emaValue, smaValue) and close > emaValue

// Short sell condition
sellCondition = ta.crossunder(emaValue, smaValue) and close < emaValue

// Exit conditions for both Buy and Short sell
exitBuyCondition = ta.crossunder(emaValue, smaValue)
exitSellCondition = ta.crossover(emaValue, smaValue)

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

if (sellCondition)
    strategy.entry("Sell", strategy.short)

if (exitBuyCondition)
    strategy.close("Buy")

if (exitSellCondition)
    strategy.close("Sell")

// Plot the moving averages
plot(emaValue, color=color.blue, title="20 EMA")
plot(smaValue, color=color.red, title="20 SMA")


Lebih lanjut