평균 반전 볼링거 밴드 전략

저자:차오장, 날짜: 2023-10-25 11:04:13
태그:

img

전반적인 설명

평균 반전 볼링거 밴드 전략은 시장 변동성을 측정하기 위해 볼링거 밴드 지표를 사용하며 트렌드를 결정하기 위해 이동 평균을 사용하며, 과도한 무작위성을 피하면서 낮은 변동성 기간 동안 트렌드 거래를 통해 트렌드에서 이익을 얻습니다.

전략 논리

이 전략은 이동 평균과 상부/하부 대역을 계산하여 이동 평균의 위와 아래의 표준편차의 특정 곱셈을 나타내고 볼링거 대역을 형성합니다. 가격이 대역에 접근하면 변동성이 증가한다는 것을 나타냅니다. 가격이 대역 내에있을 때 변동성이 감소한다는 것을 나타냅니다.

이 전략은 가격이 상승 추세 이동 평균에서 하위 대역을 넘어서면 길게, 그리고 가격이 하위 대역을 넘어서면 하위 대역을 넘어서면 짧게 됩니다. 해당 대역은 위험을 제어하기 위해 스톱 로스로 사용됩니다.

이 접근 방식의 장점은 낮은 변동성 기간 동안 트렌드에 참여하여 과도한 무작위 가격 변동을 피하고 수익 가능성을 높이는 것입니다.

이점 분석

  1. 낮은 변동성에 대한 트렌드를 거래하면 무작위성을 줄이고 안정성을 높입니다.

볼링거 밴드 (Bollinger Bands) 가 수축되고 변동성이 감소할 때만 트렌드를 거래함으로써 전략은 높은 변동성의 불확실한 기간을 피하고 무작위성을 줄이고 안정성을 높입니다.

  1. 이동 평균은 추세 판단을 돕고 정확성을 향상시킵니다.

변동성을 측정하는 볼링거 밴드 외에도 이동 평균은 트렌드 방향을 결정하는 데 도움이됩니다. 둘은 서로를 검증하고 정확도를 향상시킵니다.

  1. 내장된 스톱 로스 컨트롤 위험

이 전략은 각 거래에 대한 스톱 로스 레벨을 설정하여 빠른 스톱 및 리스크 통제를 허용합니다.

위험 분석

  1. 트렌드 오판 위험

이동 평균 방향은 밴드 수축 중에 변경될 수 있으며, 잘못된 트렌드 판단과 손실로 이어질 수 있습니다.

추세를 확인하기 위한 다른 지표를 추가하면 이 위험을 최소화 할 수 있습니다.

  1. 과도한 밴드 변동성 위험

과도한 표준편차 곱하기 때문에 폭이 너무 넓으면 비효율적인 거래가 너무 자주 발생합니다.

매개 변수를 최적화하거나 대역폭 임계 필터를 추가하면 이를 개선할 수 있습니다.

  1. 파기 실패 위험

이 지대를 깨고 나면 가격이 변하지 않을 수도 있고 손실이 발생할 수도 있습니다.

닫는 휴식기를 사용하거나 부피 확인을 추가하면 실패한 휴식기를 줄일 수 있습니다.

최적화 방향

  1. 더 많은 지표 확인을 추가

이동 평균 신호를 확인하기 위해 MACD와 KDJ와 같은 지표를 추가하면 정확도가 향상됩니다.

  1. 매개 변수를 최적화

최적의 이동 평균과 표준편차 곱셈 매개 변수를 찾기 위한 백테스팅은 성능을 향상시킵니다.

  1. 입력 시기를 최적화

닫는 휴식점만 사용하거나 볼륨 필터를 추가하면 타이밍이 더 좋아집니다.

  1. 스톱 로스 전략을 최적화

후속 스톱과 이동 스톱은 수익을 차단하고 수익을 반환하는 것을 막을 수 있습니다.

결론

평균 반전 볼링거 밴드 전략은 낮은 변동성 기간을 식별하고 유동평균을 트렌드 방향을 결정하기 위해 밴드를 현명하게 사용합니다. 변동성이 감소할 때 트렌드에 참여합니다. 이것은 과도한 무작위성을 필터링하고 안정성을 증가시킵니다. 전략은 장점이 있지만 조심해야 할 위험도 있습니다. 추가 지표 확인, 매개 변수 최적화, 향상된 타이밍 및 고급 엔트리 스톱 손실 전략으로 안정성과 수익성이 향상 될 수 있습니다.


/*backtest
start: 2022-10-24 00:00:00
end: 2023-10-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Trading Public School", overlay=true)
source = close
length = input(20, minval=1)
mult = input(2.0, minval=0.001, maxval=50)

basis = sma(source, length)
dev = mult * stdev(source, length)

upper = basis + dev
lower = basis - dev

buyEntry = crossover(source, lower)
sellEntry = crossunder(source, upper)

if (crossover(source, lower))
    strategy.entry("BBandLE", strategy.long, stop=lower, oca_name="BollingerBands",  comment="BBandLE")
else
    strategy.cancel(id="BBandLE")

if (crossunder(source, upper))
    strategy.entry("BBandSE", strategy.short, stop=upper, oca_name="BollingerBands",  comment="BBandSE")
else
    strategy.cancel(id="BBandSE")

//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)


더 많은