평균 회귀 전략 중 하나인 볼린저 밴드를 파이썬으로 구현해보자.

 

볼린저 밴드는 3개 선으로 구성되는데 추세를 판단할 수 있는 중심선, 상단선과 하단선의 표준편차 밴드로 구성된다. 

일반적인 볼린저 밴드 공식은 다음과 같다.

  • 상단 볼린저 밴드 = 중간 볼린저 밴드 + (표준편차 X 2)
  • 중간 볼린저 밴드 = 종가의 20 이동평균
  • 하단 볼린저 밴드 = 중간 볼린저 밴드 - (표준편차 X 2)
import FinanceDataReader as fdr
df = fdr.DataReader("057030", '2020') # YBM넷 2020년~현재
df = df[['Close']]
df['MA20'] = df['Close'].rolling(window=20).mean() # 중간 볼린저 밴드
df['stddev'] = df['Close'].rolling(window=20).std()
df['upper'] = df['MA20'] + (df['stddev'] * 2) # 상단 볼린저 밴드
df['lower'] = df['MA20'] - (df['stddev'] * 2) # 하단 볼린저 밴드
print(df.tail(10))

위와 같이 결과가 나온다.

MA20이 중간 볼린저 밴드, upper가 상단 볼린저 밴드, lower가 하단 볼린저 밴드이다.

 

참고로 볼린저 밴드를 수식으로 표현하면 다음과 같다.

중간 볼린저 밴드는 다음과 같다.

$$ \bar{X} = {\sum_{j=1}^N X_j \over N} $$

 

상단, 하단 볼린저 밴드에 들어가는 표준편차는 다음과 같이 표현한다.

$$ \sigma = \sqrt{\sum_{j=1}^N (X_j - \bar{X})^2 \over N} $$

 

이제 이 데이터를 이용하여 자신만의 멋진 투자 전략을 만들어보자.

+ Recent posts