OBV 계산법: 거래량은 정말 주가보다 먼저 움직일까?

1. OBV는 실제 순매수량이 아니라 방향을 붙인 전체 거래량입니다

OBV(On-Balance Volume)는 종가가 오른 날의 거래량을 누적값에 더하고, 내린 날의 거래량을 빼는 지표입니다. 종가가 전일과 같으면 그날 거래량은 계산에서 제외합니다.

TradingView의 OBV 설명Fidelity의 OBV 안내는 모두 같은 계산 구조를 제시합니다. 가격과 OBV 추세가 함께 움직이는지 확인하고, 두 방향이 달라지는 다이버전스를 관찰하는 용도입니다.

OBV로 확인할 수 있는 내용 OBV만으로 단정할 수 없는 내용
상승일과 하락일에 배분된 거래량 누적 외국인·기관·세력의 실제 순매수량
OBV 방향과 고점·저점 변화 거래 주체별 매집·분산
가격 피벗과 OBV 피벗의 불일치 다이버전스 뒤 가격 반전 보장
거래량이 큰 하루가 누적값에 준 영향 장중 매수·매도 체결의 선후 관계

주식 거래는 한 건마다 매수자와 매도자가 함께 존재합니다. OBV는 체결을 주체별로 나누지 않고 당일 종가 방향에 따라 전체 거래량에 하나의 부호를 붙입니다. 따라서 OBV 상승을 특정 주체의 매집 증거로 해석할 수는 없습니다.

2. 종가 방향에 따라 거래량 전체를 더하거나 뺍니다

당일 방향성 거래량은 다음 세 조건으로 계산합니다.

OBV 방향성 거래량 계산식

방향성 거래량을 직전 OBV에 누적합니다.

OBV 누적 계산식

종가가 1원만 올라도 당일 거래량 전체를 더하고, 큰 폭으로 상승해도 더하는 값은 당일 거래량과 같습니다. 반대로 거래량이 매우 큰 날 종가가 소폭 하락하면 해당 거래량 전체가 빠지므로 한 거래일이 누적선의 수준을 크게 바꿀 수 있습니다.

OBV의 첫 값을 0, 첫날 거래량 또는 임의의 값으로 시작해도 이후 선의 모양은 수직으로 이동할 뿐입니다.

OBV 시작값 불변식

Fidelity도 OBV의 절대값보다 방향을 보도록 설명합니다. 종목마다 상장 주식 수와 거래량 단위가 다르므로 서로 다른 종목의 OBV 숫자 크기를 직접 비교해서도 안 됩니다. 이번 계산은 각 종목의 첫 관찰일을 0으로 시작했습니다.

3. 가격과 OBV는 계산 구조상 자주 같은 방향으로 움직입니다

OBV는 가격이 오른 날에만 거래량을 더하고 내린 날에만 뺍니다. 따라서 가격과 완전히 독립된 변수가 아닙니다.

2018년부터 OBV를 누적하고 2022년 1월 3일부터 2026년 8월 7일까지 10개 대형주 8,860거래일을 평가했습니다. 20거래일 전과 비교할 수 있는 8,760개 구간에서 가격 변화와 OBV 변화의 부호를 비교했습니다.

OBV 가격 방향과 확정 다이버전스 및 선행 돌파 결과
20거래일 방향 관찰 비율
가격과 OBV가 같은 방향 82.97%
가격 상승·OBV 하락 6.61%
가격 하락·OBV 상승 9.84%
보합이 포함된 나머지 0.58%

같은 방향이 82.97%였다는 결과는 OBV가 추세를 확인하는 데 사용할 수 있다는 뜻과 동시에 가격 방향이 계산에 이미 들어 있다는 뜻입니다. 가격과 OBV가 함께 상승했다는 사실만으로 거래량이 가격을 선행했다고 결론 내릴 수 없습니다.

다이버전스는 같은 방향에서 벗어난 일부 구간을 따로 찾는 과정입니다. 피벗 기준과 확인 지연 없이 눈으로만 선을 그으면 분석자가 원하는 고점과 저점을 선택하기 쉬우므로 규칙을 먼저 고정해야 합니다.

4. 같은 OBV 하락 다이버전스 뒤에도 결과는 달랐습니다

이번 계산에서는 종가가 앞뒤 5거래일을 포함한 11개 봉의 최고 종가일 때 고점 피벗으로 정했습니다. 연속된 두 피벗의 간격은 10~60거래일로 제한했습니다. 가격 고점은 높아졌지만 같은 날짜의 OBV는 낮아졌을 때 하락 다이버전스로 분류했습니다.

오른쪽 5개 봉이 있어야 현재 고점이 확정되므로 실제 신호일은 두 번째 피벗 날짜보다 5거래일 늦습니다. 수익률도 피벗 날짜가 아니라 확인이 끝난 날의 종가부터 측정했습니다.

삼성전자 OBV 하락 다이버전스 뒤 상승과 하락 사례
항목 상승 사례 하락 사례
첫 번째 가격 고점 2024년 5월 8일·81,300원 2026년 6월 2일·360,500원
두 번째 가격 고점 2024년 6월 20일·81,600원 2026년 6월 18일·362,500원
첫 번째 OBV 7,362만 주 10억 2,216만 주
두 번째 OBV 4,572만 주 10억 735만 주
신호 확정일 2024년 6월 27일 2026년 6월 25일
10거래일 수익률 +7.35% -22.45%

두 사례 모두 가격 고점은 높아지고 OBV 고점은 낮아지는 같은 조건이었습니다. 첫 사례는 하락 다이버전스가 확정된 뒤에도 가격이 상승했고, 두 번째 사례는 큰 폭으로 하락했습니다.

OBV 하락 다이버전스는 상승일 거래량의 누적이 가격 고점을 확인하지 못했다는 경고입니다. 하지만 경고와 실제 하락 시점은 별개의 문제이며 추세 강도와 청산 규칙을 포함하지 않습니다.

5. 확정 다이버전스는 적었고 선행 돌파도 방향을 보장하지 않았습니다

가격 저점은 낮아지고 OBV 저점은 높아지는 상승 다이버전스도 같은 피벗 규칙으로 계산했습니다.

확정 다이버전스 관찰 예상 방향 일치 10일 수익률 중앙값 최저~최고
상승 다이버전스 37개 64.86% +1.50% -20.59%~+27.87%
하락 다이버전스 24개 62.50% -1.67% -22.45%~+11.20%

두 다이버전스 모두 예상 방향 일치율이 50%를 넘었지만 전체 표본은 61개에 불과했습니다. 피벗 폭이나 두 고점·저점의 간격을 바꾸면 신호 수도 달라집니다. 상승 다이버전스에서도 -20.59%, 하락 다이버전스에서도 +11.20%의 반대 결과가 있었습니다.

OBV가 가격보다 먼저 움직인다는 주장도 별도로 확인했습니다. 직전 60거래일 OBV 최고치를 넘었지만 종가는 직전 가격 최고치보다 2% 이상 낮은 첫날을 OBV 선행 신고가로 정의했습니다. 반대 조건은 OBV 선행 신저가로 정했습니다.

선행 돌파 후보 관찰 예상 방향 일치 10일 수익률 중앙값
OBV 선행 신고가 96개 40.63% -1.05%
OBV 선행 신저가 66개 53.03% -0.32%

이 표본에서 OBV 선행 신고가 뒤 상승 비율은 40.63%에 그쳤습니다. OBV가 먼저 전고점을 넘었다는 사실만으로 가격도 곧 따라간다고 볼 수 없었습니다. 이 결과는 OBV가 항상 후행한다는 뜻이 아니라, 선행 돌파 자체를 완성된 매매 신호로 사용할 근거가 부족하다는 뜻입니다.

6. OBV는 절대값보다 변화와 확인 시점을 봅니다

OBV를 분석이나 전략에 사용할 때는 다음 순서로 확인합니다.

  1. 종가와 거래량의 수정 여부 및 시간 단위를 기록합니다.
  2. 시작값이 달라도 선의 변화는 같다는 점을 확인합니다.
  3. OBV를 실제 투자자별 순매수량으로 해석하지 않습니다.
  4. 가격과 OBV 피벗의 날짜를 동일하게 맞춥니다.
  5. 오른쪽 봉이 필요한 피벗은 확정 지연을 주문 시점에 반영합니다.
  6. 단일 대량 거래일과 거래비용을 포함해 실패 구간을 검증합니다.

핵심은 간단합니다. OBV는 상승일 거래량과 하락일 거래량의 누적 차이를 보여주지만 누가 사고팔았는지 또는 가격보다 반드시 먼저 움직일지는 알려주지 않습니다. 절대값보다 방향과 다이버전스를 관찰하되 피벗 확정일과 반대 사례를 함께 확인해야 합니다.

가격 위치까지 반영해 누적 거래량을 계산하는 방식은 Chaikin Oscillator 계산법, 거래량 감소일만 반영하는 방식은 NVI 계산법, 거래량의 장단기 흐름을 비교하는 방식은 Klinger Oscillator 계산법, 한 봉의 몸통과 고저 범위를 비교하는 방식은 BOP 계산법을 참고할 수 있습니다.

본 포스팅은 가격 데이터와 기술적 지표의 수리적 이해를 돕기 위한 참고 자료이며, 특정 종목에 대한 투자 권유나 수익을 보장하지 않습니다. 투자 결과에 대한 책임은 투자자 본인에게 있습니다.