Strategi Crossover Rata-rata Bergerak

Penulis:ChaoZhang, Tanggal: 2024-01-23 15:20:16
Tag:

img

Gambaran umum

Ini adalah strategi perdagangan yang didasarkan pada sinyal crossover rata-rata bergerak. Ini menggunakan garis rata-rata bergerak 45 hari sebagai indikator teknis utama dan menghasilkan sinyal beli dan jual ketika harga menembus garis rata-rata bergerak.

Logika Strategi

Setelah posisi dipegang selama 8 hari, sinyal jual dihasilkan. Setelah itu, jika harga naik dan melanggar di atas garis rata-rata bergerak 45 hari lagi, sinyal beli baru akan dipicu, dan seterusnya.

Prinsip logika khusus adalah:

  1. Hitung garis rata-rata bergerak 45 hari.
  2. Ketika harga penutupan pecah dari bawah ke atas garis rata-rata bergerak, sinyal beli dihasilkan untuk pergi panjang.
  3. Pegang posisi selama 8 hari perdagangan setelah masuk ke pasar.
  4. Tutup posisi panjang setelah 8 hari dan menghasilkan sinyal jual.
  5. Jika kemudian harga penutupan pecah dari bawah ke atas garis rata-rata bergerak lagi, kembalikan sinyal beli untuk membuka kembali posisi panjang.

Hal di atas merupakan logika perdagangan inti dari strategi ini.

Keuntungan

Strategi ini memiliki keuntungan berikut:

  1. Aturan perdagangan sederhana dan jelas, mudah dimengerti dan diterapkan.
  2. Menggunakan fitur pelacakan tren dari rata-rata bergerak untuk secara efektif menangkap tren jangka menengah hingga panjang.
  3. Periode penyimpanan 8 hari cukup panjang untuk melacak tren dan cukup pendek untuk memotong kerugian tepat waktu.
  4. Aturan untuk memasuki kembali pasar jelas, yang membantu membatasi frekuensi perdagangan.

Risiko

Ada beberapa risiko dengan strategi ini:

  1. Sifat lambat dari rata-rata bergerak dapat menyebabkan entri terlambat dan keluar lebih awal.
  2. Periode penyimpanan tetap dan parameter MA mungkin tidak dapat beradaptasi dengan perubahan kondisi pasar.
  3. Frekuensi perdagangan mungkin terlalu tinggi, meningkatkan biaya dan slip.
  4. Sinyal breakout dapat menghasilkan sinyal palsu yang mengakibatkan beberapa whipsaws.

Solusi:

  1. Mengoptimalkan parameter MA untuk mengurangi lag.
  2. Meningkatkan periode penahan atau menggunakan trailing stops untuk melacak tren dengan lebih baik.
  3. Tambahkan filter menggunakan indikator lain seperti MACD atau KDJ untuk mengkonfirmasi sinyal.
  4. Perbaiki aturan masuk kembali untuk mengontrol frekuensi.

Bidang Peningkatan

Bidang utama peningkatan adalah:

  1. Optimalkan parameter MA untuk menemukan kombinasi terbaik, misalnya MA 15 hari, 30 hari, 60 hari.

  2. Optimalkan periode penyimpanan untuk menentukan durasi optimal, misalnya 5 hari, 10 hari, 15 hari.

  3. Tambahkan trailing stops untuk melacak tren dan mengendalikan risiko, misalnya trialing stops atau ATR stops.

  4. Tambahkan filter menggunakan indikator lain seperti MACD, KDJ untuk mengurangi sinyal palsu.

  5. Memperbaiki aturan re-entry untuk mencegah over-trading, misalnya memberlakukan periode pendinginan.

  6. Efektivitas pengujian di pasar dan instrumen yang berbeda. Parameter perlu disesuaikan untuk pasar yang berbeda.

Ringkasan

Singkatnya, strategi crossover MA ini adalah sistem trend berikut yang sederhana dan praktis. Ini memanfaatkan kemampuan pelacakan tren MA dan menggabungkan price breakout untuk menghasilkan sinyal perdagangan. Pro adalah mudah diterapkan sementara kontra adalah whipsaws sesekali. Strategi dapat ditingkatkan lebih lanjut melalui optimasi parameter dan menambahkan indikator lain sebagai filter.


/*backtest
start: 2023-01-16 00:00:00
end: 2024-01-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Moving Average Crossover Strategy", overlay=true)

// Calculate the 45-day moving average
ma_length = 45
ma = ta.sma(close, ma_length)

// Track position entry and entry bar
var bool in_long_position = na
var int entry_bar = na
var int exit_bar = na

// Entry condition: Close price crosses above the 45-day moving average to enter the position
if (not in_long_position and ta.crossover(close, ma) and not na(ma[1]) and close > ma and close[1] < ma[1])
    in_long_position := true
    entry_bar := bar_index

// Exit condition: Close the position after holding for 8 trading days
if (in_long_position and bar_index - entry_bar >= 8)
    in_long_position := false
    exit_bar := bar_index

// Re-entry condition: Wait for price to cross over the 45-day moving average again
if (not in_long_position and ta.crossover(close, ma) and not na(ma[1]) and close > ma and close[1] > ma[1] and (na(exit_bar) or bar_index - exit_bar >= 8))
    in_long_position := true
    entry_bar := bar_index

// Execute long entry and exit
if (in_long_position)
    strategy.entry("Long", strategy.long)

if (not in_long_position)
    strategy.close("Long")

Lebih banyak