Strategi Backtest Volatilitas Statistik Berdasarkan Metode Nilai Ekstrim

Penulis:ChaoZhang, Tanggal: 2023-12-26 10:24:53
Tag:

img

Gambaran umum

Strategi ini menggunakan metode nilai ekstrim untuk menghitung volatilitas statistik, juga dikenal sebagai volatilitas historis. Ini mengukur volatilitas berdasarkan nilai ekstrim harga tertinggi, harga terendah dan harga dekat, dikombinasikan dengan faktor waktu. Volatilitas mencerminkan fluktuasi harga aset. Strategi akan membuat perdagangan panjang atau pendek yang sesuai ketika volatilitas lebih tinggi atau lebih rendah dari ambang batas.

Prinsip Strategi

  1. Menghitung nilai ekstrim harga tertinggi, harga terendah dan harga dekat dalam periode waktu tertentu
  2. Menerapkan rumus metode nilai ekstrim untuk menghitung volatilitas statistik
    SqrTime = sqrt(253 / Length)
    Vol = ((0.6 * log(xMaxC / xMinC) * SqrTime) + (0.6 * log(xMaxH / xMinL) * SqrTime)) * 0.5
    
  3. Bandingkan volatilitas dengan ambang batas atas dan bawah untuk menghasilkan sinyal perdagangan
    pos = iff(nRes > TopBand, 1,  
              iff(nRes < LowBand, -1, nz(pos[1], 0)))
    
  4. Buat perdagangan panjang atau pendek berdasarkan sinyal perdagangan

Analisis Keuntungan

Keuntungan utama dari strategi ini adalah:

  1. Menggunakan indikator volatilitas statistik dapat secara efektif menangkap titik panas pasar dan peluang pembalikan
  2. Metode nilai ekstrim untuk menghitung volatilitas tidak sensitif terhadap harga ekstrim, menghasilkan hasil yang lebih stabil dan dapat diandalkan
  3. Parameter dapat disesuaikan untuk berdagang di lingkungan volatilitas yang berbeda

Analisis Risiko

Risiko utama dari strategi ini adalah:

  1. Volatilitas statistik itu sendiri memiliki beberapa keterlambatan, dan tidak dapat dengan akurat memahami titik balik pasar
  2. Indikator volatilitas bereaksi lambat terhadap peristiwa mendadak, mungkin kehilangan peluang perdagangan jangka pendek
  3. Ada beberapa risiko perdagangan yang salah dan stop loss

Tindakan dan solusi:

  1. Singkatkan siklus statistik dengan tepat untuk meningkatkan sensitivitas terhadap perubahan pasar
  2. Menggunakan indikator lain sebagai bantuan untuk meningkatkan akurasi sinyal
  3. Atur titik stop loss untuk mengontrol kerugian tunggal

Arahan Optimasi

Arah optimasi untuk strategi ini:

  1. Uji parameter periode statistik yang berbeda untuk menemukan parameter optimal
  2. Menambahkan modul manajemen posisi untuk menyesuaikan posisi berdasarkan volatilitas
  3. Tambahkan kondisi filter seperti garis rata-rata bergerak untuk mengurangi perdagangan yang salah

Ringkasan

Strategi ini menggunakan metode nilai ekstrim untuk menghitung volatilitas statistik, dan menghasilkan sinyal perdagangan dengan menangkap anomali volatilitas. Dibandingkan dengan indikator sederhana seperti garis rata-rata bergerak, ini lebih mencerminkan volatilitas pasar dan menangkap pembalikan. Sementara itu, algoritma metode nilai ekstrim juga membuat hasilnya lebih stabil dan dapat diandalkan. Melalui penyesuaian parameter dan optimalisasi, strategi ini dapat beradaptasi dengan kondisi pasar yang berbeda, dan logika perdagangan dan indikator volatilitas statistiknya layak penelitian dan aplikasi lebih lanjut.


/*backtest
start: 2022-12-19 00:00:00
end: 2023-12-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 22/11/2014
// This indicator used to calculate the statistical volatility, sometime 
// called historical volatility, based on the Extreme Value Method.
// Please use this link to get more information about Volatility. 
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Statistical Volatility - Extreme Value Method ", shorttitle="Statistical Volatility Backtest")
Length = input(30, minval=1)
TopBand = input(0.005, step=0.001)
LowBand = input(0.0016, step=0.001)
reverse = input(false, title="Trade reverse")
hline(TopBand, color=red, linestyle=line)
hline(LowBand, color=green, linestyle=line)
xMaxC = highest(close, Length)
xMaxH = highest(high, Length)
xMinC = lowest(close, Length)
xMinL = lowest(low, Length)
SqrTime = sqrt(253 / Length)
Vol = ((0.6 * log(xMaxC / xMinC) * SqrTime) + (0.6 * log(xMaxH / xMinL) * SqrTime)) * 0.5
nRes = iff(Vol < 0,  0, iff(Vol > 2.99, 2.99, Vol))
pos = iff(nRes > TopBand, 1,
	   iff(nRes < LowBand, -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, title="Statistical Volatility")


Lebih banyak