초보자도 1분 이해하는 볼린저밴드 계산방법, 이론 및 활용 방법 (+파이썬 코드)

이번 포스팅에서는 주식시장에서 자주 사용되는 볼린저밴드 계산방법과 이론, 활용방법과 더불어 파이썬 코드까지 함께 정리해보았습니다.

볼린저 밴드는 주식 시장뿐만 아니라 다양한 금융 시장에서 자주 활용되는 기술적 분석 도구입니다. 이 지표는 1980년대에 존 볼린저(John A. Bollinger, 1950년 5월 27일 ~ ) 라는 금융 분석가에 의해 처음 소개되었으며, 그의 이름을 따서 볼린저 밴드라 불립니다.

존 볼린저는 주가나 다른 금융 상품의 가격 움직임이 특정 범위 내에서 일어나는 경향이 있다는 관찰을 바탕으로 이 지표를 개발하였습니다. 그는 가격의 움직임을 평균선 주위로 그려진 ‘밴드’ 로 시각화함으로써, 현재의 가격 움직임이 과거의 평균적인 움직임에 비해 어떠한지를 명확하게 표현하고자 하였습니다.


볼린저밴드 컨셉

볼린저밴드(Bollinger Bands)의 핵심 컨셉은 앞서 언급한

"현재의 가격 움직임이 과거의 평균적인 움직임에 비해 어떠한지를 명확하게 표현하고자 하였습니다."

입니다.

이 문장을 세부적으로 풀어서 설명하자면:

  1. “과거의 평균적인 움직임”: 볼린저 밴드의 중심선은 주가의 단순 이동평균을 기반으로 합니다. 이 이동평균은 최근 일정 기간 (예: 20일) 동안의 주가의 평균을 나타내기 때문에, 과거의 평균적인 가격 움직임을 대표합니다.
  2. “현재의 가격 움직임”: 주가는 시간에 따라 계속 변동합니다. 그리고 이 변동은 때로는 급격하게, 때로는 완만하게 일어날 수 있습니다.
  3. “어떠한지를 명확하게 표현하고자 하였습니다.”: 볼린저 밴드의 상단 밴드와 하단 밴드는 중심선을 기준으로 주가의 변동성을 나타냅니다. 주가가 상단 밴드에 가까워질수록 그 가격은 과거 평균에 비해 상대적으로 높다는 것을 의미하며, 하단 밴드에 가까워질수록 과거 평균에 비해 상대적으로 낮다는 것을 의미합니다.

결론적으로, 이 문장은 볼린저 밴드가 과거의 평균적인 가격 움직임과 현재의 가격 움직임을 비교하여, 현재 주가가 과거 평균에 비해 어느 정도로 높거나 낮은지를 그래픽으로 표현해줌을 의미합니다.


볼린저밴드 계산방법, 원리와 구성 요소

볼린저밴드는 세 개의 선으로 구성됩니다. 각각에 대한 볼린저밴드 계산 방법에 대해 정리해보면 아래와 같습니다.

1. 중심선 (Moving Average)
– 일반적으로 20일 단순 이동평균선 (SMA)을 사용합니다.
– 계산 방법: 최근 20일의 종가를 모두 더한 후 20으로 나눕니다. 예: 주식 A의 최근 20일 종가가 각각 10, 11, 12, … 29라면, 중심선 = (10 + 11 + … + 29) / 20

2. 상단 밴드 (Upper Band)
– 중심선 값에서 20일의 종가 표준편차의 2배를 더한 값입니다. 예: 위의 주식 A의 20일 종가 표준편차가 5라면, 상단 밴드 = 중심선 + (5 * 2)

3. 하단 밴드 (Lower Band)
– 중심선 값에서 20일의 종가 표준편차의 2배를 뺀 값입니다. 예: 위의 주식 A의 20일 종가 표준편차가 5라면, 하단 밴드 = 중심선 – (5 * 2)

참고로 이러한 볼린저밴드 계산 방식으로 구성해보면 아래와 같은 그래프가 나타납니다. (출처:피델리티 홈페이지)

볼린저밴드 계산방법

볼린저밴드의 주요 활용 방법과 전략

1. 밴드의 폭을 활용한 변동성 판단
– 볼린저밴드 계산 결과 밴드의 폭이 넓어지면 변동성이 증가했다는 뜻이고, 밴드의 폭이 좁아지면 변동성이 감소했다는 것을 의미합니다.

2. 가격의 밴드 도달을 활용한 과매수/과매도 판단
주가가 상단 밴드 근처에 접근하거나 상단 밴드를 돌파하면 과매수로 판단하여 매도 시점을 고려할 수 있습니다.
– 반대로, 주가가 하단 밴드 근처에 접근하거나 하단 밴드를 돌파하면 과매도로 판단하여 매입 시점을 고려할 수 있습니다.

3. 밴드와 가격의 움직임을 통한 트렌드 확인
– 주가가 상단 밴드를 따라 움직이는 것은 상승 추세, 하단 밴드를 따라 움직이는 것은 하락 추세를 나타낼 수 있습니다.

이러한 전략들을 사용할 때, 다른 기술적 지표들과 함께 활용하면 더욱 효과적인 투자 결정을 내릴 수 있습니다.


파이썬을 활용한 볼린저 밴드 계산

파이썬은 데이터 분석 및 금융 엔지니어링에 널리 사용되는 언어입니다. 볼린저 밴드와 같은 금융 지표를 계산하기 위해 pandas와 matplotlib 라이브러리를 활용할 수 있습니다.

중심선, 상단 밴드, 하단 밴드 볼린저밴드 계산 방법

먼저, 주식 데이터를 pandas DataFrame 형태로 가져옵니다. 이 예제에서는 yfinance를 사용하여 Yahoo Finance로부터 데이터를 가져오겠습니다. 각각에 대한 볼린저밴드 계산식을 적용한 파이썬 코드는 아래와 같습니다. (참고로 애플주식을 20년 1월 1일부터 23년 1월 1일까지 가져와서 처리하는 코드 입니다.)

import yfinance as yf
import pandas as pd

# 데이터 가져오기
ticker = "AAPL"
df = yf.download(ticker, start="2020-01-01", end="2023-01-01")

# 중심선 (20일 단순 이동평균)
df['SMA'] = df['Close'].rolling(window=20).mean()

# 표준편차 (20일)
df['STD'] = df['Close'].rolling(window=20).std()

# 상단 밴드 = 중심선 + (표준편차 * 2)
df['Upper'] = df['SMA'] + (df['STD'] * 2)

# 하단 밴드 = 중심선 - (표준편차 * 2)
df['Lower'] = df['SMA'] - (df['STD'] * 2)

볼린저 밴드를 그래프로 시각화하기

matplotlib 라이브러리를 사용하여 볼린저 밴드를 시각화할 수 있습니다. 볼린저밴드 계산 결과를 반영한 그래프를 그리는 방법은 아래와 같습니다.

import matplotlib.pyplot as plt

# 그래프의 크기를 설정 (너비 12, 높이 6)
plt.figure(figsize=(12,6))

# 그래프의 제목 설정. ticker 변수의 값을 제목에 포함
plt.title('Bollinger Bands for ' + ticker, fontsize=15)

# 'Close' 칼럼 (종가)를 파란색 선으로 그래프에 추가
plt.plot(df['Close'], label='Close Price', color='blue', alpha=0.6)

# 20일 단순 이동평균선을 빨간색 선으로 그래프에 추가
plt.plot(df['SMA'], label='Simple Moving Average', color='red', alpha=0.6)

# 상단 밴드를 초록색 선으로 그래프에 추가
plt.plot(df['Upper'], label='Upper Band', color='green', alpha=0.6)

# 하단 밴드를 주황색 선으로 그래프에 추가
plt.plot(df['Lower'], label='Lower Band', color='orange', alpha=0.6)

# 상단 밴드와 하단 밴드 사이를 회색으로 채워 구역을 표시
plt.fill_between(df.index, df['Upper'], df['Lower'], color='grey', alpha=0.1)

# 그래프의 범례 위치 설정 (왼쪽 상단)
plt.legend(loc='upper left')

# 그래프 표시
plt.show()

해당 코드를 실행해보면 아래와 같은 그래프를 얻을 수 있습니다.

볼린저밴드 계산방법

이번 포스팅에서는 주식시장에서 자주 사용되는 볼린저밴드 계산방법과 이론, 활용방법과 더불어 파이썬 코드까지 함께 정리해보았습니다.


앞선 포스팅에서 정리한 주식투자 기법 관련 글은 아래와 같습니다.

캔들차트 창시자 혼마 무네히사 사케다전법 5가지 – 흑삼병 적삼병, 삼산, 삼천, 삼공, 삼법

주식 초보를 위한 데드캣바운스(Dead Cat Bounce) 1분 내 이해 (데드캣 바운스 중요성, 투자전략)

댓글 남기기