Dual Moving Average Golden Cross Quantitative Strategy adalah strategi perdagangan kuantitatif berbasis indikator teknis. Strategi ini menentukan tren pasar dengan menghitung dua rata-rata bergerak dari periode yang berbeda dan memungkinkan perdagangan berisiko rendah. Ketika rata-rata bergerak jangka pendek melintasi di atas rata-rata bergerak jangka panjang, sinyal salib emas dihasilkan untuk pergi panjang. Ketika rata-rata bergerak jangka pendek melintasi di bawah yang lebih panjang, sinyal salib kematian dihasilkan untuk pergi pendek.
Strategi kuantitatif Golden Cross Dual Moving Average didasarkan pada teori rata-rata bergerak. Rata-rata bergerak dapat secara efektif menyaring kebisingan pasar dan menunjukkan arah tren jangka panjang. Ketika rata-rata bergerak jangka pendek melintasi di atas rata-rata bergerak jangka panjang, itu menunjukkan pembalikan ke atas pasar dan merupakan sinyal beli. Ketika rata-rata bergerak jangka pendek melintasi di bawah yang lebih lama, itu menunjukkan pembalikan ke bawah dan merupakan sinyal jual. Strategi ini menetapkan dua kelompok rata-rata bergerak - yang pertama adalah rata-rata bergerak 2 hari dan 3 hari, dan yang kedua adalah rata-rata bergerak 420 hari. Sinyal pembelian 2 hari dihasilkan ketika rata-rata bergerak 3 hari melintasi di atas, dan sinyal jual dihasilkan ketika melintasi di bawah. Rata-rata bergerak 420 hari digunakan untuk menentukan tren perdagangan jangka panjang untuk menghindari pullback jangka pendek.
Logika kunci dari kode strategi adalah:
Prinsip-prinsip spesifiknya adalah:
Ini menangkap peluang pembalikan tren setelah penyesuaian jangka pendek dengan menentukan titik balik dengan penyeberangan rata-rata bergerak ganda dan menetapkan filter parameter untuk menghindari perdagangan yang salah.
Strategi Kuantitatif Golden Cross Dual Moving Average memiliki keuntungan berikut:
Strategi Kuantitatif Golden Cross Dual Moving Average juga memiliki risiko berikut:
Metode berikut dapat digunakan untuk mengurangi risiko:
Strategi Kuantitatif Rata-rata Bergerak Ganda Golden Cross juga dapat dioptimalkan dalam aspek berikut:
Optimasi parameter: Sesuaikan parameter rata-rata bergerak dan indikator saluran untuk memilih kombinasi parameter optimal. Algoritma genetik dapat membantu optimasi.
Pemilihan waktu: Pilih parameter rata-rata bergerak yang paling cocok berdasarkan karakteristik produk yang berbeda.
Optimasi strategi stop loss: Atur dynamic stop, trailing stop dll untuk menghindari pullback stop.
Optimasi perdagangan arah: Mengintegrasikan indikator tren dan mengadopsi operasi yang mengikuti tren untuk mencegah perdagangan kontra-tren.
Kombinasi pembelajaran mesin: Menggunakan LSTM, RNN dan model pembelajaran mendalam lainnya untuk membantu menilai kualitas sinyal dan menentukan waktu masuk.
Strategi Kuantitatif Golden Cross Dual Moving Average menentukan tren harga jangka pendek melalui prinsip crossover rata-rata bergerak yang sederhana. Menetapkan indikator saluran secara efektif menyaring sinyal palsu. Strategi ini memiliki logika yang mudah dan mudah diterapkan. Penyesuaian parameter yang fleksibel dimungkinkan dengan kinerja yang relatif baik yang divalidasi dalam perdagangan langsung. Ini adalah strategi kuantitatif yang direkomendasikan yang dapat ditingkatkan melalui optimasi parameter, optimasi stop loss, pembelajaran mesin dan banyak lagi untuk mencapai kinerja yang lebih baik. Strategi ini cocok untuk perdagangan algoritmik di seluruh produk seperti cryptocurrency dan saham.
/*backtest start: 2023-12-24 00:00:00 end: 2023-12-25 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // Indicator420 by SeaSide420 strategy("Indicator420 strategy", overlay=true) q=input(title="HullMA",defval=420) z=input(title="HullMA cross",defval=3) a=input(title="VWMA",defval=14) rvwma=vwma(close,round(a)) rvwma2=vwma(close,round(a*2)) rvwma3=vwma(close,round(a*3)) n2ma=2*wma(close,round(z/2)) nma=wma(close,z) diff=n2ma-nma sqn=round(sqrt(z)) n2ma1=2*wma(close[1],round(z/2)) nma1=wma(close[1],z) diff1=n2ma1-nma1 sqn1=round(sqrt(z)) n2ma2=2*wma(close[2],round(q/2)) nma2=wma(close[2],q) diff2=n2ma2-nma2 sqn2=round(sqrt(q)) n1=wma(diff,sqn) n2=wma(diff1,sqn) n3=wma(diff2,sqn) b=n1>n2?red:lime c=n1>n2?green:red d=n3>rvwma3?red:green e=rvwma2>rvwma3?green:red f=n1>n2?red:green //plot(rvwma3, color=e, linewidth=1) plot(cross(rvwma, rvwma2) ? rvwma : na, style = line,color=e, linewidth = 1) plot(cross(n1, n2) ? n1 : na, style = line,color=b, linewidth = 3) plot(cross(n1, n2) ? n1 : na, style = circles,color=c, linewidth = 4) closelong = n1<n2 if (closelong) strategy.close("Long") closeshort = n1>n2 if (closeshort) strategy.close("Short") longCondition = n1>n2 and strategy.opentrades<1 and n1<rvwma3 if (longCondition) strategy.entry("Long",strategy.long) shortCondition = n1<n2 and strategy.opentrades<1 and n1>rvwma3 if (shortCondition) strategy.entry("Short",strategy.short)