수정된 볼링거 밴드 전략 (Modified Bollinger Bands Strategy) 은 강력한 상승 추세에서 인회 구매 기회를 포착하기 위해 설계된 기술 분석 거래 전략이다. 이 전략은 볼링거 밴드, 이동 평균 및 스토카스틱 RSI 지표를 결합하여 최적의 입구 지점을 결정한다. 가격이 상승 추세에서 낮은 볼링거 밴드로 끌어당겨지고 스토카스틱 RSI가 과판 조건을 나타낼 때 전략은 구매 신호를 생성한다. 가격이 상위 볼링거 밴드 이상으로 넘어갈 때 포지션은 닫힌다.
전략의 구매 조건은 다음과 같습니다.
전략의 판매 조건 (장시점 출구) 은 다음과 같습니다.
수정 된 볼링거 밴드 전략은 강력한 상승 추세에서 인수 구매 기회를 포착하는 것을 목표로하는 간단하면서도 효과적인 거래 전략입니다. 볼링거 밴드, 이동 평균 및 스토카스틱 RSI 지표를 결합함으로써 전략은 가격이 과판되었지만 전체 추세는 상승세를 유지하는 상황을 식별하려고 시도합니다. 전략은 추세와 변동성 관리와 같은 몇 가지 장점이 있지만 위험 관리 및 매개 변수 민감성 부족과 같은 특정 위험도 가지고 있습니다. 적절한 위험 관리 기술, 매개 변수 최적화 및 다른 지표와 결합하여 전략을 더 향상시킬 수 있습니다. 실제 거래에서 전략을 적용하기 전에 포괄적인 백테스팅과 포워드 테스팅이 필요합니다.
/*backtest start: 2024-03-01 00:00:00 end: 2024-03-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Modified Bollinger Bands Strategy", shorttitle="Mod BB Strategy", overlay=true) // Input parameters for Bollinger Bands length = input.int(20, minval=1, title="BB Length") mult = input.float(2.0, minval=0.001, maxval=50, title="BB StdDev") // Input parameters for moving average maLength = input.int(50, minval=1, title="MA Length") // Input parameters for Stochastic RSI kLength = input.int(14, title="Stoch RSI K Length") dLength = input.int(3, title="Stoch RSI D Length") rsiLength = input.int(14, title="Stoch RSI Length") oversold = input.float(20, title="Stoch RSI Oversold Level") // Calculate Bollinger Bands basis = ta.sma(close, length) dev = mult * ta.stdev(close, length) upperBB = basis + dev lowerBB = basis - dev // Calculate Moving Average movingAvg = ta.sma(close, maLength) // Calculate Stochastic RSI rsi = ta.rsi(close, rsiLength) k = ta.sma(ta.stoch(rsi, rsi, rsi, kLength), dLength) d = ta.sma(k, dLength) // Define buy and sell conditions longCondition = close < lowerBB and close > movingAvg and k < oversold exitCondition = close > upperBB // Plotting plot(basis, "Basis", color=color.new(#FF6D00, 0)) plot(upperBB, "Upper", color=color.new(#2962FF, 0)) plot(lowerBB, "Lower", color=color.new(#2962FF, 0)) plot(movingAvg, "Moving Average", color=color.new(#FFFF00, 0)) // Execute strategy if (longCondition) strategy.entry("Buy", strategy.long) if (exitCondition) strategy.close("Buy")