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 đại


Ngày tạo: 2023-12-26 10:24:53 sửa đổi lần cuối: 2023-12-26 10:24:53
sao chép: 1 Số nhấp chuột: 715
1
tập trung vào
1621
Người theo dõi

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 đại

Tổng quan

Chiến lược này sử dụng phương pháp biến động cực đoan để tính toán tỷ lệ biến động thống kê, còn được gọi là tỷ lệ biến động lịch sử. Nó dựa trên giá cao nhất, giá thấp nhất, giá đóng cửa, kết hợp với các yếu tố thời gian, để tính toán tỷ lệ biến động thống kê.

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

  1. Tính toán giá cao nhất, giá thấp nhất, giá đóng cửa trong một khoảng thời gian nhất định

  2. Sử dụng công thức giá trị cực đoan để tính toán tỷ lệ 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 tỷ lệ biến động với giá trị thềm lên xuống, tạo ra tín hiệu giao dịch

    pos = iff(nRes > TopBand, 1, 
             iff(nRes < LowBand, -1, nz(pos[1], 0)))
    
  4. Làm nhiều hoặc ngắn theo tín hiệu giao dịch

Phân tích lợi thế

Những ưu điểm chính của chiến lược này là:

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

Phân tích rủi ro

Chiến lược này có những rủi ro chính như sau:

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

Phương pháp đối phó và giải pháp:

  1. Giảm thời gian thống kê thích hợp, tăng khả năng nhạy cảm với sự thay đổi của thị trường
  2. Kết hợp với các chỉ số khác để tăng độ chính xác của tín hiệu
  3. Thiết lập điểm dừng lỗ, kiểm soát tổn thất đơn lẻ

Hướng tối ưu hóa

Chiến lược này có thể được tối ưu hóa bằng:

  1. Kiểm tra các tham số khác nhau của chu kỳ thống kê để tìm ra tham số tối ưu
  2. Thêm mô-đun quản lý vị trí để điều chỉnh vị trí theo tỷ lệ biến động
  3. Kết hợp các chỉ số như trung bình di chuyển, đặt các điều kiện lọc, giảm giao dịch sai

Tóm tắt

Chiến lược này sử dụng phương pháp giá trị cực đoan để tính toán tỷ lệ biến động thống kê, tạo tín hiệu giao dịch bằng cách nắm bắt biến động của tỷ lệ biến động. Nó phản ánh tốt hơn sự biến động của thị trường so với các chỉ số như trung bình di chuyển đơn giản. Đồng thời, thuật toán giá trị cực đoan cũng làm cho kết quả ổn định và đáng tin cậy hơn.

Mã nguồn chiến lược
/*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")