극한 값 방법 기반의 통계 변동성 백테스트 전략

저자:차오장, 날짜: 2023-12-26 10:24:53
태그:

img

전반적인 설명

이 전략은 통계 변동성을 계산하기 위해 극단적 가치 방법을 사용하며, 역사적 변동성으로도 알려져 있습니다. 가장 높은 가격, 가장 낮은 가격 및 닫는 가격의 극단적 값을 기반으로 변동성을 측정하며, 시간 요인과 결합합니다. 변동성은 자산 가격의 변동을 반영합니다. 전략은 변동성이 문턱보다 높거나 낮을 때 대응하는 긴 또는 짧은 거래를합니다.

전략 원칙

  1. 특정 기간 동안 가장 높은 가격, 가장 낮은 가격 및 폐쇄 가격의 극한 값을 계산
  2. 통계 변동성을 계산하기 위해 극한 값 방법 공식을 적용합니다.
    SqrTime = sqrt(253 / Length)
    Vol = ((0.6 * log(xMaxC / xMinC) * SqrTime) + (0.6 * log(xMaxH / xMinL) * SqrTime)) * 0.5
    
  3. 거래 신호를 생성하기 위해 변동성을 상위 및 하위 임계값과 비교합니다.
    pos = iff(nRes > TopBand, 1,  
              iff(nRes < LowBand, -1, nz(pos[1], 0)))
    
  4. 거래 신호에 따라 긴 또는 짧은 거래를 수행

이점 분석

이 전략의 주요 장점은 다음과 같습니다.

  1. 통계적 변동성 지표를 이용하면 시장의 핫포트와 역전 기회를 효과적으로 파악할 수 있습니다.
  2. 변동성을 계산하는 극한 값 방법은 극한 가격에 민감하지 않으며, 더 안정적이고 신뢰할 수 있는 결과를 얻습니다.
  3. 매개 변수는 다양한 변동성 환경에서 거래에 적응하도록 조정할 수 있습니다.

위험 분석

이 전략의 주요 위험은 다음과 같습니다.

  1. 통계적 변동성 자체는 약간의 지연을 가지고 있으며 시장 전환점을 정확하게 파악 할 수 없습니다.
  2. 변동성 지표는 갑작스러운 사건에 느리게 반응하며 단기 거래 기회를 놓칠 수 있습니다.
  3. 잘못된 거래 및 손실 중지의 몇 가지 위험이 있습니다.

대책 및 해결책:

  1. 시장 변화에 대한 감수성을 높이기 위해 통계 주기를 적절히 단축하십시오.
  2. 신호 정확성을 향상시키기 위해 다른 지표를 사용하십시오.
  3. 단일 손실을 제어하기 위해 중지 손실 포인트를 설정

최적화 방향

이 전략의 최적화 방향:

  1. 최적의 매개 변수를 찾기 위해 다른 통계 기간 매개 변수를 테스트
  2. 변동성에 따라 포지션을 조정하는 포지션 관리 모듈을 추가합니다.
  3. 잘못된 트레이드를 줄이기 위해 이동 평균선과 같은 필터 조건을 추가합니다.

요약

이 전략은 통계 변동성을 계산하기 위해 극단적 가치 방법을 사용하며 변동성 이상성을 캡처하여 거래 신호를 생성합니다. 이동 평균선과 같은 간단한 지표와 비교하면 시장 변동성을 더 잘 반영하고 반전을 캡처합니다. 한편, 극단적 가치 방법 알고리즘은 또한 결과를 더 안정적이고 신뢰할 수 있습니다. 매개 변수 조정 및 최적화를 통해이 전략은 다른 시장 조건에 적응 할 수 있으며 거래 논리와 통계 변동성 지표는 추가 연구와 응용 가치가 있습니다.


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


더 많은