
Strategi ini direka berdasarkan kepada penunjuk EVWMA untuk strategi trend-tracking yang mudah. Strategi ini membina penunjuk EVWMA dengan menggunakan garis cepat dan lambat, melakukan lebih banyak ketika melintasi garis perlahan pada garis cepat, dan membuat ruang ketika melintasi garis perlahan di bawah garis cepat, untuk mencapai trend-tracking.
Indikator utama strategi ini adalah EVWMA, iaitu rata-rata bergerak bertimbangan elastis. Ia mencerminkan trend pasaran secara dinamik dengan cara mengira panjang kitaran sendiri, digabungkan dengan maklumat mengenai harga dan jumlah transaksi.
Khususnya, panjang kitaran pengiraan garisan pantas adalah jumlah transaksi 10 garisan K terkini, dan panjang kitaran pengiraan garisan perlahan adalah jumlah transaksi 20 garisan K terkini. EVWMA bagi setiap garisan K dikira mengikut formula: ((EVWMA × (panjang kitaran - jumlah garisan K semasa) + harga penutupan garisan K semasa × jumlah garisan K semasa) / garisan panjang kitaran.
Apabila garis pantas melintasi garis perlahan, ia menunjukkan peningkatan kekuatan membeli dan melakukan lebih banyak; apabila garis pantas melintasi garis perlahan, ia menunjukkan peningkatan kekuatan menjual dan membuat kosong. Dengan kombinasi garis pantas seperti itu, anda boleh menangkap trend pasaran secara dinamik dan melaksanakan strategi pengesanan trend.
Kelebihan terbesar strategi ini adalah menggunakan reka bentuk kitaran dinamik indikator EVWMA, yang dapat bertindak balas lebih cepat terhadap perubahan harga dan jumlah transaksi, menangkap trend pasaran dalam masa nyata, yang sangat sesuai untuk strategi trend-tracking. Selain itu, berbanding dengan indikator seperti purata bergerak tradisional, ia menggabungkan maklumat harga dan jumlah transaksi, yang dapat menyaring pecah palsu.
Risiko utama strategi ini adalah masalah dengan parameter penyetempatan penunjuk EVWMA. Jika tempoh garis cepat dan garis lambat ditetapkan dengan tidak betul, ia boleh menyebabkan banyak isyarat palsu dihasilkan. Selain itu, strategi trend-following itu sendiri hanya membawa kesan trendyțile în cazul inversării a tendinței pieței.
Untuk mengatasi masalah ini, anda boleh mencari kombinasi parameter yang optimum dengan mengoptimumkan parameter, menyesuaikan kitaran pengiraan garis cepat dan lambat. Pada masa yang sama, anda boleh menetapkan hentian untuk mengawal risiko kerugian. Anda boleh mempertimbangkan untuk menangguhkan strategi anda untuk mengelakkan tempoh masa ini apabila terdapat perubahan besar di pasaran, seperti pengumuman data penting.
Strategi ini juga mempunyai ruang untuk pengoptimuman lebih lanjut. Sebagai contoh, penambahan petunjuk lain seperti penembusan jumlah dagangan, tali Brin dan lain-lain boleh dipertimbangkan untuk mengesahkan isyarat, yang meningkatkan kestabilan strategi. Selain itu, nilai optimum kombinasi parameter yang berbeza untuk pelbagai jenis dan tempoh masa yang berbeza mungkin berbeza, mekanisme pengoptimuman penyesuaian parameter dapat dibuat, menyesuaikan parameter berdasarkan data masa nyata.
Dari segi perdagangan, anda juga boleh merancang cara-cara untuk mengawal risiko seperti berhenti dinamik, dan mengesan berhenti. Di samping itu, nilai optimum kombinasi parameter yang berbeza untuk pelbagai jenis dan tempoh masa mungkin berbeza. Anda boleh membuat mekanisme pengoptimuman parameter yang menyesuaikan diri, menyesuaikan parameter berdasarkan data masa nyata.
Strategi ini menggunakan reka bentuk kitaran dinamik petunjuk EVWMA dan pertimbangan maklumat jumlah perdagangan, untuk membina strategi penjejakan trend yang mudah dan berkesan. Ia dapat bertindak balas dengan cepat terhadap perubahan harga, menangkap trend pasaran.
/*backtest
start: 2022-12-05 00:00:00
end: 2023-12-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("QuantNomad - EVWMA Cross Strategy", shorttitle="EVWMA Cross", overlay=true)
// Inputs
fast_sum_length = input(10, title = "Fast Sum Length", type = input.integer)
slow_sum_length = input(20, title = "Slow Sum Length", type = input.integer)
// Calculate Volume Period
fast_vol_period = sum(volume, fast_sum_length)
slow_vol_period = sum(volume, slow_sum_length)
// Calculate EVWMA
fast_evwma = 0.0
fast_evwma := ((fast_vol_period - volume) * nz(fast_evwma[1], close) + volume * close) / (fast_vol_period)
// Calculate EVWMA
slow_evwma = 0.0
slow_evwma := ((slow_vol_period - volume) * nz(slow_evwma[1], close) + volume * close) / (slow_vol_period)
// Plot
plot(fast_evwma, title = "EVWMA Fast", linewidth = 2, color = color.red)
plot(slow_evwma, title = "EVWMA Slow", linewidth = 2, color = color.green)
// Strategy
strategy.entry("Long", true, when = crossover(fast_evwma, slow_evwma))
strategy.entry("Short", false, when = crossunder(fast_evwma, slow_evwma))