이 전략은 볼링거 밴드와 상대적 강도 지수 (RSI) 를 결합한 양적 거래 접근법이다. 이 전략은 RSI 과잉 구매/ 과잉 판매 구역과 함께 볼링거 밴드의 가격 브레이크를 조정함으로써 시장 전환점을 포착한다. 이 전략은 20 기간 볼링거 밴드와 14 기간 RSI를 사용하여, RSI가 과잉 판매 영역에 있는 동안 가격이 하위 범위를 넘어서면 긴 포지션을 입력하고, RSI가 과잉 구매 영역에 있는 동안 가격이 상위 범위를 넘어서면 포지션을 닫는다.
핵심 논리는 두 가지 기술 지표의 시너지에 기반합니다. 볼링거 밴드는 중간 밴드 (20 기간 SMA) 와 상부/하부 밴드 (중간에 ±2 표준 편차) 로 구성되어 있으며, 가격 변동성과 트렌드를 반영합니다. RSI는 과잉 구매 / 과잉 판매 조건을 식별하기 위해 가격 움직임의 상대적 강도를 계산합니다. 가격이 하위 밴드에 닿고 RSI가 30 이하일 때 잠재적인 과잉 판매 조건과 리바운드 기회를 제안합니다. 가격이 상부 밴드에 닿고 RSI가 70 이상일 때 잠재적인 과잉 구매 조건과 수정 위험을 나타냅니다. 이러한 지표의 교차 검증은 신호 신뢰성을 향상시킵니다.
이 전략은 고전적인 기술 지표인 볼링거 밴드 (Bollinger Bands) 와 RSI를 혁신적으로 결합한 양적 전략이다. 이 지표의 상호 보완적인 효과를 통해 시그널 신뢰성을 보장하면서 시장 전환점을 효과적으로 포착한다. 전략은 명확한 논리와 강력한 실용성을 가진 간단한 계산을 갖추고 있다. 일부 내재된 위험이 있지만 제안된 최적화 방향은 전략의 안정성과 수익성을 더욱 향상시킬 수 있다. 이 전략은 트렌딩 시장에 적합하며 투자자들에게 객관적인 거래 신호 참조를 제공할 수 있다.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-25 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bollinger Bands + RSI Strategy", overlay=true) // Bollinger Bands length = 20 src = close mult = 2.0 basis = ta.sma(src, length) dev = mult * ta.stdev(src, length) upper = basis + dev lower = basis - dev // RSI rsiLength = 14 rsiOverbought = 70 rsiOversold = 30 rsiValue = ta.rsi(src, rsiLength) // Plot Bollinger Bands plot(basis, color=color.blue, linewidth=1) plot(upper, color=color.red, linewidth=1) plot(lower, color=color.green, linewidth=1) // Plot Buy/Sell signals buySignal = ta.crossover(close, lower) and rsiValue < rsiOversold sellSignal = ta.crossunder(close, upper) and rsiValue > rsiOverbought plotshape(series=buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plotshape(series=sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL") // Strategy Entry/Exit if (buySignal) strategy.entry("Buy", strategy.long) if (sellSignal) strategy.close("Buy") // RSI Plot (not on overlay, for reference) rsiPlot = plot(rsiValue, title="RSI", color=color.purple, linewidth=1, offset=-1) hline(rsiOverbought, "Overbought", color=color.red) hline(rsiOversold, "Oversold", color=color.green)