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.
SqrTime = sqrt(253 / Length)
Vol = ((0.6 * log(xMaxC / xMinC) * SqrTime) + (0.6 * log(xMaxH / xMinL) * SqrTime)) * 0.5
pos = iff(nRes > TopBand, 1,
iff(nRes < LowBand, -1, nz(pos[1], 0)))
Những lợi thế chính của chiến lược này là:
Những rủi ro chính của chiến lược này là:
Các biện pháp đối phó và giải pháp:
Các hướng tối ưu hóa cho chiến lược này:
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")