Strategi penyeberangan rata-rata bergerak multi-level untuk Quant Masters

Penulis:ChaoZhang, Tanggal: 2024-01-12 12:11:02
Tag:

img

Gambaran umum

Strategi ini memanfaatkan prinsip penyeberangan garis rata-rata bergerak multi-tingkat untuk menangkap tren jangka menengah dan panjang dan mencapai keuntungan yang stabil. Ini menggunakan tiga set rata-rata bergerak cepat, menengah, dan lambat dengan parameter yang berbeda dan membuat keputusan perdagangan berdasarkan persilangan mereka. Dibandingkan dengan strategi tradisional dengan hanya dua set rata-rata bergerak, strategi penyeberangan rata-rata bergerak multi-tingkat ini dapat menyaring lebih banyak sinyal palsu dan meningkatkan tingkat kemenangan strategi.

Logika Strategi

Strategi ini menggunakan tiga set rata-rata bergerak: rata-rata bergerak cepat MAshort, rata-rata bergerak kecepatan menengah MAmid, dan rata-rata bergerak lambat MAlong. MAshort memiliki parameter 9, merespon tercepat, dan digunakan untuk menangkap sinyal jangka pendek; MAmid memiliki parameter 50, memiliki kecepatan menengah dan digunakan untuk mengkonfirmasi tren; MAlong memiliki parameter 100, merespon paling lambat dan digunakan untuk menentukan arah tren jangka panjang.

Logika perdagangan spesifik dari strategi ini adalah: ketika garis rata-rata bergerak kecepatan menengah MAmid melintasi di atas garis rata-rata bergerak lambat MAlong, ini menunjukkan bahwa momentum kenaikan harga saham sedang terbentuk. Pada saat ini, strategi berjalan panjang; ketika rata-rata bergerak cepat MAshort melintasi di bawah rata-rata bergerak kecepatan menengah MAmid, ini menunjukkan bahwa pembalikan tren jangka pendek telah terjadi, dan strategi keluar dari posisinya pada saat ini.

Keuntungan terbesar dari strategi ini adalah bahwa dengan menggabungkan beberapa rata-rata bergerak, dapat secara efektif menyaring sinyal palsu dan hanya memilih breakout yang relatif kuat selama tren naik jangka menengah untuk membuka posisi panjang.

Analisis Keuntungan

Keuntungan dari strategi ini adalah:

  1. Parameter strategi dioptimalkan untuk secara efektif mencocokkan tren jangka menengah dan panjang dengan tingkat kemenangan yang relatif tinggi.
  2. Desain rata-rata bergerak multi-level menyaring kebisingan dan sinyal palsu.
  3. Ini cocok untuk semua jenis saham dan cryptocurrency dengan hasil backtesting historis yang relatif baik.
  4. Frekuensi operasi rendah dan setiap posisi pembukaan menempati 30% dari dana dan risikonya dapat dikendalikan.
  5. Periode waktu dapat dikonfigurasi, yang memberikan fleksibilitas untuk perdagangan langsung.

Analisis Risiko

Strategi ini juga memiliki risiko berikut:

  1. Kemungkinan pembalikan tren jangka panjang relatif kecil tetapi ketika itu terjadi, besarnya stop loss mungkin besar.
  2. Frekuensi perdagangan rendah dan karenanya memiliki masalah penggunaan modal yang tidak efisien.
  3. Parameter strategi perlu dioptimalkan untuk berbagai jenis perdagangan, yang membatasi ruang lingkup yang berlaku.

Untuk mengatasi risiko-risiko ini, kami akan memperluas penerapan strategi sambil mengendalikan penarikan maksimum dengan teknik stop loss.

Arahan Optimasi

Strategi ini juga dapat dioptimalkan dengan cara berikut:

  1. Mengoptimalkan parameter hari rata-rata bergerak untuk menemukan kombinasi parameter terbaik
  2. Tambahkan indikator volume untuk mengkonfirmasi dan menghindari masalah penyesuaian kurva
  3. Atur kerugian maksimum untuk strategi, seperti 20% maksimum penarikan, untuk memaksa stop loss
  4. Mengintegrasikan model pembelajaran mesin untuk menilai tren dan meningkatkan kemampuan beradaptasi strategi

Ringkasan

Strategi ini termasuk dalam strategi kuantitatif jangka menengah dan panjang yang khas yang, dengan premis mengendalikan risiko perdagangan, terus-menerus menghasilkan keuntungan dengan mencocokkan rata-rata bergerak multi-level dengan tren jangka menengah dan panjang. Dibandingkan dengan satu indikator, strategi ini menggabungkan beberapa parameter dan dapat secara efektif mengidentifikasi sinyal tren jangka menengah dan panjang yang kuat. Melalui optimalisasi lebih lanjut, strategi ini dapat diterapkan pada lebih banyak varietas dan memainkan peran penting dalam perdagangan kuantitatif.


/*backtest
start: 2023-12-12 00:00:00
end: 2024-01-11 00:00:00
period: 1h
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/
// © Coinrule

//@version=4
strategy(shorttitle='Multi Moving Average Crossing',title='Multi Moving Average Crossing (by Coinrule)', overlay=true, initial_capital=1000,  default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1)

//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2020, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => true       // create function "within window of time"

//MA inputs and calculations
inlong=input(100, title='MAlong')
inmid=input(50, title='MAmid')
inshort=input(9, title='MAfast')

MAlong = sma(close, inlong)
MAshort= sma(close, inshort)
MAmid= sma(close, inmid)


//Entry 
bullish = crossover(MAmid, MAlong)

strategy.entry(id="long", long = true, when = bullish and window())

//Exit
bearish = crossunder(MAshort, MAmid)

strategy.close("long", when = bearish and window())

plot(MAshort, color=color.orange, linewidth=2)
plot(MAmid, color=color.red, linewidth=2)
plot(MAlong, color=color.blue, linewidth=2)


Lebih banyak