거래량 가중 평균값, VWAP 파이썬 코딩

거래량 가중 평균값, VWAP 파이썬 코딩

거래량 가중 평균값(VWAP, Volume Weighted Average Price)은 주식이나 코인 시장에서 가격과 거래량의 관계를 단순 평균보다 정교하게 반영할 수 있는 기술적 지표입니다. 이번 포스팅에서는 파이썬 코딩을 통해 VWAP을 계산하는 방법을 차근차근 살펴보겠습니다. 거래량 가중 평균값을 통해 시장의 평균 체결가가 어디쯤인지 확인해 보시기 바랍니다.

 

 


글의 순서

거래량 가중 평균값(VWAP, Volume Weighted Average Price)
거래량 가중 평균값(VWAP)을 구하는 방법
예제를 통한 VWAP 계산 방법 이해
거래량 가중 평균값, VWAP 파이썬 코딩


거래량 가중 평균값(VWAP, Volume Weighted Average Price)

거래량 가중 평균값(VWAP, Volume Weighted Average Price)은 단순 이동평균선에 거래량을 합친 기술적 지표입니다. 거래량이 많을수록 해당 구간의 가격이 더 큰 가중치를 갖게 만듭니다.

예를 들어 어느 시점에 거래량이 크게 터지면서 주가(혹은 코인 시세)가 상승했다면, VWAP 역시 일반 이동평균선보다 민감하게 반응하며 더 빠르게 위로 따라가는 모습을 보입니다. 이렇게 가격뿐 아니라 거래량을 함께 고려하기 때문에, 거래가 많이 일어난 실제 체결 지점을 좀 더 정확히 반영해준다는 장점이 있습니다.

VWAP은 주로 인트라데이 차트(당일 거래 시간 내의 가격 변동)에 적용되어, 시장 흐름이 상승 쪽으로 기울었는지, 아니면 하락 쪽으로 기울었는지를 파악하는 데 도움을 줍니다. 하루 기준으로 보통 장 시작부터 값을 쌓아가며 계산하지만, 응용에 따라 1주일이나 1개월처럼 기간을 확장해 장기 추세를 파악할 수도 있습니다. 다만, 인트라데이 특성상 ‘내가 원하는 특정 시간대부터 계산을 시작’하기는 어렵다는 점이 일반적인 이동평균선과 다릅니다.

가격이 VWAP 위에 있으면 매수세 우위, 아래에 있으면 매도세 우위로 간단히 해석할 수 있습니다. 시장의 전반적인 방향성을 가늠하고자 할 때 VWAP는 유용하다고 할 수 있습니다.

 

 


거래량 가중 평균값(VWAP)을 구하는 방법

거래량 가중 평균값(VWAP, Volume Weighted Average Price)을 계산하는 과정은 다음과 같습니다.

step1) Typical Price(TP) 계산
TP = (고가 + 저가 + 종가) / 3

step2) TP × Volume 계산
각 봉(캔들)마다 앞에서 구한 TP에 해당 봉의 거래량을 곱함

step3) TP×Volume 누적합 계산
현재 봉까지 발생한 (TP×Volume)의 합을 순차적으로 더해나감 (cumulative)

step4) Volume의 누적합 계산
각 봉별 거래량을 순차적으로 더해나감

step5) VWAP 계산
VWAP = (누적 (TP×Volume)) / (누적 Volume)
즉, (TP×Volume)의 누적합을 거래량의 누적합으로 나눈 값이 당 시점의 거래량 가중 평균 가격이 됨.


예제를 통한 VWAP 계산 방법 이해

아래 세 개의 봉(캔들)에 대해, 각 봉의 고가·저가·종가와 거래량이 다음과 같다고 가정해보겠습니다.

봉(캔들) 고가(High) 저가(Low) 종가(Close) 거래량(Volume)
1 100 90 95 1,000
2 102 92 98 1,200
3 105 95 100 800


step1) TP 계산
봉1의 TP = (100 + 90 + 95) ÷ 3 = 285 ÷ 3 = 95
봉2의 TP = (102 + 92 + 98) ÷ 3 = 292 ÷ 3 = 97.33
봉3의 TP = (105 + 95 + 100) ÷ 3 = 300 ÷ 3 = 100

step2) TP × Volume
봉1: 95 × 1,000 = 95,000
봉2: 97.33 × 1,200 = 116,796
봉3: 100 × 800 = 80,000

step3) (TP×Volume) 누적합
봉1: 95,000
봉2: 95,000 + 116,796 = 211,796
봉3: 211,796 + 80,000 = 291,796

step4) Volume 누적합
봉1: 1,000
봉2: 1,000 + 1,200 = 2,200
봉3: 2,200 + 800 = 3,000

step5) VWAP 계산
봉1의 VWAP = 95,000 / 1,000 = 95
봉2의 VWAP = 211,796 / 2,200 = 96.27
봉3의 VWAP = 291,796 / 3,000 = 97.27

이렇게 해서, 각 시점별로 거래량을 반영한 평균 가격(VWAP)을 계산할 수 있습니다. 이를 차트에 표시하면, 단순 이동평균선보다 거래량이 크게 실린 구간의 가격 움직임을 더욱 민감하게 추적할 수 있게 됩니다.


거래량 가중 평균값, VWAP 파이썬 코딩

거래량 가중 평균값, VWAP를 아래의 파이썬 코드에서 구현하였습니다. 아래의 파이썬 코드는 KIS API를 활용하여 하루 동안의 1분봉 데이터를 가져오고, 이를 3분봉으로 바꾼 후, VWAP를 계산합니다. KIS API를 활용하여 데이터를 가져오고, 3분봉으로 바꾸는 과정은 지난 포스팅, 한국투자증권 API, 3분봉, 5분봉, 10분봉… 원하는 분봉 자유롭게 만드는 방법의 실습코드와 동일합니다. 이번에는 여기에 VWAP를 계산하는 루틴만 추가한 것입니다.

거래량 가중 평균값, VWAP 계산을 위한 주요 함수는 다음과 같습니다.
▶ resample_candlestick 함수는 3분봉 데이터를 생성하여 캔들스틱 차트의 기본 데이터를 제공합니다.
▶ calculate_vwap 함수는 Typical Price와 거래량을 기반으로 VWAP를 계산합니다. 이 함수는 최근 n개 봉의 데이터를 고려하여 rolling 방식으로 계산됩니다.






마치며 …

VWAP(거래량 가중 평균값)은 시장의 평균 체결가를 파악하고, 매수세와 매도세의 상대적인 강도를 간단히 해석할 수 있는 강력한 도구입니다. 이번 포스팅에서는 VWAP의 기본 개념과 계산 방법, 그리고 이를 파이썬으로 구현하여 계산하는 과정을 살펴보았습니다. VWAP는 단순 이동평균선보다 더 정교하게 시장의 흐름을 반영하며, 특히 인트라데이 트레이딩에서 의사결정할 때 유용하게 횔용될 수 있습니다.

VWAP는 다양한 지표와 함께 결합하여 더욱 강력한 분석 도구로 발전시킬 수 있습니다. 예를 들어, 피봇 포인트, RSI, 또는 볼린저 밴드와 같은 지표를 VWAP와 함께 활용한다면 매매 결정을 할 때, 좀 더 폭넓은 시각을 가질 수 있을 것입니다.

 

 

함께 참고하면 좋은 글
한국투자증권 API, 3분봉, 5분봉, 10분봉… 원하는 분봉 자유롭게 만드는 방법
한국투자증권 API로 1분봉 OHLCV 데이터 가져오기
한국투자증권 REST API로 시계열 데이터를 가져오는 파이썬 코드
한국투자증권 API로 주가를 가져오는 파이썬 프로그래밍
한국투자증권 API 신청 방법
RESTful API : 웹 애플리케이션 개발자를 위한 기초부터 실전까지
파이썬 데이터 분석을 위한 API 이해, REST API, WebSocket API


참고자료

한국투자증권 파이썬 API 문서
거래량 가중 이동평균 (VWMA)

Leave a Comment