Strategi Kuantitatif Berdasarkan Rata-rata Bergerak Eksponensial dan Berat Volume

Penulis:ChaoZhang, Tanggal: 2024-01-25 15:31:21
Tag:

img

Gambaran umum

Strategi ini disebut Quantitative Strategy Based on Exponential Moving Average and Volume Weighting. Strategi ini terutama mengimplementasikan perdagangan kuantitatif dengan menggabungkan dua faktor exponential moving average dan volume weighting. Strategi ini secara komprehensif mempertimbangkan tren harga, informasi volume dan informasi harga terbaru, yang dapat secara efektif menangkap peluang pasar dan memiliki keuntungan tertentu.

Prinsip

Indikator inti dari strategi ini adalah nRes, yang menggabungkan rata-rata bergerak eksponensial xMAVolPrice, rata-rata bergerak eksponensial volume xMAVol dan harga penutupan terakhir dan dihitung dengan rumus berikut:

xMAVolPrice = ema(volume * close, length)
xMAVol = ema(volume, length) 
nRes = xMAVolPrice / xMAVol

Strategi menentukan arah posisi panjang dan pendek dengan membandingkan hubungan ukuran antara nRes dan harga penutupan terbaru:

if (nRes < close[1])  
    long
if (nRes > close[1]) 
    short

Jika nRes lebih rendah dari harga penutupan terakhir, itu berarti bahwa harga yang disesuaikan dengan volume lebih rendah dari harga terakhir, yang merupakan sinyal beli; jika nRes lebih besar dari harga penutupan terakhir, itu berarti bahwa harga yang disesuaikan dengan volume lebih tinggi dari harga terakhir, yang merupakan sinyal jual.

Singkatnya, strategi membandingkan indikator harga nRes yang disesuaikan dengan volume dengan harga penutupan terbaru untuk menentukan arah posisi panjang dan pendek, yang merupakan strategi perdagangan kuantitatif yang khas.

Analisis Keuntungan

Keuntungan utama dari strategi ini adalah:

  1. Menggabungkan informasi multi-faktor: Strategi ini tidak hanya mempertimbangkan informasi harga, tetapi juga menggabungkan informasi volume untuk memanfaatkan sepenuhnya karakteristik multi-faktor stok untuk menilai tren pasar dengan lebih akurat.

  2. Mengurangi sinyal palsu. Volume weighting dapat menyaring beberapa breakout palsu yang disebabkan oleh volume yang tidak cukup. Ini dapat secara efektif mengurangi perdagangan yang tidak perlu dan menghindari terjebak.

  3. Perbandingan dengan rata-rata bergerak sederhana, rata-rata bergerak eksponensial dalam strategi ini lebih sensitif terhadap data terbaru dan dapat dengan cepat menangkap perubahan pasar terbaru.

  4. Ide strategi sederhana dan jelas, mudah dimengerti dan diterapkan, dan memenuhi persyaratan perdagangan kuantitatif.

Analisis Risiko

Meskipun strategi ini memiliki beberapa keuntungan, ia juga menghadapi risiko berikut:

  1. Informasi volume tidak dapat diandalkan. Indikator volume rentan terhadap manipulasi dan tidak stabil, yang dapat menyesatkan.

  2. Sedikit peluang untuk penilaian panjang dan pendek. Dibandingkan dengan strategi mengikuti tren sederhana, peluang untuk strategi ini untuk membuat penilaian relatif kecil, yang dapat dengan mudah menyebabkan perdagangan yang tidak memadai.

  3. Kesulitan dalam pemilihan parameter. Pilihan parameter seperti panjang rata-rata hari bergerak akan memiliki dampak besar pada kinerja strategi. Pemilihan yang tidak tepat dapat sangat mengurangi pengembalian.

  4. Dalam pasar yang bergerak cepat, perhitungan indikator mungkin tidak dapat bereaksi pada harga terbaru tepat waktu, sehingga kehilangan titik perdagangan terbaik.

Solusi yang sesuai: mengoptimalkan pengaturan parameter, mengontrol ukuran posisi secara ketat, mengatur stop loss dan mengambil keuntungan; menggabungkan indikator faktor lain untuk verifikasi; menyesuaikan frekuensi posisi yang tepat.

Arahan Optimasi

Arah utama untuk mengoptimalkan strategi ini adalah:

  1. Lebih fleksibel posisi terbuka logika Posisi dapat dibuka ketika perbedaan antara nRes dan harga penutupan lebih besar dari ambang tertentu, bukan hanya penilaian klasifikasi biner, sehingga untuk merebut lebih banyak peluang.

  2. Meningkatkan mekanisme manajemen posisi. Sesuai dengan volatilitas pasar, secara dinamis menyesuaikan ukuran setiap perdagangan untuk mengontrol risiko secara efektif.

  3. Menggabungkan faktor-faktor lain. Lebih banyak faktor dapat ditambahkan, seperti indikator sentimen, faktor fundamental, dll, untuk membuat penilaian strategi yang lebih komprehensif.

  4. Algoritma optimasi parameter adaptif. Algoritma dapat ditetapkan untuk secara otomatis mengoptimalkan parameter seperti panjang, sehingga mereka dapat menyesuaikan secara adaptif sesuai dengan karakteristik pasar siklus yang berbeda.

  5. Gunakan model pembelajaran mesin. RNN dan model pembelajaran mendalam lainnya dapat digunakan untuk pemodelan fitur multivariate untuk mencapai strategi nonlinear end-to-end.

Ringkasan

Strategi ini secara komprehensif mempertimbangkan faktor-faktor seperti harga dan volume, dan membandingkan indikator harga yang disesuaikan volume dengan harga penutupan terbaru untuk menentukan arah perdagangan. Dibandingkan dengan satu indikator, strategi ini memiliki keuntungan informasi yang lebih kaya dan mengurangi sinyal palsu. Namun, strategi ini juga menghadapi risiko seperti manipulasi volume dan waktu penilaian yang lebih sedikit.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 06/03/2017
// The related article is copyrighted material from Stocks & Commodities 2009 Oct 
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Combining Exponential And Volume Weighting", overlay=true)
length = input(22, minval=1)
reverse = input(false, title="Trade reverse")
xMAVolPrice = ema(volume * close, length)
xMAVol = ema(volume, length)
nRes = xMAVolPrice / xMAVol
pos = iff(nRes < close[1], 1,
	     iff(nRes > close[1], -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1 )
    strategy.entry("Long", strategy.long)
if (possig == -1 )
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(nRes, color=blue)

Lebih banyak