이 전략은 윌리엄스 %R 및 상대적 강도 지수 (RSI) 를 사용하여 이중 추진력 돌파구 확인을 기반으로 한 양적 거래 전략입니다. 전략은 두 개의 추진력 지표의 교차 돌파구를 통해 거래 신호를 식별하여 잘못된 돌파구의 위험을 효과적으로 줄여줍니다. 과소매 및 과소매 지역에서 거래 기회를 찾고 두 지표의 상호 확인을 통해 거래 정확성을 향상시킵니다.
이 전략은 30 기간 윌리엄스 %R와 7 기간 RSI를 주요 지표로 사용한다. 윌리엄스 %R가 -80을 넘고 RSI가 동시에 20을 넘을 때 구매 신호가 발생하고, 윌리엄스 %R가 -20을 넘고 RSI가 동시에 80을 넘을 때 판매 신호가 생성된다. 이 이중 확인 메커니즘은 단일 지표에서 잠재적 인 잘못된 신호를 효과적으로 필터링한다. 이 전략은 보다 정확한 지표 값을 위해 기간 내 가장 높고 가장 낮은 가격을 계산함으로써 윌리엄스 %R의 수동 계산을 구현한다.
이 전략은 윌리엄스 %R와 RSI의 시너지를 통해 견고한 거래 시스템을 구축합니다. 이중 추진력 확인 메커니즘은 잘못된 신호 위험을 효과적으로 줄이고, 과잉 구매 및 과잉 판매 구역에서의 거래는 좋은 수익 잠재력을 제공합니다. 적절한 위험 통제 및 지속적인 최적화를 통해 전략은 다른 시장 환경에서 안정적인 성과를 유지할 수 있습니다.
/*backtest start: 2024-11-12 00:00:00 end: 2024-12-11 08:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Williams %R + RSI Strategy", overlay=true) // Inputs for Williams %R wpr_length = input.int(30, title="Williams %R Length", minval=1) wpr_upper = input.int(-20, title="Williams %R Upper Band", minval=-100, maxval=0) wpr_lower = input.int(-80, title="Williams %R Lower Band", minval=-100, maxval=0) // Inputs for RSI rsi_length = input.int(7, title="RSI Length", minval=1) rsi_upper = input.int(80, title="RSI Upper Band", minval=0, maxval=100) rsi_lower = input.int(20, title="RSI Lower Band", minval=0, maxval=100) // Calculate Williams %R Manually highest_high = ta.highest(high, wpr_length) lowest_low = ta.lowest(low, wpr_length) wpr = ((highest_high - close) / (highest_high - lowest_low)) * -100 // Calculate RSI rsi = ta.rsi(close, rsi_length) // Entry and Exit Conditions longCondition = ta.crossover(wpr, wpr_lower) and ta.crossover(rsi, rsi_lower) shortCondition = ta.crossunder(wpr, wpr_upper) and ta.crossunder(rsi, rsi_upper) // Plot Buy/Sell Signals plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL") // Strategy Entry and Exit if (longCondition) strategy.entry("Buy", strategy.long) if (shortCondition) strategy.entry("Sell", strategy.short)