Strategi ini menggunakan dua garis EVWMA dengan periode yang berbeda untuk menghasilkan crossover dan menghasilkan sinyal beli dan jual. Ketika garis periode pendek melintasi garis periode panjang, itu menghasilkan sinyal beli. Ketika garis periode pendek melintasi di bawah garis periode panjang, itu menghasilkan sinyal jual.
Strategi ini mengidentifikasi perubahan tren dengan menghitung dan melintasi dua garis EVWMA dengan periode yang berbeda.
Secara khusus, pertama-tama menghitung dua baris EVWMA:
Garis jangka pendek m1, dengan panjang periode1, default menjadi 5
Garis jangka panjang m2, dengan panjang periode2, default menjadi 40
Kemudian menggunakan fungsi crossover dan crossunder untuk menentukan situasi crossover antara m1 dan m2:
Jika m1 melintasi m2, itu menghasilkan sinyal beli dan mengeksekusi operasi panjang
Jika m1 melintasi di bawah m2, itu menghasilkan sinyal jual dan menjalankan operasi pendek
Perhatikan bahwa EVWMA memberikan lebih banyak bobot untuk data terbaru dibandingkan dengan rata-rata bergerak sederhana.
data = (nz(data[1]) * (nb_floating_shares - volume)/nb_floating_shares) + (volume_price/nb_floating_shares)
dimana nz ((data[1]) adalah nilai EVWMA periode sebelumnya, nb_floating_shares adalah total volume periode, volume adalah volume periode saat ini, dan volume_price adalah omset periode saat ini.
Keuntungan dari strategi ini meliputi:
EVWMA merespons perubahan harga lebih cepat dan meningkatkan peluang keuntungan
Crossover dari jalur EVWMA ganda mengidentifikasi titik balik tepat waktu
Logika sederhana dan mudah diterapkan
Panjang periode yang dapat disesuaikan untuk menyesuaikan lingkungan pasar yang berbeda
Tidak perlu optimasi parameter yang kompleks dan mudah untuk perdagangan langsung
Ada juga beberapa risiko dengan strategi ini:
Crossover dapat menghasilkan sinyal yang berlebihan yang tidak valid tanpa menyaring kebisingan pasar
Sulit untuk mengidentifikasi titik pembalikan tren dan risiko hilangnya pembalikan
Tidak ada stop loss atau mengambil keuntungan, tidak dapat secara efektif mengendalikan risiko
Optimasi parameter yang tidak cukup menyebabkan pengaturan periode yang tidak tepat
Beberapa arah untuk meningkatkan strategi:
Tambahkan stop loss dan mengambil keuntungan untuk mengontrol risiko secara ketat
Mengoptimalkan panjang periode untuk menemukan parameter terbaik
Tambahkan filter volume untuk mengurangi perdagangan yang tidak valid
Gabungkan dengan indikator pembalikan untuk menghindari pembalikan yang hilang
Mengoptimalkan parameter secara dinamis berdasarkan perubahan pasar
Membedakan pasar bull dan bear dan menggunakan parameter yang berbeda
Memperkenalkan model pembelajaran mesin untuk menentukan waktu perdagangan berdasarkan data besar
Singkatnya, strategi silang EVWMA ini dapat secara efektif mengidentifikasi perubahan tren dan menghasilkan sinyal perdagangan dengan menghitung dan melintasi garis EVWMA ganda. Logika sederhana tetapi ada risiko dan arah perbaikan. Dengan mengoptimalkan stop loss, pemilihan parameter, mengintegrasikan indikator lain dll, strategi dapat diperkuat untuk perdagangan langsung. Secara keseluruhan, ini adalah eksplorasi yang bermanfaat dari strategi silang rata-rata bergerak dan layak penelitian dan aplikasi lebih lanjut.
/*backtest start: 2023-08-18 00:00:00 end: 2023-08-26 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("Elastic Volume Weighted Moving Average Cross Strategy", shorttitle="EVWMA Cross", overlay=true) length1=input(5, title="EVWMA Short") length2=input(40, title="EVWMA Long") nbfs1=sum(volume, length1) nbfs2=sum(volume, length2) medianSrc=close calc_evwma(price, length, nb_floating_shares) => data = (nz(data[1]) * (nb_floating_shares - volume)/nb_floating_shares) + (volume*price/nb_floating_shares) data m1=calc_evwma(medianSrc, length1, nbfs1) m2=calc_evwma(medianSrc, length2, nbfs2) if (crossover(m1, m2)) strategy.entry("MA2CrossLE", strategy.long, comment="MA2CrossLE") if (crossunder(m1, m2)) strategy.entry("MA2CrossSE", strategy.short, comment="MA2CrossSE") p1=plot(m1,color=orange,linewidth=2, title="evwma") p2=plot(m2,color=orange,linewidth=2, title="evwma")