Momentum Strategi Rata-rata Bergerak Ganda

Penulis:ChaoZhang, Tanggal: 2023-11-17 17:00:32
Tag:

img

Gambaran umum

Strategi ini menggunakan metode crossover rata-rata bergerak ganda momentum untuk menerapkan perdagangan berisiko rendah. Ini menggunakan dua rata-rata bergerak dari periode yang berbeda, garis cepat dan garis lambat, untuk menentukan sinyal masuk dan keluar berdasarkan crossover mereka. Tujuan dari strategi ini adalah untuk menangkap perubahan tren dan menghasilkan keuntungan jangka panjang selama tren utama.

Logika Strategi

Strategi ini menghasilkan sinyal perdagangan berdasarkan persilangan garis WMA cepat dan garis WMA lambat. Periode garis cepat adalah setengah dari periode garis lambat. Sinyal beli dihasilkan ketika garis cepat melintasi garis lambat dari bawah. Sinyal jual dihasilkan ketika garis cepat melintasi garis lambat dari atas. Untuk menyaring sinyal palsu, juga menggabungkan indikator momentum berdasarkan perbedaan antara dua moving average. Sinyal perdagangan hanya dihasilkan ketika persilangan MA terjadi bersamaan dengan indikator momentum memenuhi persyaratan bentuk.

Secara khusus, logika kunci meliputi:

  1. Mendefinisikan input harga dan parameter: mendapatkan data harga OHLC; mendefinisikan parameter HullMA periode z, data harga p.

  2. Menghitung MA ganda: menghitung MA 2 periode n2ma, MA periode z nma.

  3. Menghitung perbedaan MA: menghitung perbedaan antara dua MA yang berbeda.

  4. Perhitungan indikator momentum: hitung rata-rata bergerak dari dif - n1, n2, n3 dengan periode sqn.

  5. Tentukan crossover: tanda n1 di atas n2 sebagai hijau, jika tidak merah.

  6. Bentuk plot: plot n1 dan n2.

  7. Mengidentifikasi sinyal: menghasilkan sinyal ketika n1, n2, n3 sejajar ke arah yang sama.

  8. Masuk dan keluar: pergi panjang ketika garis cepat di atas garis lambat dan indikator momentum setuju; pergi pendek ketika garis cepat di bawah garis lambat dan indikator momentum setuju.

Keuntungan

Menggabungkan lintas MA ganda dan indikator momentum, strategi ini dapat secara efektif menyaring sinyal palsu dan hanya menghasilkan perdagangan pada awal perubahan tren, sehingga menghasilkan kinerja strategi yang baik.

  1. MA crossover mendeteksi perubahan tren, mengambil keuntungan dari tren.

  2. Indikator momentum menyaring sinyal palsu, menghindari tertipu oleh fluktuasi jangka pendek.

  3. Hanya perdagangan pada perubahan tren utama yang mengurangi frekuensi perdagangan yang tidak perlu.

  4. Optimasi parameter sesuai dengan karakteristik produk yang berbeda.

  5. Mengizinkan beberapa tingkat piramida memperpanjang siklus keuntungan.

Risiko

Ada juga beberapa risiko yang harus diketahui:

  1. Dual MA crossover memiliki keterlambatan dalam mendeteksi perubahan tren, berpotensi kehilangan waktu terbaik.

  2. Pengaturan parameter yang tidak benar pada indikator momentum dapat menghasilkan sinyal yang buruk.

  3. Ada ketidakseimbangan antara periode penahan yang panjang dan pendek.

  4. Strategi ini tidak memiliki mekanisme untuk menangani kondisi pasar yang bergolak dengan baik.

  5. Risiko optimasi berlebihan ada, yang membutuhkan optimasi parameter bertahap.

Beberapa solusi:

  1. Pertimbangkan untuk menambahkan indikator utama lainnya untuk mendeteksi perubahan harga lebih awal.

  2. Mengoptimalkan parameter indikator momentum untuk menemukan kombinasi terbaik.

  3. Tambahkan indikator volatilitas ke periode penyimpanan kontrol.

  4. Batasi ukuran posisi untuk mengurangi kerugian tunggal.

  5. Uji robusitas parameter untuk menghindari optimasi yang berlebihan.

Arah Peningkatan

Strategi ini dapat ditingkatkan dalam hal berikut:

  1. Uji berbagai jenis MA untuk menemukan parameter optimal untuk setiap produk.

  2. Tambahkan indikator lain seperti MACD, Bollinger Bands untuk menentukan perubahan tren.

  3. Optimalkan waktu masuk untuk secara akurat menentukan titik balik.

  4. Mengoptimalkan exit menggunakan trailing stop untuk mengunci keuntungan.

  5. Melakukan optimasi parameter sesuai dengan karakteristik produk.

  6. Gunakan pembelajaran mesin untuk menemukan kombinasi parameter yang optimal.

  7. Membangun mekanisme ukuran posisi dinamis untuk mengendalikan risiko.

  8. Tambahkan metrik kuantitatif seperti rasio Sharpe, faktor keuntungan untuk evaluasi strategi.

  9. Evaluasi kinerja pada data historis menggunakan mesin backtesting.

Ringkasan

Singkatnya, strategi MA momentum ganda ini mengidentifikasi titik pembalikan tren utama menggunakan MA crossover dan momentum, memungkinkan perdagangan berisiko rendah. Ini memiliki keuntungan seperti keuntungan yang stabil dan implementasi sederhana, tetapi juga masalah untuk ditingkatkan seperti optimasi parameter dan kontrol risiko. Kita dapat memperbaiki bidang seperti waktu masuk / keluar, ukuran posisi dinamis untuk lebih beradaptasi dengan kondisi pasar. Validasi dan evaluasi yang ekstensif sangat penting untuk memastikan kinerja strategi yang kuat. Secara keseluruhan, strategi ini menyediakan pendekatan sederhana namun efektif untuk perdagangan kuantitatif, tetapi membutuhkan optimasi dan validasi terus menerus untuk menghasilkan pengembalian investasi yang konsisten.


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

//@version=2
//OCTOPUS Indicator Strategy
strategy("FAVEL corp. Indicator Strategy", shorttitle="FAVEL corp. Monarch", overlay=true, default_qty_type=strategy.percent_of_equity, max_bars_back=420, default_qty_value=20, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0)
z=input(defval=60,title="HullMA cross")
p=input(ohlc4,title="Price data")
n2ma=2*wma(p,round(z/2))
nma=wma(p,z)
diff=n2ma-nma
sqn=round(sqrt(z))
n2ma1=2*wma(p[1],round(z/2))
nma1=wma(p[1],z)
diff1=n2ma1-nma1
sqn1=round(sqrt(z))
n2ma2=2*wma(p[2],round(z/2))
nma2=wma(p[2],z)
diff2=n2ma2-nma2
sqn2=round(sqrt(z))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
n3=wma(diff2,sqn)
c=n1>n2?green:red
n1e=plot(n1, color=c, linewidth=1, offset=2)
n2e=plot(n2, color=c, linewidth=1, offset=2)
fill(n1e, n2e, color=c, transp=75)
plot(cross(n1, n2) ? n1 : na, style = circles,color=c, linewidth = 4)
closelong = p<p[1] and n1<n3
if (closelong)
    strategy.close("BUY")
closeshort = p>p[1] and n1>n3
if (closeshort)
    strategy.close("SELL")
longCondition = strategy.opentrades<1 and n1>n2 and p>p[1] and n1>n3
if (longCondition)
    strategy.entry("BUY",strategy.long)
shortCondition = strategy.opentrades<1 and n1<n2 and p<p[1] and n1<n3
if (shortCondition)
    strategy.entry("SELL",strategy.short)

Lebih banyak