Sistem Crossover Rata-rata Bergerak Ganda

Penulis:ChaoZhang, Tanggal: 2023-09-28 15:33:14
Tag:

Gambaran umum

Sistem Crossover Triple Moving Average adalah strategi perdagangan saham yang mengikuti tren. Sistem ini menggunakan crossover dari tiga moving average dengan durasi waktu yang berbeda sebagai sinyal beli dan jual. Ketika moving average jangka pendek melintasi di atas moving average jangka menengah, dan moving average jangka menengah melintasi di atas moving average jangka panjang, sinyal beli akan dihasilkan.

Logika Strategi

Strategi ini didasarkan pada tiga rata-rata bergerak: rata-rata bergerak jangka panjang ma1, rata-rata bergerak jangka menengah ma2 dan rata-rata bergerak jangka pendek ma3.

length1 = input(18,'长线')  
length2 = input(9,'中线')
length3 = input(4,'短线')

ma1 := sma(close,length1)
ma2 := sma(close,length2) 
ma3 := sma(close,length3)

Di mana panjang1, panjang2 dan panjang3 menentukan panjang waktu dari tiga rata-rata bergerak. fungsi sma menghitung rata-rata bergerak sederhana dari harga penutupan selama panjang yang sesuai.

Kemudian menggunakan persilangan dari tiga rata-rata bergerak untuk menentukan entri dan keluar:

if ma2 > ma1 and ma3 > ma3[1]
    strategy.entry("Long", strategy.long)

if ma2 < ma1 and ma3 < ma3[1] 
    strategy.entry("Short", strategy.short)

Ketika jangka menengah ma2 melintasi di atas jangka panjang ma1, dan jangka pendek ma3 melintasi di atas periode sebelumnya s ma3, sinyal panjang dipicu.

Keuntungan dari Strategi

  • Menggunakan tiga rata-rata bergerak dapat dengan jelas mengidentifikasi perubahan tren.
  • Kombinasi periode panjang dan pendek menyaring beberapa kebisingan pasar jangka pendek dan mengunci tren jangka panjang.
  • Aturan sederhana membuatnya mudah diterapkan.
  • Parameter dapat disesuaikan untuk menyesuaikan dengan lingkungan pasar yang berbeda.

Risiko dari Strategi

  • Masuk dan keluar diidentifikasi setelah melihat kembali dan tidak dapat sepenuhnya menghindari kerugian.
  • Whipsaws terjadi ketika harga berosilasi di sekitar rata-rata bergerak.
  • Garis periode panjang yang terlalu panjang mungkin tidak melihat titik balik tren. Garis periode pendek yang terlalu pendek dapat memicu perdagangan yang sering karena kebisingan.
  • Tidak menangani berbagai pasar dengan baik.

Risiko ini dapat dikurangi melalui optimasi parameter yang tepat, menambahkan filter dengan indikator lain dll.

Arah Peningkatan

  • Backtest kombinasi parameter yang berbeda untuk menemukan nilai optimal.
  • Tambahkan stop loss ke kontrol loss.
  • Tambahkan indikator lain untuk menilai momentum dan divergensi untuk menghindari sinyal palsu.
  • Pilih strategi mengambil keuntungan yang tepat sesuai dengan situasi yang sebenarnya.

Ringkasan

Strategi Triple Moving Average Crossover adalah strategi yang sederhana dan praktis mengikuti tren. Strategi ini mengidentifikasi perubahan arah tren berdasarkan penyeberangan tiga rata-rata bergerak untuk menghasilkan sinyal perdagangan. Keuntungan dari strategi ini adalah aturan sederhana dan pelacakan tren yang efektif, membuatnya cocok untuk perdagangan jangka menengah hingga panjang. Namun, ada juga risiko sinyal palsu dan penarikan. Strategi dapat ditingkatkan dengan mengoptimalkan parameter, menambahkan indikator pendukung, dll untuk beradaptasi dengan lingkungan pasar yang berbeda. Secara keseluruhan, Triple Moving Average Crossover adalah strategi perdagangan algoritmik mendasar yang memberikan titik awal yang baik untuk belajar perdagangan kuantitatif.


/*backtest
start: 2023-08-28 00:00:00
end: 2023-09-27 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © dongyun

//@version=4
strategy("三重交叉修正模式系统", overlay=true)
//strategy.risk.allow_entry_in(strategy.direction.long)
length1 = input(18,'长线')
length2 = input(9,'中线')
length3 = input(4,'短线')

ma1 =0.0
ma2 = 0.0
ma3 = 0.0

ma1 := sma(close,length1)
ma2 := sma(close,length2)
ma3 := sma(close,length3)

plot(ma1)
plot(ma2)
plot(ma3)

if ma2 > ma1 and ma3 > ma3[1]
	strategy.entry("Long", strategy.long, when=strategy.position_size <= 0)

if ma2 < ma1 and ma3 < ma3[1]
	strategy.entry("Short", strategy.short, when=strategy.position_size > 0)

Lebih banyak