Strategi Backtest Volatiliti Statistik Berdasarkan Kaedah Nilai Ekstrim

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

img

Ringkasan

Strategi ini menggunakan kaedah nilai melampau untuk mengira turun naik statistik, juga dikenali sebagai turun naik sejarah. Ia mengukur turun naik berdasarkan nilai melampau harga tertinggi, harga terendah dan harga dekat, digabungkan dengan faktor masa. Volatiliti mencerminkan turun naik harga aset. Strategi akan membuat perdagangan panjang atau pendek yang sepadan apabila turun naik lebih tinggi atau lebih rendah daripada ambang.

Prinsip Strategi

  1. Mengira nilai melampau harga tertinggi, harga terendah dan harga dekat dalam tempoh masa tertentu
  2. Menggunakan formula kaedah nilai ekstrim untuk mengira turun naik statistik
    SqrTime = sqrt(253 / Length)
    Vol = ((0.6 * log(xMaxC / xMinC) * SqrTime) + (0.6 * log(xMaxH / xMinL) * SqrTime)) * 0.5
    
  3. Bandingkan turun naik dengan ambang atas dan bawah untuk menjana isyarat perdagangan
    pos = iff(nRes > TopBand, 1,  
              iff(nRes < LowBand, -1, nz(pos[1], 0)))
    
  4. Buat perdagangan panjang atau pendek berdasarkan isyarat perdagangan

Analisis Kelebihan

Kelebihan utama strategi ini ialah:

  1. Menggunakan penunjuk turun naik statistik dapat menangkap titik panas pasaran dan peluang pembalikan dengan berkesan
  2. Kaedah nilai melampau untuk mengira turun naik tidak sensitif terhadap harga melampau, menghasilkan hasil yang lebih stabil dan boleh dipercayai
  3. Parameter boleh diselaraskan untuk menyesuaikan diri dengan perdagangan dalam persekitaran turun naik yang berbeza

Analisis Risiko

Risiko utama strategi ini ialah:

  1. Volatiliti statistik itu sendiri mempunyai beberapa kelewatan, dan tidak dapat memahami dengan tepat titik perubahan pasaran
  2. Penunjuk turun naik bertindak balas perlahan terhadap peristiwa tiba-tiba, mungkin kehilangan peluang perdagangan jangka pendek
  3. Terdapat beberapa risiko perdagangan yang salah dan berhenti kerugian

Tindakan balas dan penyelesaian:

  1. Memendekkan kitaran statistik dengan sewajarnya untuk meningkatkan kepekaan terhadap perubahan pasaran
  2. Menggunakan penunjuk lain sebagai bantuan untuk meningkatkan ketepatan isyarat
  3. Tetapkan titik stop loss untuk mengawal kehilangan tunggal

Arahan pengoptimuman

Arah pengoptimuman untuk strategi ini:

  1. Uji parameter tempoh statistik yang berbeza untuk mencari parameter optimum
  2. Tambah modul pengurusan kedudukan untuk menyesuaikan kedudukan berdasarkan turun naik
  3. Tambah keadaan penapis seperti garis purata bergerak untuk mengurangkan perdagangan yang salah

Ringkasan

Strategi ini menggunakan kaedah nilai melampau untuk mengira turun naik statistik, dan menghasilkan isyarat perdagangan dengan menangkap anomali turun naik. Berbanding dengan penunjuk mudah seperti garis purata bergerak, ia lebih mencerminkan turun naik pasaran dan menangkap pembalikan. Sementara itu, algoritma kaedah nilai melampau juga menjadikan hasilnya lebih stabil dan boleh dipercayai. Melalui penyesuaian parameter dan pengoptimuman, strategi ini dapat menyesuaikan diri dengan keadaan pasaran yang berbeza, dan logik dagangan dan penunjuk turun naik statistiknya bernilai penyelidikan dan penerapan 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 lanjut