이 전략은 시장의 변동성을 반영하기 위해 실제 범위의 이동 평균을 계산합니다. 변동성과 이동 평균 사이의 관계를 기반으로 트렌드 방향을 결정합니다. 변동성이 이동 평균 이상으로 넘어가면 짧고, 그 아래에 넘어가면 길게 이동하며, 트레일링 스톱 로스로됩니다.
ATR 함수는 특정 기간 동안의 실제 범위를 계산하는 데 사용됩니다. ATR의 간단한 이동 평균은 변동성의 이동 평균 라인으로 계산됩니다. ATR이 이동 평균을 넘을 때 시장 변동성이 증가하는 것으로 간주되고 짧은 전략이 채택됩니다. ATR이 이동 평균을 넘을 때 시장 변동성이 감소하는 것으로 간주되며 긴 전략이 채택됩니다.
포지션에 있을 때, 고정된 비율의 트래일링 스톱 로스는 가격 변화에 따라 스톱 로스를 동적으로 조정하여 수익을 보호하고 조기 중단되는 것을 피하기 위해 설정됩니다.
이 전략은 변동성 지표를 통해 시장 트렌드를 판단하여 잡음 간섭을 피합니다. 변동성이 증가하면 짧고 변동성이 떨어지면 길게 이동하여 헤지 작업을 실현합니다. 후속 스톱 손실은 실시간 가격 변화에 따라 스톱 손실 포지션을 조정하여 이익 보호와 불필요한 스톱 손실을 균형있게합니다.
이 전략은 일부 지체된 한 변동성 지표에만 의존한다. 후속 스톱 손실은 이익 회귀를 막을 수없는 불리한 가격 움직임을만 고려한다. 가격이 격렬하게 변동하면 스톱 손실이 발생하여 큰 손실이 발생할 수 있다.
ATR 및 이동 평균 기간에 대한 매개 변수 조정이 도움이 될 수 있으며, 포괄적인 판단을위한 다른 지표를 통합 할 수 있습니다. 스톱 손실 방법은 또한 시장 변동성에 따라 스톱 손실 비율을 조정하여 동적 스톱으로 전환 할 수 있습니다.
ATR와 이동 평균의 다양한 매개 변수 조합을 테스트하여 최적의 매개 변수를 찾습니다.
판단을 위한 다른 지표를 포함하여 전략 집합을 형성하여 정확성을 향상시킵니다.
동적 스톱 로스 전략을 채택하고 시장 변동성에 따라 스톱 로스 비율을 조정합니다.
다른 제품들에 대한 위치 크기 모델을 최적화합니다.
기계 학습을 적용하여 변동성 전환점을 식별하는 데 도움이 됩니다.
더 높은 시간 프레임 이동 평균과 결합하여 더 큰 트렌드 방향을 결정합니다.
이 전략은 시장 추세를 간단하고 직접적으로 변동성을 통해 판단하지만 단일 지표에는 한계가 있습니다. 여러 지표와 매개 변수 최적화를 도입하면 안정성을 향상시킬 수 있습니다. 전반적으로 전략은 변동성에 기반한 거래 아이디어를 제공합니다.
/*backtest start: 2023-08-20 00:00:00 end: 2023-09-19 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 20/08/2018 // The Volatility function measures the market volatility by plotting a // smoothed average of the True Range. It returns an average of the TrueRange // over a specific number of bars, giving higher weight to the TrueRange of // the most recent bar. // // You can change long to short in the Input Settings // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// strategy(title="Volatility Backtest", shorttitle="Volatility") Length = input(10, minval=1) LengthMA = input(26, minval=1) reverse = input(false, title="Trade reverse") xATR = atr(Length) nRes = ((Length - 1) * nz(nRes[1], 0) + xATR) / Length xMARes = sma(nRes, LengthMA) pos = iff(nRes < xMARes, 1, iff(nRes > xMARes, -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="Volatility") plot(xMARes, color=red, title="MA")