볼링거 밴드 및 RSI 크로스오버 전략

저자:차오장, 날짜: 2023-12-29 16:40:19
태그:

img

전반적인 설명

이 전략은 볼링거 밴드 (Bollinger Bands) 및 상대적 강도 지수 (RSI) 기술 지표를 결합합니다. RSI 지표가 과반 판매 또는 과반 구매 수준을 넘어서고 가격이 볼링거 밴드 (Bollinger Bands) 를 만지거나 뚫을 때 구매 및 판매 신호를 생성합니다.

전략 논리

  1. 20주기 SMA를 기본선으로 계산합니다. 상단역은 기본 + 2 표준편차이고 하단역은 기본 - 2 표준편차로 볼링거 밴드를 구성합니다.

  2. 14주기 RSI를 계산해 보세요. 70 이상의 RSI는 과잉 구매 구역이고, 30 이하는 과잉 판매 구역입니다.

  3. RSI가 30보다 낮아지고 가격이 하위 밴드보다 낮을 때 구매 신호가 생성됩니다. RSI가 70보다 높고 가격이 상위 밴드보다 높을 때 판매 신호가 생성됩니다.

이점 분석

  1. 볼링거 밴드는 표준편차를 사용하여 가격 변동성과 강력한 역량으로 미래의 트렌드를 판단합니다.

  2. RSI는 과잉 구매 및 과잉 판매 수준을 판단합니다. 볼링거 밴드와 결합하면 반전 기회를 효과적으로 발견 할 수 있습니다.

  3. RSI는 브레이크아웃 신호를 쉽게 형성할 수 있습니다. 볼링거 밴드와 결합하면 거래 신호가 더 정확하고 신뢰할 수 있습니다.

위험 분석

  1. 볼링거 밴드는 100% 정확하지 않으며 가격이 상부 또는 하부 밴드를 뚫고 계속 작동 할 수 있습니다.

  2. RSI는 또한 볼링거 밴드와 일치하지 않는 잘못된 브레이크 아웃 신호를 형성할 수 있습니다.

  3. 적절한 매개 변수 조정이 중요합니다. 부적절한 설정은 너무 빈번하거나 드문 거래 신호로 이어질 수 있습니다.

최적화

  1. 최적의 매개 변수 조합을 찾기 위해 다른 매개 변수 기간을 테스트합니다.

  2. 신호 신뢰성을 높이기 위해 KD, MACD와 같은 다른 지표를 포함합니다.

  3. 스톱 로스를 최적화하고 리스크를 통제하기 위해 백테스트 결과를 기반으로 수익을 취합니다.

요약

이 전략은 거래 신호를 생성하기 위해 볼링거 밴드 (Bollinger Bands) 트렌드 분석과 RSI (RSI) 과잉 구매-대판판 판단을 통합합니다. 전반적으로 전략 논리는 명확하고 실용적인 가치와 함께 구현하기가 쉽습니다. 그러나 또한 몇 가지 위험이 있습니다. 매개 변수 조정 및 지표 통합은 다양한 시장 환경에 적응하기 위해 지속적으로 최적화해야합니다.


/*backtest
start: 2023-12-21 00:00:00
end: 2023-12-28 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bollinger Bands and RSI Strategy", overlay=false)

// Define the parameters
length = input.int(20, "Length", minval=1)
src = input(close, "Source")
mult = input.float(2.0, "StdDev", minval=0.001, maxval=50)
rsiLength = input.int(14, "RSI Length", minval=1)
rsiOverbought = input.int(70, "RSI Overbought Level", minval=1, maxval=100)
rsiOversold = input.int(30, "RSI Oversold Level", minval=1, maxval=100)

// Calculate the Bollinger Bands
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev

// Plot the Bollinger Bands
plot(basis, "Basis", color=#FF6D00)
p1 = plot(upper, "Upper", color=#2962FF)
p2 = plot(lower, "Lower", color=#2962FF)
fill(p1, p2, color=color.rgb(33, 150, 243, 90), title="Background")

// Calculate the RSI
rsi = ta.rsi(src, rsiLength)

// Plot the RSI
plot(rsi, "RSI", color=#FF6D00)

// Define the entry and exit conditions
longCondition = ta.crossover(rsi, rsiOversold) and src < lower // Use ta.crossover here
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = ta.crossunder(rsi, rsiOverbought) and src > upper // Use ta.crossunder here
if (shortCondition)
    strategy.entry("Short", strategy.short)

// Plot the buy and sell signals
plotshape(longCondition, title="Buy", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(shortCondition, title="Sell", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)


더 많은