
윌리엄스%R 강제 반전 전략과 ATR 트렌드 필터는 시장의 중요한 전환점을 식별하기 위해 고안된 정량 거래 시스템이다. 이 전략의 핵심은 윌리엄스%R 흔들림 지표의 오버 바이 지역 ((-21) 과 오버 셀 지역 ((-79) 에서의 신호를 이용하고, 평균 실제 파장 ((ATR) 트렌드 필터와 결합하여 거래 신호의 품질을 향상시킨다. 이 조합 방법은 특히 짧은 시간 주기 ((30분 이상) 의 거래, 특히 통화 쌍 거래에 적합하며, 시장의 극한 지역에서 강제 반전 작업을 수행하여 다채로운 포지션의 자동 전환을 구현한다.
이 전략은 두 가지 핵심 기술 지표: 윌리엄스%R 및 ATR에 기반을 두고 있다.
윌리엄스 %R 지표 적용:
ATR 트렌드 필터:
리버설 로직을 강제합니다.:
이 코드는ta.crossover그리고ta.crossunder함수 탐지 지표가 중요한 수준을 통과하면서 ATR의 방향을 추가 확인 조건으로 사용한다. 시스템은 100%의 자본 비율의 전체 포지션 운영으로 설계되어 있으며, 스톱 및 스톱 설정이 없으며, 포지션을 종료하기 위해 완전히 역전 신호에 의존한다.
신호는 명확하고 객관적입니다.:
이중 지표 공인:
강제 회전 장치의 효율성:
단기적 변동 시장에 적합하다.:
자금 사용 효율성:
손해 방지 장치의 부재:
신호 지연성:
과도한 거래의 위험:
매개변수 민감도:
ATR 필터 부족:
손해 방지 및 정지 장치를 추가:
트렌드 필터링을 강화합니다.:
최적화 매개 변수 적응 메커니즘:
추가 신호 확인 메커니즘:
포지션 관리 최적화:
윌리엄스%R 강제 반전 전략은 ATR 트렌드 필터와 결합되어 시장의 극한 지역의 반전 기회를 포착하는 데 초점을 맞춘 정교하게 설계된 양적 거래 시스템입니다. 이 전략은 윌리엄스%R의 과매매 판단과 ATR 트렌드 확인을 결합하여 효율적인 거래 메커니즘을 생성합니다. 특히 짧은 시간 주기의 흔들리는 시장 거래에 적합합니다.
이 전략은 개념적으로 간결하고 직접적으로 실행되지만, 내장된 위험 관리 장치가 없는 것은 명백한 결점이다. 실제 적용에서, 거래자는 적절한 스톱 스텝 전략을 추가하고, 다양한 시장 환경에 적응하기 위해 최적화된 트렌드 필터링 시스템과 매개 변수 설정을 고려하는 것이 강력히 권장된다.
이 전략의 진정한 가치는 시장의 극단적인 상황에 대한 민감성과 자동화된 포지션 반전 메커니즘에 있습니다. 이는 짧은 라인 거래자의 도구 상자에 강력한 무기입니다. 제안된 최적화 방향을 통해이 기본 전략은 더 포괄적이고 안정적인 거래 시스템으로 발전 할 수 있습니다. 시장의 전환점을 포착 할뿐만 아니라 위험을 효과적으로 관리하고 다양한 시장 조건에 적응 할 수 있습니다.
/*backtest
start: 2025-01-01 00:00:00
end: 2025-08-18 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_OKX","currency":"BTC_USDT","balance":5000}]
*/
//@version=5
strategy("Williams %R Forced Flip Strategy (-79/-21) + ATR(5) Trend Filter [No SL/TP]", overlay=true, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// Inputs
len = input.int(60, "Williams %R Length", minval=1)
buyLvl = input.float(-79.0, "Buy Level", minval=-100, maxval=0, step=0.1)
sellLvl= input.float(-21.0, "Sell Level", minval=-100, maxval=0, step=0.1)
atrLen = input.int(5, "ATR Length", minval=1)
// Indicators
wr = ta.wpr(len) // Williams %R (-100..0)
atr = ta.atr(atrLen) // ATR(5)
atrUp = atr > atr[1] // rising ATR
atrDown = atr < atr[1] // falling ATR
// Entry signals
longSignal = ta.crossover(wr, buyLvl) and atrUp // cross above -79 + ATR rising
shortSignal = ta.crossunder(wr, sellLvl) and atrDown // cross below -21 + ATR falling
// --- Forced Flip Logic ---
// If long signal → close shorts and go long
if (longSignal)
strategy.close("Short")
strategy.entry("Long", strategy.long)
// If short signal → close longs and go short
if (shortSignal)
strategy.close("Long")
strategy.entry("Short", strategy.short)
// --- Plots ---
// Williams %R
plot(wr, title="Williams %R", color=color.blue)
hline(buyLvl, "Buy Trigger (-79)", color=color.green)
hline(sellLvl, "Sell Trigger (-21)", color=color.red)
hline(-50, "Midline (-50)", color=color.orange)
// ATR + slope markers
plot(atr, title="ATR(5)", color=color.purple)
plotchar(atrUp, title="ATR Rising", char="▲", location=location.bottom, color=color.green, size=size.tiny)
plotchar(atrDown, title="ATR Falling", char="▼", location=location.bottom, color=color.red, size=size.tiny)