VWAP 편차 및 OBV-RSI 복합 평균 회귀 거래 전략

VWAP RSI OBV WMA MA
생성 날짜: 2025-02-18 15:02:17 마지막으로 수정됨: 2025-02-18 15:02:17
복사: 4 클릭수: 539
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

VWAP 편차 및 OBV-RSI 복합 평균 회귀 거래 전략

개요

이것은 VWAP (거래량 가중 평균 가격) 편차와 OBV (에너지 유동 지수) RSI의 복합 평균 회귀를 결합한 거래 전략이다. 이 전략은 가격의 VWAP에 대한 편차 정도를 모니터링하고, OBV-RSI 지수의 오버 바이 오버 셀 상태가 시장의 극단적 인 상태가 발생했을 때 거래한다. 가격이 VWAP에서 특정 정도에 도달하고 OBV-RSI 지표가 오버 바이 또는 오버 셀 상태를 표시 할 때, 전략은 거래 신호를 발산하고, 가격이 VWAP로 돌아가는 시에는 평지한다.

전략 원칙

이 전략은 두 가지 핵심 지표에 기반합니다.

  1. VWAP 편차 지표: 60주기 중화 이동 평균 ((WMA) 을 사용하여 VWAP 기준선을 계산하고, 표준 편차를 계산하여 상하 2배 표준 편차 통로를 사용합니다. 이 통로는 가격의 극한 편차를 식별하는 데 사용됩니다.
  2. OBV-RSI 지표: OBV에 전통적인 RSI를 적용하여 14주기의 상대적인 강점을 계산한다. OBV는 가격 운동의 강도를 축적된 거래량으로 반영하며, RSI는 OBV의 과매매 상태를 식별하는 데 사용됩니다.

포지션 개설 조건:

  • 더 많이: OBV-RSI <= 30 ((오버셀) 과 가격이 하향 궤도보다 낮을 때
  • 공백: OBV-RSI >= 70 ((오버 바이) 와 가격이 상반기보다 높을 때

평지 조건:

  • 가격이 VWAP 기준으로 돌아갔을 때
  • 리스크를 조절하기 위해 0.6%의 스톱로스를 설정합니다.

전략적 이점

  1. 다차원 확인: 가격, 거래량 및 동력 지표와 결합하여 더 신뢰할 수 있는 거래 신호를 제공합니다.
  2. 리스크 제어: 고정 스톱과 평균값 회귀 평점 메커니즘을 이용한 이중 보호
  3. 적응력: 매개 변수를 조정하여 다양한 시장 환경에 적응할 수 있습니다.
  4. 논리 명확성: 거래 신호가 명확하고, 이해하기 쉽고, 실행하기 쉽다.
  5. 평균 회귀 특성: 시장 과잉 반응으로 인한 거래 기회를 활용

전략적 위험

  1. 트렌드 시장 위험: 강한 트렌드 시장에서 잘못된 신호를 자주 유발할 수 있습니다.
  2. 슬라이드 위험: 급격한 변동이 있을 때 더 큰 슬라이드 위험에 직면할 수 있다.
  3. 가짜 브레이크 위험: 시그널이 발동된 후 가격이 극한 방향으로 계속 움직일 수 있다.
  4. 매개변수 민감도: 매개변수 조합이 다양하면 전략 성능에 큰 차이가 생길 수 있습니다.
  5. 유동성 위험: 유동성이 부족한 시장에서 거래가 어렵고 적시에 수행될 수 있습니다.

전략 최적화 방향

  1. 동적 변수 조정: 시장의 변동에 따라 적응하여 VWAP 및 RSI 변수를 조정
  2. 시장 환경 필터링: 트렌드 필터를 추가하여 강한 트렌드 시장에서 거래 빈도를 낮추기
  3. 스톱 메커니즘 최적화: 다이내믹 스톱 메커니즘을 설계하여 수익 지속성을 향상시킵니다.
  4. 포지션 관리: 변동성과 위험 평가에 따라 포지션 크기를 동적으로 조정
  5. 신호 확인 강화: 추가 기술 지표 또는 시간 필터를 추가하여 신호 품질을 향상시킵니다.

요약하다

이 전략은 VWAP 편향과 OBV-RSI 지표를 결합하여 안정적인 평균 회귀 거래 시스템을 구축한다. 전략은 극단적인 시장 상태에서 거래 기회를 찾고, 여러 위험 제어 메커니즘을 통해 자금 안전을 보호한다.

전략 소스 코드
/*backtest
start: 2024-02-19 00:00:00
end: 2025-02-16 08:00:00
period: 4h
basePeriod: 4h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy('[Hoss] Combined Strategy', overlay=true)

// Indikator 1: [Hoss] VWAP Deviation
indicator_vwap = input.bool(true, title="Show VWAP Deviation Indicator", group="Visibility")
length = input.int(60, title="VWAP Length", group="VWAP Settings")
src = input(close, title="Source", group="VWAP Settings")

// Berechnungen für VWAP
vwmean = ta.wma(src, length)
dev = ta.stdev(src, length)
basis = vwmean
upper_dev2 = vwmean + dev * 2
lower_dev2 = vwmean - dev * 2

// Plotting VWAP Deviation
plot(indicator_vwap ? basis : na, color=color.gray, title='Basis', linewidth=2)
plot1 = plot(indicator_vwap ? upper_dev2 : na, color=color.red, title='Upper Dev 2', linewidth=2)
plot2 = plot(indicator_vwap ? lower_dev2 : na, color=color.green, title='Lower Dev 2', linewidth=2)
fill(plot1, plot2, color=color.new(color.green, 80), title='Deviation Band')

// Indikator 2: [Hoss] OBV RSI
indicator_obv_rsi = input.bool(true, title="Show OBV RSI Indicator", group="Visibility")
len = input.int(14, title="RSI Length", group="OBV RSI Settings")
obv = ta.cum(ta.change(src) > 0 ? volume : ta.change(src) < 0 ? -volume : 0)
rsi = ta.rsi(obv, len)

// Plotting OBV RSI
plot(indicator_obv_rsi ? rsi : na, color=color.blue, title="OBV RSI", linewidth=2)
hline(70, title="Overbought", color=color.red, linestyle=hline.style_dashed)
hline(30, title="Oversold", color=color.green, linestyle=hline.style_dashed)

// Strategie: Kauf- und Verkaufssignale
long_condition = not na(rsi) and rsi <= 30 and close <= lower_dev2
short_condition = not na(rsi) and rsi >= 70 and close >= upper_dev2

if (long_condition)
    strategy.entry("Long", strategy.long, stop=close * 0.994) // Stop-Loss bei 0.6%

if (short_condition)
    strategy.entry("Short", strategy.short, stop=close * 1.006) // Stop-Loss bei 0.6%

// Flash Close beim Erreichen des VWAP
if (strategy.position_size > 0 and close >= basis)
    strategy.close("Long")

if (strategy.position_size < 0 and close <= basis)
    strategy.close("Short")