Strategi penyeberangan purata bergerak pelbagai peringkat untuk Quant Masters

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

img

Ringkasan

Strategi ini menggunakan prinsip penyeberangan garis purata bergerak pelbagai peringkat untuk menangkap trend jangka menengah dan mencapai keuntungan yang stabil. Ia menggunakan tiga set purata bergerak cepat, sederhana, dan perlahan dengan parameter yang berbeza dan membuat keputusan perdagangan berdasarkan persilangan mereka. Berbanding dengan strategi tradisional dengan hanya dua set purata bergerak, strategi penyeberangan purata bergerak pelbagai peringkat ini dapat menapis lebih banyak isyarat palsu dan meningkatkan kadar kemenangan strategi.

Logika Strategi

Strategi ini menggunakan tiga set purata bergerak: purata bergerak pantas MAshort, purata bergerak kelajuan sederhana MAmid, dan purata bergerak perlahan MAlong. MAshort mempunyai parameter 9, bertindak balas paling cepat, dan digunakan untuk menangkap isyarat jangka pendek; MAmid mempunyai parameter 50, mempunyai kelajuan sederhana dan digunakan untuk mengesahkan trend; MAlong mempunyai parameter 100, bertindak balas paling perlahan dan digunakan untuk menentukan arah trend jangka panjang.

Logik dagangan khusus strategi ini ialah: apabila garis purata bergerak kelajuan sederhana MAmid melintasi di atas garis purata bergerak perlahan MAlong, ia menunjukkan bahawa momentum kenaikan harga saham terbentuk. Pada masa ini, strategi berjalan panjang; apabila purata bergerak pantas MAshort melintasi di bawah purata bergerak kelajuan sederhana MAmid, ia menunjukkan bahawa pembalikan trend jangka pendek telah berlaku, dan strategi keluar dari posisinya pada masa ini.

Kelebihan terbesar strategi ini adalah bahawa dengan menggabungkan pelbagai purata bergerak, ia dapat menapis isyarat palsu dengan berkesan dan hanya memilih pecah yang agak kuat semasa trend menaik jangka sederhana untuk membuka kedudukan panjang.

Analisis Kelebihan

Kelebihan strategi ini ialah:

  1. Parameter strategi dioptimumkan untuk menyamai dengan berkesan trend jangka sederhana dan panjang dengan kadar kemenangan yang agak tinggi.
  2. Reka bentuk purata bergerak pelbagai peringkat menapis bunyi bising dan isyarat palsu.
  3. Ia sesuai untuk semua jenis saham dan mata wang kripto dengan hasil backtesting sejarah yang agak baik.
  4. Frekuensi operasi adalah rendah dan setiap kedudukan pembukaan menduduki 30% daripada dana dan risiko boleh dikawal.
  5. Tempoh masa boleh dikonfigurasi, yang memberikan fleksibiliti untuk perdagangan langsung.

Analisis Risiko

Strategi ini juga mempunyai risiko berikut:

  1. Kemungkinan pembalikan trend jangka panjang adalah agak kecil tetapi apabila ia berlaku, magnitud stop loss mungkin besar.
  2. Frekuensi perdagangan adalah rendah dan oleh itu mempunyai masalah penggunaan modal yang tidak cekap.
  3. Parameter strategi perlu dioptimumkan untuk pelbagai jenis perdagangan, yang mengehadkan skop yang boleh digunakan.

Untuk menangani risiko ini, kami akan memperluaskan lagi penerapan strategi sambil mengawal pengeluaran maksimum dengan teknik stop loss.

Arahan pengoptimuman

Strategi ini juga boleh dioptimumkan dengan cara berikut:

  1. Mengoptimumkan parameter hari purata bergerak untuk mencari kombinasi parameter terbaik
  2. Tambah penunjuk jumlah untuk mengesahkan dan mengelakkan masalah pemasangan lengkung
  3. Tetapkan kerugian maksimum untuk strategi, seperti 20% pengeluaran maksimum, untuk memaksa stop loss
  4. Menggabungkan model pembelajaran mesin untuk menilai trend dan meningkatkan kesesuaian strategi

Ringkasan

Strategi ini termasuk dalam strategi kuantitatif jangka menengah dan panjang yang tipikal yang, dengan premis mengawal risiko perdagangan, terus mendapat keuntungan dengan mencocokkan purata bergerak pelbagai peringkat dengan trend jangka menengah dan panjang. Berbanding dengan satu penunjuk, strategi ini menggabungkan beberapa parameter dan dapat mengenal pasti isyarat trend jangka menengah dan panjang yang kuat. Melalui pengoptimuman lanjut, strategi ini boleh digunakan untuk lebih banyak jenis dan memainkan peranan 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 lanjut