콘텐츠로 이동

거래량 (Volume)

거래량 지표는 가격 움직임의 신뢰도를 측정합니다. 가격 상승이 거래량을 동반하면 추세가 강하다고 판단합니다.

ta.obv()

OBV (On-Balance Volume)

거래량을 누적하여 가격과 거래량의 관계를 분석합니다. 가격 상승 시 거래량을 더하고, 하락 시 빼는 방식입니다.

ta.obv(close, volume) → TSeries

파라미터:

이름 타입 설명
close TSeries 종가 시계열
volume TSeries 거래량 시계열

반환값: TSeries

해석:

  • OBV 상승: 매수세 증가 (가격 상승 가능)
  • OBV 하락: 매도세 증가 (가격 하락 가능)
  • 가격은 횡보인데 OBV 상승: 잠재적 상승 돌파 신호
  • 가격은 상승인데 OBV 하락: 추세 약화 경고

예제:

c = chart("1D")
obv = ta.obv(c.close, c.volume)

c.line("OBV", obv, color="blue")

# OBV 이동평균과 비교
obv_ma = ta.sma(obv, 20)
c.line("OBV MA", obv_ma, color="orange")

if obv.cross_up(obv_ma):
    buy(tag="OBV 상향 돌파 — 매수세 증가")
elif obv.cross_down(obv_ma):
    sell(tag="OBV 하향 이탈 — 매도세 증가")

OBV 다이버전스

c = chart("1D")
obv = ta.obv(c.close, c.volume)

# 가격은 신고가인데 OBV는 신고가 못 만듦 → 약세 다이버전스
price_high = c.close[0] >= ta.highest(c.close, 20)[0]
obv_not_high = obv[0] < ta.highest(obv, 20)[0]

if price_high and obv_not_high:
    log("OBV 약세 다이버전스 — 추세 약화 가능성")
    sell(tag="OBV 약세 다이버전스")

ta.vwap()

VWAP (Volume Weighted Average Price)

거래량 가중 평균 가격으로, 기관 투자자들이 자주 사용하는 벤치마크 가격입니다.

ta.vwap(high, low, close, volume) → TSeries

파라미터:

이름 타입 설명
high TSeries 고가 시계열
low TSeries 저가 시계열
close TSeries 종가 시계열
volume TSeries 거래량 시계열

반환값: TSeries

해석:

  • 가격 > VWAP: 매수세 우위, 평균 매입가 이상
  • 가격 < VWAP: 매도세 우위, 평균 매입가 이하
  • VWAP은 지지/저항으로 작용하기도 함

예제:

c = chart("5T")
vwap = ta.vwap(c.high, c.low, c.close, c.volume)

c.line("VWAP", vwap, color="purple")

# VWAP 기준 매매
if c.close > vwap:
    buy(tag="VWAP 위 — 매수세 우위")
elif c.close < vwap:
    sell(tag="VWAP 아래 — 매도세 우위")

VWAP 밴드 전략

c = chart("5T")
vwap = ta.vwap(c.high, c.low, c.close, c.volume)
atr = ta.atr(c.high, c.low, c.close, 14)

# VWAP 상하 밴드
vwap_upper = vwap[0] + atr[0] * 2
vwap_lower = vwap[0] - atr[0] * 2

if c.close[0] < vwap_lower:
    buy(tag="VWAP 하단밴드 이탈 — 반등 기대")
elif c.close[0] > vwap_upper:
    sell(tag="VWAP 상단밴드 이탈 — 과열")

거래량 분석 전략

version("1.0")
description("거래량 확인 추세 전략")

c = chart("1D")

# 거래량 지표
obv = ta.obv(c.close, c.volume)
obv_ma = ta.sma(obv, 20)
vol_sma = ta.sma(c.volume, 20)

# 추세 지표
sma20 = ta.sma(c.close, 20)

# 차트 표시
c.line("SMA 20", sma20, color="blue")
c.line("Vol SMA", vol_sma, color="gray")

# 가격 상승 + 거래량 증가 + OBV 상승 = 강한 매수 시그널
price_up = c.close > sma20
vol_surge = c.volume[0] > vol_sma[0] * 1.5
obv_bullish = obv > obv_ma

if price_up and vol_surge and obv_bullish:
    buy(tag="가격+거래량+OBV 삼중 확인")
elif not price_up and vol_surge and not obv_bullish:
    sell(tag="하락+거래량증가+OBV약세")
else:
    hold()

관련 문서