Strategi Perdagangan Rata-rata Bergerak Ganda

Penulis:ChaoZhang, Tanggal: 2024-01-26 14:45:55
Tag:

img

Gambaran umum

Strategi perdagangan rata-rata bergerak ganda adalah strategi perdagangan kuantitatif yang membangun sinyal perdagangan menggunakan dua garis rata-rata bergerak dengan siklus yang berbeda.

Prinsip Strategi

Teknik inti yang digunakan oleh strategi ini adalah analisis dua garis rata-rata bergerak. Strategi mendefinisikan garis rata-rata bergerak siklus pendek 5 hari ma0 dan garis rata-rata bergerak siklus panjang 21 hari ma1. Dengan membandingkan nilai perbedaan osc0 antara harga dan ma0 dan osc1 antara ma0 dan ma1, strategi menentukan status tren saat ini.

Ketika osc0>0 dan osc1>0, berarti garis rata-rata bergerak jangka pendek telah melintasi di atas garis jangka panjang, menunjukkan tren bullish. Ketika osc0<0 dan osc1<0, berarti garis jangka pendek telah melintasi di bawah, menunjukkan tren penurunan. Strategi mengambil posisi panjang ketika tren bullish diidentifikasi dan mengambil posisi pendek ketika tren penurunan diidentifikasi.

Setelah mengambil posisi, strategi terus memantau perubahan real-time dari osc0 dan osc1 untuk menilai rentang keuntungan posisi. Ketika osc0<0 dan osc1<0 setelah mengambil posisi panjang, itu berarti pembalikan tren, jadi posisi panjang harus ditutup. Ketika osc0>0 dan osc1>0 setelah mengambil posisi pendek, itu juga berarti pembalikan, jadi posisi pendek harus ditutup.

Analisis Keuntungan

Strategi perdagangan rata-rata bergerak ganda memiliki keuntungan berikut:

  1. Prinsip sederhana dan mudah dipahami dan diterapkan, cocok untuk pemula perdagangan kuantitatif;

  2. Mengikuti tren, baik dalam melacak tren pasar dengan keuntungan yang layak;

  3. Parameter siklus rata-rata bergerak dapat disesuaikan untuk kondisi pasar yang berbeda;

  4. Dapat dikombinasikan dengan indikator atau strategi lain untuk keuntungan yang lebih besar.

Analisis Risiko

Ada juga beberapa risiko dengan strategi ini:

  1. Kegagalan untuk keluar dari posisi tepat waktu ketika tren berbalik, dapat menyebabkan kerugian besar;

  2. Sulit untuk mendapatkan keuntungan di pasar yang terikat rentang karena sering terjadi stop loss;

  3. Sulit untuk mengoptimalkan parameter seperti siklus 5 hari dan 21 hari;

  4. Sinyal perdagangan yang tertinggal, masuk pasar yang terlambat, dapat mempengaruhi tingkat keuntungan.

Arahan Optimasi

Strategi perdagangan rata-rata bergerak ganda dapat dioptimalkan dari aspek berikut:

  1. Gabungkan dengan VOL untuk mengkonfirmasi awal tren yang sebenarnya, hindari pecah palsu;

  2. Tambahkan filter lain seperti price breakout, ekspansi volume untuk memastikan keandalan sinyal;

  3. Mengatur berhenti dinamis untuk memotong kerugian dalam waktu;

  4. Mengoptimalkan parameter seperti ambang batas perbedaan rata-rata bergerak untuk mengurangi kesalahan;

  5. Menggunakan pembelajaran mesin untuk mengoptimalkan siklus rata-rata bergerak.

Kesimpulan

Sebagai kesimpulan, Strategi Trading Dual Moving Average adalah strategi yang cukup klasik dan praktis untuk mengikuti tren. Strategi ini memiliki logika yang sederhana bagi pemula untuk dipraktekkan, baik dalam melacak tren, sangat dapat diperluas untuk dikombinasikan dengan teknik lain.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("[STRATEGY][RS]MA Strategy test V0", overlay=true)
length0 = input(5)
length1 = input(21)

isinsession = not na(time('1', '0400-1500'))
price = open

ma0 = ema(ema(price, length0), length0)
ma1 = ema(ema(price, length1), length1)
plot(ma0, color=navy)
plot(ma1, color=black)

osc0 = price-ma0
osc1 = ma0-ma1

isbull = osc0 > 0 and osc1 > 0
buy_condition = isinsession and isbull and not isbull[1]
buy_exit_condition = osc0 < 0 and osc1 < 0
strategy.entry("buy", strategy.long, comment="buy", when=buy_condition)
strategy.close(id='buy', when=buy_exit_condition)

isbear = osc0 < 0 and osc1 < 0
sell_condition = isinsession and isbear and not isbear[1]
sell_exit_condition = osc0 > 0 and osc1 > 0
strategy.entry("sell", strategy.short, comment="sell", when=sell_condition)
strategy.close(id='sell', when=sell_exit_condition)

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

Lebih banyak