콘텐츠로 이동
2 posts with the tag “거래량”

기술적 분석 7장: OBV 거래량 신호의 선행성

OBV와 거래량 분석

8장에서 거래량 돌파의 성과를 보기 전에, 거래량을 단순히 급증한 하루의 크기로만 볼 필요가 있는지 확인합니다. 가격이 오르는데 거래량이 줄어드는 경우와 가격 상승에 거래량이 함께 증가하는 경우는 같은 상승으로 보기 어렵습니다. 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 확인 행에서 확인할 수 있습니다.

기술적 분석 8장: 거래량 돌파의 강도

거래량 돌파 분석

1장과 7장의 비교에서 거래량 돌파는 20일 평균수익률 +9.75%로 가장 높았습니다. 이번 장에서는 그 결과를 막연한 “거래량 증가”가 아니라 직전 20일 고점 돌파와 거래량 1.5배라는 재현 가능한 조건으로 분해합니다. 신고가 돌파는 강한 매수세의 결과일 수 있지만, 이미 많은 투자자가 같은 가격을 보고 있을 가능성도 있습니다.

previous_high20 = df.groupby("code")["close"].transform(
lambda x: x.rolling(20).max().shift(1)
)
volume_average20 = df.groupby("code")["volume"].transform(
lambda x: x.rolling(20).mean().shift(1)
)
df["volume_breakout"] = (
(df["close"] > previous_high20) &
(df["volume"] > volume_average20 * 1.5)
)

기준선을 당일을 제외한 직전 20일로 만들었습니다. 당일 종가를 최고가 계산에 포함하면 돌파 여부를 판단할 때 미래 값을 일부 재사용하게 되기 때문입니다.

검증 구간의 거래량 돌파 신호는 2,726회 발생했습니다.

신호발생 횟수20일 양수 비율평균 수익률중앙값
20일 고점·거래량 돌파2,726회53.4%+9.75%+2.51%

이번 표본에서 평균 수익률은 지표 중 가장 높았습니다. 그러나 중앙값은 +2.51%, 양수 비율은 53.4%, 25% 분위수는 -11.88%였습니다. 소수의 큰 추세 상승이 평균을 끌어올렸을 가능성과 함께, 돌파 후에도 상당한 손실 사례가 있었다는 점을 동시에 봐야 합니다.

돌파 매매는 손절 규칙이 전략의 일부입니다. 돌파가 실패해 가격이 다시 20일 고점 아래로 내려오면 신호가 무효화됐다고 판단할 수 있습니다. ATR을 이용해 돌파 종목마다 다른 손절 폭을 정하면 6장의 변동성 분석과도 연결됩니다.

거래량 돌파는 이번 표본에서 가장 높은 평균수익률을 보인 후보 필터였지만, 그 자체가 매수 추천은 아닙니다. 특히 장중 돌파와 종가 확정 돌파를 구분해야 하며, 다음 거래일 체결 가격을 사용해 재검증해야 합니다. 다음 장에서는 이런 조건을 이동평균·RSI·MACD와 모두 결합했을 때 단일 거래량 신호보다 실제로 나아지는지 확인합니다.