이 전략은 통계 변동성을 계산하기 위해 극단적 가치 방법을 사용하며, 역사적 변동성으로도 알려져 있습니다. 가장 높은 가격, 가장 낮은 가격 및 닫는 가격의 극단적 값을 기반으로 변동성을 측정하며, 시간 요인과 결합합니다. 변동성은 자산 가격의 변동을 반영합니다. 전략은 변동성이 문턱보다 높거나 낮을 때 대응하는 긴 또는 짧은 거래를합니다.
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)))
이 전략의 주요 장점은 다음과 같습니다.
이 전략의 주요 위험은 다음과 같습니다.
대책 및 해결책:
이 전략의 최적화 방향:
이 전략은 통계 변동성을 계산하기 위해 극단적 가치 방법을 사용하며 변동성 이상성을 캡처하여 거래 신호를 생성합니다. 이동 평균선과 같은 간단한 지표와 비교하면 시장 변동성을 더 잘 반영하고 반전을 캡처합니다. 한편, 극단적 가치 방법 알고리즘은 또한 결과를 더 안정적이고 신뢰할 수 있습니다. 매개 변수 조정 및 최적화를 통해이 전략은 다른 시장 조건에 적응 할 수 있으며 거래 논리와 통계 변동성 지표는 추가 연구와 응용 가치가 있습니다.
/*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")