Strategi pembalikan arah aliran berdasarkan silang EMA dan SMA


Tarikh penciptaan: 2024-01-04 17:59:04 Akhirnya diubah suai: 2024-01-04 17:59:04
Salin: 1 Bilangan klik: 1214
1
fokus pada
1621
Pengikut

Strategi pembalikan arah aliran berdasarkan silang EMA dan SMA

Gambaran keseluruhan

Strategi ini bertujuan untuk mengenal pasti potensi titik pembalikan trend melalui persilangan purata bergerak indeks 20 kitaran ((EMA) dan purata bergerak sederhana 20 kitaran ((SMA)). Memutuskan peluang untuk melakukan over atau short berdasarkan arah persilangan.

Prinsip Strategi

  1. Apabila EMA 20 kitaran dari bawah menembusi SMA 20 kitaran dan harga penutupan lebih tinggi daripada EMA 20 kitaran, lakukan lebih banyak.
  2. Apabila EMA 20 kitaran melintasi SMA 20 kitaran dari atas ke bawah dan harga penutupan berada di bawah EMA 20 kitaran, kosongkan.
  3. Untuk membuat lebih banyak pesanan, apabila 20 kitaran EMA melintasi 20 kitaran SMA, anda akan melonggarkan kedudukan.
  4. Untuk shorting, apabila 20 kitaran EMA diletakkan di atas 20 kitaran SMA.

Strategi ini menggunakan fungsi crossover dan crossunder tab ta untuk mengesan persimpangan garis rata.

Analisis kelebihan

Strategi ini menggabungkan fungsi pengesanan trend rata-rata bergerak dan penjanaan isyarat persilangan rata-rata, dengan kelebihan berikut:

  1. Rata-rata bergerak dapat menyaring sebahagian bunyi pasaran dan mengenal pasti trend jangka panjang.
  2. Garis rata silang mudah untuk dikendalikan dan dapat menentukan titik perubahan pasaran dengan jelas.
  3. Tetapan parameter 20 kitaran berfungsi untuk kebanyakan saham dan kitaran masa, tanpa perlu disesuaikan dengan kerap.
  4. Menggunakan hubungan harga penutupan dengan EMA untuk mengelakkan beberapa isyarat palsu.
  5. Peraturan-peraturan yang jelas dan mudah difahami dan dilaksanakan, sesuai untuk pelabur yang lebih rendah.

Analisis risiko

Strategi ini juga mempunyai risiko:

  1. Rata-rata bergerak mempunyai keterbelakangan dan mungkin terlepas daripada pembalikan trend jangka pendek dan tajam.
  2. Persaingan rata-rata mudah menghasilkan isyarat bising yang mempengaruhi kestabilan strategi.
  3. Tetapan parameter 20 kitaran tetap mungkin tidak sesuai untuk beberapa saham dan memerlukan penyesuaian.
  4. Tidak ada mekanisme pegangan kerugian, yang boleh menyebabkan kerugian tunggal yang lebih besar.

Kaedah pencegahan:

  1. Mempercepatkan tindak balas dengan mengurangkan kitaran purata.
  2. Menambah syarat penapisan lain untuk mengelakkan isyarat palsu.
  3. Ujian dan pengoptimuman parameter dan kategori saham.
  4. Menambah kaedah menghentikan kerugian untuk mengawal risiko.

Arah pengoptimuman

Strategi ini juga boleh dioptimumkan dengan:

  1. Menambah penghakiman indikator lain, membina strategi komposit, seperti penambahan kuantiti transaksi, RSI dan lain-lain.
  2. Optimumkan ujian untuk kitaran purata dan varieti perdagangan, tetapkan parameter penyesuaian.
  3. Membina mekanisme keluar dinamik, seperti trend tracking stop loss, time stop loss dan sebagainya.
  4. Menambah fungsi perdagangan algoritma untuk perdagangan automatik.
  5. Menambah algoritma pembelajaran mesin untuk menyesuaikan dan mengoptimumkan strategi.

ringkaskan

Strategi ini secara keseluruhan agak mudah dan praktikal, dengan menggunakan teori persilangan linear untuk mengenal pasti titik balik trend yang berpotensi, merupakan strategi yang biasa dan berkesan. Tetapi ada ruang untuk penambahbaikan, dengan menambah petunjuk teknikal lain, penetapan parameter dinamik, cara menghentikan kerugian, dan perdagangan algoritma.

Kod sumber strategi
/*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")