Strategi crossover moving average adalah strategi perdagangan kuantitatif

Penulis:ChaoZhang, Tanggal: 2023-12-22 13:28:01
Tag:

img

Gambaran umum

Strategi crossover rata-rata bergerak adalah strategi perdagangan kuantitatif yang didasarkan pada rata-rata bergerak sederhana (SMA).

Secara khusus, strategi ini menghitung SMA 9 periode dan 45 periode. Ketika harga melintasi di atas kedua garis SMA, sinyal beli dihasilkan. Ketika harga melintasi di bawah kedua garis, sinyal jual dipicu.

Logika Strategi

Logika inti dari strategi ini didasarkan pada golden cross dan dead cross prinsip rata-rata bergerak. moving average dapat secara efektif menyaring kebisingan pasar dan menunjukkan perubahan tren utama. Ketika MA jangka pendek melintasi di atas MA jangka panjang, itu menandakan pembalikan tren naik.

Secara khusus, strategi ini menggunakan rata-rata bergerak sederhana 9 periode dan 45 periode. Garis 9 periode mewakili tren jangka pendek sementara garis 45 periode menangkap pergerakan jangka panjang. Ketika harga melintasi di atas kedua garis SMA, ini menunjukkan harga berada di saluran naik baik jangka pendek maupun jangka panjang, sehingga memicu entri panjang. Perpindahan sebaliknya menunjukkan melemahnya momentum naik dan memicu sinyal keluar.

Dari sudut pandang kode, strategi pertama menghitung nilai SMA 9 periode dan 45 periode. Kemudian menggunakan fungsi ta.crossover dan ta.crossunder untuk mendeteksi salib emas dan salib mati antara dua garis MA. Ketika sinyal beli dan jual dipicu, fungsi plot shape menggambar segitiga dan segitiga terbalik pada grafik harga.

Selain itu, logika stop-loss diimplementasikan untuk mengelola exit perdagangan. Secara khusus, harga tinggi dan rendah dari bar sebelumnya diekstraksi sebagai harga stop-loss setelah membuka perdagangan baru. Ini memungkinkan strategi untuk mengunci keuntungan dan mencegah kerugian besar.

Analisis Keuntungan

  • Pengaturan rata-rata bergerak ganda menangkap pergeseran tren jangka menengah hingga panjang sambil menyaring kebisingan jangka pendek, meningkatkan kualitas sinyal.

  • Mekanisme stop-loss secara efektif mengendalikan risiko dan kunci keuntungan.

  • Logika sederhana dan mudah diterapkan, cocok untuk pemula.

  • Penggunaan modal yang tinggi untuk keuntungan komposit.

Analisis Risiko

  • Strategi MA ganda cenderung menghasilkan whipsaws dan sinyal yang tidak valid selama pasar bergolak.

  • Penempatan stop loss konservatif tidak dapat melacak tren secara efektif.

  • Pemilihan parameter yang tidak optimal dapat menyebabkan overtrading atau frekuensi perdagangan yang tidak cukup.

  • Tidak mampu beradaptasi dengan perubahan tren yang besar.

Solusi:

  1. Mengoptimalkan parameter MA untuk mengurangi sinyal palsu

  2. Mengimplementasikan berhenti dinamis mengikuti tren

  3. Tambahkan filter menggunakan indikator lain

  4. Penolakan manual di sekitar pembalikan besar

Arahan Optimasi

Perbaikan lebih lanjut untuk strategi:

  1. Gunakan MAs adaptif atau eksponensial untuk menangkap tren dengan lebih baik.

  2. Tambahkan filter volatilitas untuk menghindari sinyal palsu selama pasar berkisar.

  3. Melakukan optimasi parameter untuk kombinasi parameter terbaik.

  4. Mengintegrasikan mekanisme mengikuti tren ke dalam logika stop-loss.

  5. Tambahkan analisis support-resistance untuk menghindari sinyal di sekitar tingkat kunci.

  6. Manfaatkan pembelajaran mesin untuk lebih menyaring kualitas sinyal.

Kesimpulan

Sistem crossover rata-rata bergerak adalah pendekatan yang sederhana namun efektif mengikuti tren. Dengan menyaring kebisingan dan melacak tren jangka menengah, ini menghasilkan sinyal berkualitas. Dengan stop loss yang tepat, ini memungkinkan perdagangan tren yang dikelola risiko. Logika sederhana juga membuatnya ideal untuk pemula untuk dipraktekkan. Optimasi lebih lanjut dapat mengintegrasikan strategi ini sebagai komponen efektif dari sistem kuantum keseluruhan.


/*backtest
start: 2022-12-15 00:00:00
end: 2023-12-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

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

// Input parameters
fast_length = input(9, title="Fast SMA Length")
slow_length = input(45, title="Slow SMA Length")

// Calculate moving averages
fast_sma = ta.sma(close, fast_length)
slow_sma = ta.sma(close, slow_length)

// Buy condition
buy_condition = ta.crossover(close, fast_sma) and ta.crossover(close, slow_sma)

// Sell condition
sell_condition = ta.crossunder(close, fast_sma) and ta.crossunder(close, slow_sma)

// Calculate stop loss levels
prev_low = request.security(syminfo.tickerid, "1D", low[1], lookahead=barmerge.lookahead_on)
prev_high = request.security(syminfo.tickerid, "1D", high[1], lookahead=barmerge.lookahead_on)

// Plot signals on the chart
plotshape(buy_condition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(sell_condition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)

// Strategy exit conditions
long_stop_loss = sell_condition ? prev_low : na
short_stop_loss = buy_condition ? prev_high : na

strategy.exit("Long Exit", from_entry="Long", when=sell_condition, stop=long_stop_loss)
strategy.exit("Short Exit", from_entry="Short", when=buy_condition, stop=short_stop_loss)

strategy.entry("Long", strategy.long, when=buy_condition)
strategy.entry("Short", strategy.short, when=sell_condition)


Lebih banyak