
8장에서 거래량 돌파의 성과를 보기 전에, 거래량을 단순히 급증한 하루의 크기로만 볼 필요가 있는지 확인합니다. 가격이 오르는데 거래량이 줄어드는 경우와 가격 상승에 거래량이 함께 증가하는 경우는 같은 상승으로 보기 어렵습니다. OBV는 상승한 날의 거래량을 더하고 하락한 날의 거래량을 빼서 가격과 거래량의 방향을 하나의 시계열로 만듭니다.
OBV와 확인 신호
섹션 제목: “OBV와 확인 신호”direction = df.groupby("code")["close"].diff().apply(np.sign)df["obv"] = (direction * df["volume"]).groupby(df["code"]).cumsum()df["obv_ma20"] = df.groupby("code")["obv"].transform( lambda x: x.rolling(20).mean())
df["obv_confirmation"] = ( (df["close"] > df["ma20"]) & (df["obv"] > df["obv_ma20"]))이번 분석에서는 가격이 MA20 위에 있고 OBV도 OBV20 위로 올라온 첫날을 확인 신호로 정의했습니다.
실제 결과
섹션 제목: “실제 결과”검증 구간에서 OBV 확인 신호는 2,653회 발생했습니다.
| 신호 | 발생 횟수 | 20일 양수 비율 | 평균 수익률 | 중앙값 |
|---|---|---|---|---|
| OBV 확인 | 2,653회 | 53.8% | +6.02% | +2.03% |
| 거래량 돌파 | 2,726회 | 53.4% | +9.75% | +2.51% |
OBV 확인은 거래량 돌파보다 평균수익률과 중앙값은 낮았지만, 양수 비율은 53.8%로 거래량 돌파의 53.4%보다 소폭 높았습니다. RSI 회복과 비교하면 평균과 중앙값이 모두 높았습니다. 즉 OBV가 거래량 돌파를 대체하는 더 강한 신호라기보다, 가격 추세가 거래량의 누적 방향과도 맞는지 확인하는 역할에 가깝습니다. 그래도 양수 비율이 53.8%에 그쳤으므로 거래량이 증가했다는 사실만으로 향후 상승을 확정할 수는 없습니다.
인사이트
섹션 제목: “인사이트”이번 결과에서 OBV의 역할은 단독 매수 신호보다 가격 신호의 신뢰도 확인에 가깝습니다. 급격한 거래량 돌파는 큰 평균수익률을 만들었고, OBV 확인은 비슷한 양수 비율을 조금 더 안정적으로 보완했습니다. 둘을 함께 사용하면 정보가 추가되는지, 같은 거래량 정보를 중복해서 쓰는지는 복합 신호에서 다시 확인해야 합니다.
- 가격이 MA20 위인데 OBV가 하락하면 상승의 내부가 약할 수 있습니다.
- 가격이 횡보하는 동안 OBV가 상승하면 매집 가능성을 살펴볼 수 있습니다.
- 급등일 거래량만으로 OBV가 높아졌는지, 여러 날 누적되어 높아졌는지 구분해야 합니다.
다음 장에서는 평균수익률이 가장 높았던 거래량 돌파를 20일 고점 돌파라는 명확한 조건으로 분해해, 높은 평균이 얼마나 넓은 사례에서 나왔는지 확인합니다.
결과는 신호별 결과 CSV의 OBV 확인 행에서 확인할 수 있습니다.