Allen's 데이터 맛집

[5] 다양한 기술적 분석과 보조지표를 사용하여 분석및 시각화...(이동평균, 변동성지표, 볼린저밴드, 모멘텀지표, RSI, 추세지표, MACD) 본문

Project/파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기

[5] 다양한 기술적 분석과 보조지표를 사용하여 분석및 시각화...(이동평균, 변동성지표, 볼린저밴드, 모멘텀지표, RSI, 추세지표, MACD)

Allen93 2023. 8. 5. 14:06

이번 포스팅에선 분석과 시각화를 해보는 마지막 포스팅으로, 여러 가지 주식 기술 기법들과 지표들을 확인해 보겠습니다.

일별 수익률과 이동평균, 변동성 지표 볼린저 밴드와 % 밴드, RSI, MACD 등의 기법과 지표를 사용해 보겠습니다.

이번 프로젝트와 포스팅의 목표는 해당 주식 기법들을 이해하겠다기 보다는, 이런 기법들이 있고 이것을 저희가 파이썬을 사용해서 어떻게 데이터를 수집하고 전처리를 하며 시각화를 해서 한눈에 알아본다 에 있습니다.

 

 

데이터 수집

해당 포스팅에선 주식코드가 '005930' 삼성전자의 주가로 수집하여 진행해 보겠습니다.

 

 

데이터 전처리

Shift를 활용하여 전일 대비 수익률을 구해봅시다. 그리고 pandas의 pct_change를 사용하여 구하고 이를 시각화 하여 확인해 봅니다

 

 

이전 데이터와 다음 데이터의 차이를 구하기 위에 diff() 함수를 사용합니다. 추가로 shift() 함수를 써서 종가에서 전일종가를 뺀 값을 새로 만든 Diff_shift 칼럼에 넣습니다.

자세한 전처리를 하단의 GITHUB주소를 참고해 주세요

 

 

분석 및 시각화

 

일별 수익률을 누적곱으로 구합니다. 그리고 rolling()을 사용하여 단순이동평균을 구하는데 주로 사용하는 7, 14일을 기점으로 구합니다.

 

지수이동평균은 최근 자료에 가중치를 주어서 최근 가격 변동을 보다 더 잘 파악할 수 있습니다.

 

이번에는 대표적인 주가 기술적 분석 도구인 볼린저 밴드를 사용해 보겠습니다. 이를 편리하게 사용하게 하기 위해 show_bbad란 함수를 만들어서 사용해보겠습니다.

 

 

해당 함수를 사용하여 해외 주식 주가를 시각화해 보았습니다. 시각화에서는 종가의 이동평균에서 +- (표준편차*2)를 한 upper, lower와 close종가, 20일간 종가의 이동평균 MA20을 가지고 시각화해해 보았습니다. 

AMD, NVIDA, 아마존 모두 상승하는 추세를 확인할 수 있습니다.
급격하게 오를 때 종가와 UpperB가 겹치는 형식의 그래프를 볼 수 있습니다. 그리고 이동평균선인 MA20이 대체적으로 UpperB와 LowerB의 중간에 위치하는 것을 볼 수 있습니다.

 

 

이번엔 이동평균 수렴확산 지수라는 MACD를 가지고 시각화를 해보겠습니다. 이는 주가의 기숙적 분석에 사용되는 지표입니다. 먼저 plot_macd()라는 함수를 만들어서 OHLC와 MACD를 쉽게 출력해 보겠습니다.

저희의 df(삼성전자)는 OHLC가 거의 겹쳐져 보이며 비슷한 것을 확인할 수 있습니다.
MACD, signal, macdhist 또한 한눈에 파악이 가능합니다.

 

 

GITHUB : https://github.com/siilver94/Stock-data-collection-analysis-and-visualization

 

GitHub - siilver94/Stock-data-collection-analysis-and-visualization

Contribute to siilver94/Stock-data-collection-analysis-and-visualization development by creating an account on GitHub.

github.com

 

728x90