거래량 프로파일 가시 범위(VPVR, Volume Profile Visible Range) 파이썬 코딩

거래량 프로파일 가시 범위(VPVR, Volume Profile Visible Range) 파이썬 코딩

거래량 프로파일 가시 범위(VPVR, Volume Profile Visible Range)는 가격 구간별로 거래량이 얼마나 되는지를 분석하는 기술적 분석 도구입니다. VRVP(가시 범위 내의 거래량 프로파일)라고도 부릅니다. 이번 포스팅에서는 파이썬 코딩을 통해 VPVR을 계산하는 방법을 단계별로 살펴보겠습니다.

 

 


글의 순서

거래량 프로파일 가시 범위(VPVR, Volume Profile Visible Range)
VPVR을 구하는 방법
예제를 통한 VPVR 계산 방법 이해
거래량 프로파일 가시 범위, VPVR 파이썬 코딩


거래량 프로파일 가시 범위(VPVR, Volume Profile Visible Range)

VPVR은 가격 구간별로 발생한 총 거래량을 보여주는 기술적 분석 도구입니다. VPVR을 순서를 바꿔서 VRVP(Visual Range Volume Profile)로 부르기도 합니다. 가시 범위는 설정한 특정 시간 범위 내를 의미합니다. 예를 들어 30일간의 캔들 데이터를 가져왔다면, 이 30일 동안의 가격대별 거래량이 분석 대상입니다.

거래량 프로파일 가시 범위(VPVR)은 시장의 POC(Point of Control, 주요 지지/저항선)을 찾는 데 유용합니다. 이는 특정 가격 구간에서 가장 많은 거래량이 발생한 지점을 의미합니다. POC를 기준으로 시장의 심리적 지지/저항 구간을 분석할 수 있습니다. 또한 거래량이 집중된 구간은 안정적이거나 추세가 전환되는 구간일 가능성이 높습니다.

 

 


VPVR을 구하는 방법

거래량 프로파일 가시 범위(VPVR) 계산 과정은 다음과 같습니다.

step1) 데이터 준비
캔들스틱 데이터에서 High, Low, Volume 열을 사용합니다.

step2)가격 구간 나누기
전체 가격 범위를 일정한 구간(bins)으로 나눕니다. 예를 들어, 가격이 1800~2000 사이이고 10개의 구간(bins)이 있다면, 각 구간의 폭은 (2000 – 1800) / 10 = 20입니다.

step3) 각 가격 구간별 거래량 합산
각 캔들이 특정 가격 구간에 포함되는지 확인합니다.
▶조건: (캔들의 High > 구간 하한선) & (캔들의 Low < 구간 상한선)
조건에 맞는 캔들의 거래량을 합산합니다.

step4) 결과 정리
각 가격 구간별 거래량과 구간 정보를 정리합니다.


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

다음은가격과 거래량 데이터가 주어진 세 개의 캔들에 대해 VPVR을 계산하는 예제입니다.

캔들 High Low Volume
1 1850 1800 1000
2 1900 1850 2000
3 1950 1900 1500


step1) 가격 구간 나누기
▶ 전체 가격 범위: 1800~2000
▶ 구간(bins): 4개
▶ 구간 경계: [1800, 1850, 1900, 1950, 2000]

step2) 각 구간별 거래량 합산
▶ 구간1 (1800~1850): 캔들 1 (1000) → 거래량 = 1000
▶ 구간2 (1850~1900): 캔들 2 (2000) → 거래량 = 2000
▶ 구간3 (1900~1950): 캔들 3 (1500) → 거래량 = 1500
▶ 구간4 (1950~2000): 없음 → 거래량 = 0

step3) 결과 정리 및 POC 계산
▶ POC: 구간2 (1850~1900), 거래량 = 2000


거래량 프로파일 가시 범위, VPVR 파이썬 코딩

아래는 VPVR을 계산하고 가로형 막대그래프로 가시화하는 파이썬 코드입니다. calculate_vpvr(df, bins) 함수는 주어진 데이터프레임(df)에서 가격 구간별로 거래량을 합산하여 Volume Profile Visible Range (VPVR) 데이터를 계산합니다.

calculate_vpvr 함수는 df, bins를 입력으로 각 가격대와 가격대별 거래량을 출력합니다. df는 OHLCV(시가, 고가, 저가, 종가, 거래량) 데이터를 포함한 데이터프레임인데, 여기에는 반드시 High, Low, Volume 열이 있어야 합니다. 또한 bins는 가격을 나눌 구간의 개수입니다. bins가 클수록 가격대가 세분화됩니다.

volume_profile 부분이 각 가격대와 가격대별 거래량을 담는 리스트입니다. 이때 가격 구간 개수만큼 반복하면서 각 가격구간에서 그 구간에 해당하는 캔들만 걸러냅니다. price_range는 현재 구간에 해당하는 캔들을 필터링하는 조건을 나타냅니다. 만약, price_bins[i]=100, price_bins[i+1]=125라면, 100 <= Low < 125인 캔들만 선택한다는 의미입니다.

price_bins = [100, 125, 150]이고, 각 구간의 거래량이 300, 500일 경우,
volume_profile = [[100, 125, 300], [125, 150, 500]]
이 됩니다.

이 반복문 구분을 자세히 살펴본 이유는, 실제 실험결과 처리 등 데이터 분석에 많이 활용되기 때문입니다.

이 함수로 계산한 VPVR 데이터를 캔들스틱 차트와 함께 시각화하면, 가격대별 수요와 공급(거래량)을 시각적으로 분석할 수 있습니다. 거래량 프로파일 가시 범위(VPVR)은 기술적 분석에서 지지선, 저항선을 파악하거나 고객 활동이 많은 가격대를 분석하는 데 유용합니다.






마치며 …

이번 포스팅에서는 파이썬 코딩을 통해 VPVR을 계산하는 방법을 단계별로 살펴보았습니다. VPVR은 시장에서 가장 활발한 거래가 이루어진 가격 구간을 한눈에 확인할 수 있는 유용한 도구입니다. 특히 POC(Point of Control)를 기준으로 시장의 심리적 지지선과 저항선을 파악하고, 효율적인 트레이딩 전략을 설계할 수 있습니다. 시장 분석과 자동매매 알고리즘에 VPVR을 추가해 보시기 바랍니다.

 

 

함께 참고하면 좋은 글
거래량 가중 평균(VWAP), 거래량 가중 이동평균(VWMA) 비교 : VWAP vs. VWMA
거래량 가중 이동평균, VWMA 파이썬 코딩
거래량 가중 평균값, VWAP 파이썬 코딩
거래량 가중 평균값, VWAP 파이썬 코딩
한국투자증권 API, 3분봉, 5분봉, 10분봉… 원하는 분봉 자유롭게 만드는 방법


참고자료

가시 범위 볼륨 프로파일

Leave a Comment