
이 전략은 부린밴드 (Bollinger Bands) 와 상대적으로 약한 지수 (RSI) 를 결합한 동적 간 거래 시스템이다. 부린밴드와 RSI의 오버 바이 오버 셀 레벨의 교차점을 모니터링하여 시장의 전환점을 포착한다. 전략의 핵심 아이디어는 시장이 오버 셀 때 반등 기회를 찾고, 시장이 오버 바이 할 때 정지하는 것이다.
이 전략은 20주기 브린띠와 14주기 RSI를 핵심 기술 지표로 사용한다. 브린띠는 3개의 선으로 구성된다. 중도 ((20주기 단순 이동 평균), 상도 ((중도+2배 표준 차) 및 하도 ((중도-2배 표준 차)). 구매 신호는 두 가지 조건이 동시에 충족될 때 촉발된다: 가격이 아래에서 위로 브린띠 하도를 돌파하고 RSI는 45보다 낮다 (정규 30의 1.5배). 판매 신호는 가격이 아래로 돌파하고 RSI는 70보다 높을 때 촉발된다.
흔들림 시장 위험: 가로판 흔들림 시장에서 빈번한 가짜 브레이크 신호가 발생할 수 있다. 추천: 트렌드 필터를 추가하여 트렌드가 명확한 경우에만 포지션을 열 수 있습니다.
지연 위험: 이동 평균 계산으로 인한 지연은 신호의 적시에 영향을 미칠 수 있다. 추천: 보조 확인으로 더 짧은 주기의 지표를 사용하는 것을 고려할 수 있습니다.
과도한 최적화 위험: 매개 변수 최적화는 역사 데이터에 과도한 일치로 이어질 수 있다. 추천: 다양한 시기와 시장 환경에서 충분한 테스트를 수행하십시오.
트렌드 필터를 추가: 트렌드 강도를 판단하기 위해 ADX 또는 장기 이동 평균을 도입할 수 있으며, 트렌드가 명확한 경우에만 거래한다.
최적화된 스톱 로즈 설정: ATR의 동적 설정으로 스톱 로즈 위치를 설정할 수 있으며, 위험 제어의 유연성을 높인다.
교류량 확인을 도입: 교류량 분석을 추가하여, 돌파할 때 증량 확인을 필요로 하며, 신호 신뢰성을 향상시킨다.
포지션 관리를 개선: 시장의 변동성과 계좌의 위험도에 따라 포지션 크기를 자동으로 조정한다.
이것은 기술 분석의 고전 지표와 결합 된 성숙한 전략이며, 브린 밴드 및 RSI의 조합을 통해 큰 추세를 파악하고 위험을 제어 할 수 있습니다. 전략 설계 아이디어는 명확하고, 구현 방법은 간단하며, 실용성이 좋습니다. 일부 고유한 위험이 있지만, 합리적인 매개 변수 설정과 위험 관리 조치를 통해 안정적인 거래 시스템을 구축 할 수 있습니다.
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-19 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"DOGE_USDT"}]
*/
//@version=5
strategy("Bollinger Bands + RSI Strategy", overlay=true)
// Bollinger Bands Parameters
length = input.int(20, title="Bollinger Length")
src = close
mult = input.float(2.0, title="Bollinger Multiplier")
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
// RSI Parameters
rsiLength = input.int(14, title="RSI Length")
rsiOverbought = input.int(70, title="RSI Overbought Level", minval=50)
rsiOversold = input.int(30, title="RSI Oversold Level", maxval=50)
rsiValue = ta.rsi(src, rsiLength)
// Buy and Sell Conditions
buyCondition = ta.crossover(src, lower) and rsiValue < 1.5 * rsiOversold
sellCondition = ta.crossunder(src, upper) and rsiValue > rsiOverbought
// Plot Bollinger Bands
plot(basis, color=color.blue, title="Basis")
p1 = plot(upper, color=color.red, title="Upper Band")
p2 = plot(lower, color=color.green, title="Lower Band")
fill(p1, p2, color=color.gray, transp=90)
// Plot RSI
//hline(rsiOverbought, "Overbought", color=color.red)
//hline(rsiOversold, "Oversold", color=color.green)
// Execute Orders
if (buyCondition)
strategy.entry("Buy", strategy.long)
if (sellCondition)
strategy.close("Buy")
// Display signals on the chart
plotshape(series=buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=sellCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")