Chiến lược kiểm tra ngược biến động thống kê dựa trên phương pháp giá trị cực đoan

Tác giả:ChaoZhang, Ngày: 2023-12-26 10:24:53
Tags:

img

Tổng quan

Chiến lược này sử dụng phương pháp giá trị cực để tính biến động thống kê, còn được gọi là biến động lịch sử. Nó đo biến động dựa trên các giá trị cực của giá cao nhất, giá thấp nhất và giá đóng cửa, kết hợp với yếu tố thời gian. Sự biến động phản ánh sự biến động của giá tài sản. Chiến lược sẽ thực hiện các giao dịch dài hoặc ngắn tương ứng khi biến động cao hơn hoặc thấp hơn ngưỡng.

Nguyên tắc chiến lược

  1. Tính toán các giá trị cực của giá cao nhất, giá thấp nhất và giá đóng trong một khoảng thời gian nhất định
  2. Áp dụng công thức phương pháp giá trị cực để tính biến động thống kê
    SqrTime = sqrt(253 / Length)
    Vol = ((0.6 * log(xMaxC / xMinC) * SqrTime) + (0.6 * log(xMaxH / xMinL) * SqrTime)) * 0.5
    
  3. So sánh sự biến động với ngưỡng trên và dưới để tạo ra tín hiệu giao dịch
    pos = iff(nRes > TopBand, 1,  
              iff(nRes < LowBand, -1, nz(pos[1], 0)))
    
  4. Thực hiện các giao dịch dài hoặc ngắn dựa trên các tín hiệu giao dịch

Phân tích lợi thế

Những lợi thế chính của chiến lược này là:

  1. Sử dụng chỉ số biến động thống kê có thể nắm bắt hiệu quả các điểm nóng của thị trường và cơ hội đảo ngược
  2. Phương pháp giá trị cực để tính biến động không nhạy cảm với giá cực, dẫn đến kết quả ổn định và đáng tin cậy hơn
  3. Các thông số có thể được điều chỉnh để thích nghi với giao dịch trong môi trường biến động khác nhau

Phân tích rủi ro

Những rủi ro chính của chiến lược này là:

  1. Sự biến động thống kê tự nó có một sự chậm trễ, và không thể nắm bắt chính xác các điểm chuyển đổi thị trường
  2. Chỉ số biến động phản ứng chậm với các sự kiện đột ngột, có thể bỏ lỡ các cơ hội giao dịch ngắn hạn
  3. Có một số rủi ro của giao dịch sai và dừng lỗ

Các biện pháp đối phó và giải pháp:

  1. Tóm lại đúng chu kỳ thống kê để tăng độ nhạy cảm với những thay đổi trên thị trường
  2. Sử dụng các chỉ số khác như một trợ giúp để cải thiện độ chính xác tín hiệu
  3. Thiết lập điểm dừng lỗ để kiểm soát lỗ đơn

Hướng dẫn tối ưu hóa

Các hướng tối ưu hóa cho chiến lược này:

  1. Kiểm tra các tham số thời gian thống kê khác nhau để tìm các tham số tối ưu
  2. Thêm một mô-đun quản lý vị trí để điều chỉnh các vị trí dựa trên sự biến động
  3. Thêm các điều kiện lọc như đường trung bình chuyển động để giảm các giao dịch sai

Tóm lại

Chiến lược này sử dụng phương pháp giá trị cực để tính toán biến động thống kê, và tạo ra tín hiệu giao dịch bằng cách nắm bắt bất thường biến động. So với các chỉ số đơn giản như đường trung bình động, nó phản ánh tốt hơn biến động thị trường và nắm bắt sự đảo ngược. Trong khi đó, thuật toán phương pháp giá trị cực cũng làm cho kết quả ổn định và đáng tin cậy hơn. Thông qua điều chỉnh tham số và tối ưu hóa, chiến lược này có thể thích nghi với các điều kiện thị trường khác nhau, và logic giao dịch và chỉ số biến động thống kê của nó đáng nghiên cứu và áp dụng thêm.


/*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")


Thêm nữa