이 전략의 이름은 RSI 필터와 함께 볼링거 밴드 전략이다. 이 전략은 입시 신호를 위한 필터로 RSI 지표와 결합한 볼링거 밴드의 원리를 활용한다. 이 전략은 적당한 이익을 얻기 위해 낮은 가격에 구매하고 높은 가격에 판매하는 시장 트렌드를 효과적으로 결정할 수 있다.
이 전략의 핵심 지표는 중간 밴드, 상위 밴드 및 하위 밴드로 구성된 볼링거 밴드입니다. 중간 밴드는 n 기간 이동 평균, 상위 밴드는 중간 밴드 더하기 k 시간 n 기간 표준 편차, 하위 밴드는 중간 밴드 마이너스 k 시간 n 기간 표준 편차입니다. 가격이 상위 밴드에 접근하면 시장이 과평가되어 짧은 포지션을 고려해야합니다. 가격이 하위 밴드에 접근하면 시장이 과평가되어 긴 포지션을 고려해야합니다.
이 전략은 볼링거 밴드 외에도 RSI 지표를 엔트리 신호의 필터로 통합합니다. RSI는 시장이 과소매 또는 과소매인지 판단합니다. 70 이상의 값은 과소매 조건을 나타냅니다. 30 이하의 값은 과소매 조건을 나타냅니다. 이 전략은 볼링거 밴드가 RSI가 과소매 또는 과소매 수준에 도달하는 동시에 신호를 표시 할 때만 트레이드에 입력됩니다.
구체적으로, 가격이 RSI가 30보다 낮을 때 아래에서 낮은 볼링거 밴드를 넘을 때 구매 신호가 생성됩니다. 가격이 RSI가 70보다 높을 때 위에서 상위 볼링거 밴드를 넘을 때 판매 신호가 생성됩니다.
이 전략은 볼링거 밴드를 RSI 지표와 결합하여 과잉 구매 및 과잉 판매 시장 조건을 효과적으로 식별하여 가짜 브레이크로 인한 불필요한 손실을 피합니다. RSI는 시장 소음을 제거하는 필터로 작용하여 입시 시기를 더 정확하게합니다.
이 전략은 몇 가지 매개 변수를 가지고 있으며 실행이 간단하며 모든 기술 수준의 양적 거래자에게 적합합니다. 중장기 보유 전략은 단기 시장 변동의 간섭을 피합니다.
요약하면 다음과 같은 장점이 있습니다.
이 전략에서 주의해야 할 몇 가지 위험은 다음과 같습니다.
이러한 위험을 통제하기 위해:
추가 개선:
이러한 개선은 안정성을 향상시키고 매개 변수를 최적화하며 위험 관리를 강화 할 수 있습니다.
그럼에도 불구하고, 다양한 시장 조건에 따라 성능을 조정하기 위해 매개 변수 최적화와 위험 통제를 통해 개선할 여지가 있습니다. 추가 연구가 필요한 영역입니다.
/*backtest start: 2023-10-28 00:00:00 end: 2023-11-27 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bollinger Bands Strategy with RSI Filter", overlay=true) source = close length = input.int(20, minval=1) mult = input.float(2.0, minval=0.001, maxval=50) basis = ta.sma(source, length) dev = mult * ta.stdev(source, length) upper = basis + dev lower = basis - dev // RSI Filter rsiLength = input(14, title="RSI Length") rsiOverbought = input(70, title="RSI Overbought Level") rsiOversold = input(30, title="RSI Oversold Level") rsiValue = ta.rsi(source, rsiLength) // Buy and Sell Conditions with RSI Filter buyEntry = ta.crossover(source, lower) and rsiValue < rsiOversold sellEntry = ta.crossunder(source, upper) and rsiValue > rsiOverbought // Entry and Exit Logic if (buyEntry) strategy.entry("BBandLE", strategy.long, stop=lower, oca_name="BollingerBands", comment="BBandLE") else strategy.cancel(id="BBandLE") if (sellEntry) strategy.entry("BBandSE", strategy.short, stop=upper, oca_name="BollingerBands", comment="BBandSE") else strategy.cancel(id="BBandSE") // Plot Bollinger Bands on the chart plot(upper, color=color.red, title="Upper Band") plot(lower, color=color.green, title="Lower Band") // Plot RSI on the chart hline(rsiOverbought, "Overbought", color=color.red) hline(rsiOversold, "Oversold", color=color.green) plot(rsiValue, color=color.blue, title="RSI") // Plot buy and sell signals on the chart plotshape(series=buyEntry, title="Buy Signal", color=color.green, style=shape.triangleup, location=location.belowbar) plotshape(series=sellEntry, title="Sell Signal", color=color.red, style=shape.triangledown, location=location.abovebar)