Strategi ini menggunakan dua rata-rata bergerak berat elastis dengan periode yang berbeda (EVWMA) untuk melakukan operasi silang untuk menghasilkan sinyal beli dan jual. Sinyal beli dihasilkan ketika melintasi garis siklus panjang pada garis siklus pendek; Sinyal jual dihasilkan ketika melintasi garis siklus panjang di bawah garis siklus pendek.
Strategi ini menilai perubahan tren dengan menghitung garis EVWMA dari periode yang berbeda dan membiarkan mereka beroperasi silang.
Secara khusus, pertama-tama, ia menghitung dua garis EVWMA:
Garis periode pendek m1, periode panjang 1, default adalah 5
Panjang periodik m2, periode length2, default adalah 40
Kemudian, ia menilai persilangan m1 dan m2 dengan fungsi crossover dan crossunder:
Jika m1 di atas m2, maka akan menghasilkan sinyal beli dan melakukan operasi long
Jika m1 melewati m2, maka menghasilkan sinyal jual, melakukan operasi short
Perlu dicatat bahwa EVWMA berbeda dengan rata-rata bergerak biasa, yang memberikan bobot yang lebih tinggi pada data terbaru sehingga dapat lebih cepat menanggapi perubahan harga. Rumus perhitungan adalah sebagai berikut:
data = (nz(data[1]) * (nb_floating_shares - volume)/nb_floating_shares) + (volume_price/nb_floating_shares)
di mana nz ((data[1]) menunjukkan nilai EVWMA periode sebelumnya, nb_floating_shares menunjukkan total volume transaksi dalam periode tersebut, volume menunjukkan volume transaksi periode saat ini, volume_price menunjukkan volume transaksi periode saat ini. Dengan demikian, data terbaru diberikan lebih banyak bobot.
Strategi ini memiliki keuntungan sebagai berikut:
Menggunakan EVWMA dapat merespons perubahan harga lebih cepat dan meningkatkan peluang untuk mendapatkan keuntungan
Dengan menggunakan dua garis EVWMA yang saling melintang dapat menemukan titik perubahan tren, dan masuk tepat waktu.
Operasi sederhana dan mudah dilakukan
Panjang siklus yang dapat disesuaikan untuk menyesuaikan dengan kondisi pasar yang berbeda
Tidak perlu mengoptimalkan parameter yang rumit, mudah untuk hard disk
Strategi ini juga memiliki beberapa risiko:
Garis ganda tidak dapat menyaring kebisingan pasar dan dapat menghasilkan banyak sinyal tidak efektif
Tidak dapat menentukan titik baliknya, ada risiko untuk melewatkan perputaran
Mekanisme penangguhan kerusakan tanpa batas, tidak dapat mengontrol risiko secara efektif
Parameter tidak dioptimalkan dengan baik, dan siklus garis yang tidak tepat dapat merusak efek
Strategi ini dapat dioptimalkan dalam beberapa hal:
Meningkatkan strategi penghentian kerugian dan pengendalian risiko
Optimalkan panjang siklus garis, pilih parameter terbaik
Menambahkan sinyal penyaringan volume transaksi untuk mengurangi transaksi yang tidak valid
Ini adalah salah satu indikator yang dapat digunakan untuk menilai perubahan tren dan mengurangi peluang yang terlewatkan
Parameter optimasi dinamis, panjang siklus garis yang disesuaikan dengan perubahan pasar
Membedakan pasar multihead dan pasar kosong dengan parameter yang berbeda
Tergabung dengan algoritma pembelajaran mesin untuk melatih data besar untuk menentukan kapan tepat untuk membeli dan menjual
Overall, this elastic weighted moving average cross strategy dengan menghitung dan membiarkan dua garis EVWMA bersilang dapat secara efektif mendeteksi perubahan tren dan menghasilkan sinyal perdagangan. Strategi ini sederhana dan mudah, tetapi ada beberapa risiko dan arah optimasi. Dengan mengoptimalkan mekanisme stop loss, pilihan parameter, dan kombinasi dengan indikator lain, strategi ini dapat diperkuat, sehingga lebih cocok untuk perdagangan yang sebenarnya.
/*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")