금융 데이터 분석 방법

Posted on Wed 18 March 2020 in book • 5 min read

금융 데이터 분석 방법에 딱히 표준이 있는 것은 아니지만 많은 투자자들이 주로 '기본적 분석', '기술적 분석', '감성 분석'을 얘기합니다. 이번 장에서는 이 세 가지 방법들에 대해서 소개하겠습니다.

기본적 분석

기본적 분석(fundamental analysis)은 기업의 가치, 산업, 경제를 평가하는 분석 방법입니다. 기업의 가치를 평가하기 위해서 재무제표를 분석해서 회사의 수익성, 안정성, 성장성 등을 판단합니다. 대표적인 기본적 분석 지표로는 PER, PBR, ROE 등이 있습니다. 수익성을 PER, 안정성을 PBR, 성장성을 ROE로 판단해 볼 수 있습니다. 이러한 기본적 분석 지표들은 회사의 재무제표를 기준으로 정해지기 때문에, 어떠한 회사의 재무제표가 신뢰성이 있는지도 따져볼 필요는 있습니다. 산업 분석은 KB금융지주 경영연구소 등에서 나오는 발표들을 보면 좋습니다. 경기 분석에서는 Business Cycle, 국내총생산(GDP), 금리, 환율, 경기종합지수 등을 살펴볼 필요가 있습니다. 뒤에서 다룰 전통적인 퀀트투자 방법들은 이 기본적 분석 지표들을 주로 활용하곤 합니다.

기술적 분석

기술적 분석(technical analysis)은 흔히 차트 분석이라고도 말하는 분석 방법으로 과거의 경험으로 미래를 예측하고자 하는 것입니다. 많은 개인 투자자들이 흔히 주식 차트를 보고 투자 결정을 내리는데, 알게 모르게 기술적 분석을 한 것입니다. 물론 개인 투자자들만이 기술적 분석을 한다는 의미는 아니며 기관이나 외국인 투자자들도 기술적 분석의 결과를 투자 결정에 고려할 것입니다. 기술적 분석에서는 주로 차트의 OHLCV, 보조지표, 패턴을 분석합니다. 보조지표와 패턴은 매우 다양하여 여기서는 몇 가지 주요 보조지표와 패턴들을 정리하겠습니다.

OHLC(open-high-low-close) 및 거래량(volume)

주식의 차트는 주로 봉 차트(캔들 차트)로 그리게 됩니다. 봉 차트에 대해서 간단히 설명을 하고 넘어가겠습니다. 은 봉 차트에서 양봉과 음봉의 의미를 보여줍니다.

봉 차트에서의 양봉과 음봉

봉 차트에서의 양봉과 음봉

한국의 봉 차트에서는 양봉을 빨간색으로 음봉을 파란색으로 그립니다. 미국에서는 주로 양봉을 초록색 음봉을 빨간색으로 표시하니 혼동되지 않게 유의해야 합니다.

양봉에서 굵은 부분의 아래쪽이 시가(始價)로 봉의 기간 중에서 가장 처음 거래된 가격을 의미합니다. 위 꼬리 부분은 고가(高價)로 봉의 기간 동안 거래된 가격 중에 가장 높은 가격을 의미합니다. 아래 꼬리는 저가(低價)로 봉의 기간 동안 가장 낮게 거래된 가격을 의미합니다. 굵은 부분의 위쪽은 종가(終價)로 봉의 기간 중에서 가장 마지막에 거래된 가격입니다.

음봉에서는 굵은 부분의 위쪽이 시가입니다. 고가와 저가는 양봉과 마찬가지로 각각 위쪽 꼬리와 아래쪽 꼬리입니다. 종가는 굵은 부분의 아래쪽입니다.

봉차트는 봉의 기간에 따라 일봉, 주봉, 월봉, 분봉 등으로 구분됩니다. 하나의 봉이 하루 동안의 거래에 대한 것이면 일봉, 주 단위면 주봉, 월 단위면 월봉, 분 단위면 분봉이 됩니다. 여기서 분봉은 1분봉, 5분봉, 10분봉, 30분봉 등으로 구별될 수 있습니다.

거래량(volume)은 봉 하나의 거래량을 의미합니다. 일봉이라면 하루 동안의 거래량, 일봉이라면 하루 동안의 거래량, 주봉이면 1주동안의 거래량 합을, 월봉이면 1개월 동안의 거래량 합을 의미합니다.

보조지표

이동평균선(moving average, MA)

이동평균선은 윈도우 동안의 평균 주가의 시계열로, 다음 수식을 만족합니다.

$$MA_w(t)=\frac{\sum_{i=1}^wx(t-w+i)}{w}$$
  • \(w\): 윈도우 (5, 20, 60, 120 등이 대표적)
  • \(x(t)\): 차트 상의 \(t\)번째 주가 이렇게 구한 시계열은 다음과 같이 봉차트에 그릴 수 있습니다.

이동평균선

이동평균선

지수이동평균선(exponential moving average, EMA)

일종의 이동평균선으로 최근 가격을 더 중요하게 여기기 위해 가중치를 둔다. 수식이 복잡해 보일 수 있으나 뒤에서 소개할 TA-LIB을 사용하면 쉽게 EMA를 구할 수 있습니다.

$$EMA_w(t)=(x(t)-EMA_w(t-1))\times\frac{2}{w+1}+EMA_w(t-1)$$
  • \(w\): 윈도우 (20, 30, 90, 200 등)

EMA를 차트 위에 그려보면 다음과 같습니다.

지수이동평균선

지수이동평균선

볼린저밴드(Bollinger band)

존 볼린저(John A. Bollinger)가 1983년에 개발한 보조지표로 주가의 이동평균선을 중심으로 표준편차 범위를 표시해 줍니다. 수식은 다음과 같습니다.

$$S_w(t)=\sqrt{\frac{\sum_{i=1}^w(x(t-w+i)-MA_w(t))}{w-1}}$$
$$UBB_w(t)=MA_w(t)+k\times{S_w(t)}$$
$$LBB_w(t)=MA_w(t)-k\times{S_w(t)}$$
  • \(w\): 윈도우 (주로 20)
  • \(x(t)\): 차트 상의 t번째 주가
  • \(k\): 표준편차 배율 상수 (주로 2)

다음와 같이 차트에 볼린저 밴드를 표시할 수 있습니다. 흥미로운 점은 주가가 LBB에 가까워지면 이후에 주가가 상승하고 UBB에 다다르면 주가가 하락하는 패턴이 많은데 항상 그런 것은 아니므로 특정 보조지표를 너무 맹신해서는 안됩니다.

지수이동평균선

볼린저 밴드

이동 평균 수렴 확산(moving average convergence divergence, MACD)

2개의 장단기 지수이동평균선으로 모멘텀을 추정하는 보조지표입니다. 주로 EMA12을 단기 선으로 EMA26을 장기 선으로 사용합니다. 수식은 다음과 같습니다.

$$MACD(t)=EMA_{short}(t)-EMA_{long}(t)$$
$$MACD_{signal}(t)={EMA_n(t)}\;\text{where}\;x(t)=MACD(t)$$
  • short: 단기 윈도우 (주로 12)
  • long: 장기 윈도우 (주로 26)
  • n: MACD 시그널을 계산할 지수이동평균선 윈도우 (주로 9)

MACD는 주가와 값의 스케일이 다르기 때문에 봉차트 위에 그리기는 어렵습니다. 다음은 봉차트와 그에 해당하는 MACD 차트를 보여줍니다.

MACD

MACD

진한 검정 선이 MACD이며 회색 선이 MACD 시그널이다. 보통 MACD 선이 시그널 선을 상향돌파(골든크로스)하면 매수사인, 하향돌파(데드크로스)하면 매도사인으로 여깁니다. 그러나 이 역시도 참고만 해야지 맹신해서는 절대 안됩니다.

상대강도지수(relative strength index, RSI)

과열(과매수)이나 침체(과매도) 국면을 판단하기 위해 사용하는 보조지표입니다. 수식은 다음과 같습니다.

$$RSI(t)=\frac{gain(t)}{loss(t)+loss(t)}\times100$$
$${\Delta}x(t)=x(t)-x(t-1)$$
$$gain(t)=\sum_{i=1}^w{\Delta}x(t-i+1)\;\text{if}\;{\Delta}x(t-i+1)>0$$
$$loss(t)=\sum_{i=1}^w{\Delta}x(t-i+1)\;\text{if}\;{\Delta}x(t-i+1)<0$$

RSI

RSI

주로 RSI가 70 이상이면 과열 구간이라 보고 매도사인으로, 30 이하면 침체 구간이라 보고 매수 사인으로 여깁니다. MACD와 함께 사용하면 사인이 맞을 확률이 더 높다고 알려져 있습니다만 이 역시 참고만 하시길 바랍니다.

차트 패턴

Investopedia에서 다음 다섯 가지 차트 패턴을 소개하고 있습니다. The 5 Most Powerful Candlestick Patterns (https://www.investopedia.com/articles/active-trading/092315/5-most-powerful-candlestick-patterns.asp)을 참조했습니다.

  • Three Line Strike
  • Two Black Gapping
  • Three Black Crows
  • Evening Star
  • Abandoned Baby

여기서는 차트 패턴 하나하나에 대해서는 이 책의 범위 밖이기 때문에 자세히 다루지 않겠습니다. 그 이유는 차트에는 셀수 없이 많은 패턴들이 존재하고 이를 딥러닝/강화학습으로 학습하고자 하는 것이 이 책의 범위이기 때문입니다.

기술적 분석 라이브러리 TA-LIB

기술적 분석 라이브러리인 TA-LIB의 Python Wrapper에 대해서 소개하고자 합니다. TA-LIB를 이용하면 이동평균, 볼린저밴드, MACD, RSI 등의 대표적인 기술적 분석 보조지표를 쉽게 계산할 수 있고 다양한 차트 패턴을 포착할 수 있습니다. 자세한 기능은 TA-LIB Python Wrapper 공식 사이트에서 확인할 수 있습니다.

  • TA-LIB Python Wrapper 공식 사이트: http://mrjbq7.github.io/ta-lib
  • 우분투(ubuntu)에서의 설치 가이드: http://blog.quantylab.com/ta_lib.html

정서 분석

정서 분석(sentiment analysis) 주식 종목, 업종, 시장, 경기 등에 대한 투자자들의 정서를 파악하기 위한 분석 방법입니다. 뉴스 분석, 토론방 분석, SNS 분석 등의 수 많은 방법이 있겠지만 여기서는 아주 간단한 구글 검색 트렌드를 활용하는 방법을 소개합니다.

에서 볼 수 있듯이 구글 검색 트렌드 화면에서 검색어를 입력하면 검색어에 대한 관심도 시계열을 볼 수 있습니다.

Google Trends

https://trends.google.com/trends/ Google Trends

다음과 같이 구글 검색 트렌드의 “kospi” 검색어의 관심도 시계열과 실제 코스피 시계열을 하나의 차트에 그렸습니다.

Google Trends - KOSPI

구글 검색 트렌드와 코스피 시계열

네모 박스로 표시한 부분을 보면 관심도가 급변하는 부분에서 주가 역시 급상승 또는 급락하는 모습을 보이는 것으로 보아 어느정도 투자 참고사항이 될 수 있다고 판단됩니다.

종합 분석

위에서 소개한 기본적 분석, 기술적 분석, 정서 분석은 서로가 좋다고 할 사항이 아니고 성공적인 투자를 위해서는 이들 모두를 활용하여 투자결정을 내리는 것이 좋을 것입니다. 하지만 에서 볼 수 있듯이 한국에서만 2000개가 넘는 주식 종목들이 있으며 이들에 대해서 이러한 분석을 일일이 하는 것은 사실 불가능에 가깝습니다.

상장된 주식 종목 수 변화

상장된 주식 종목 수 변화

수많은 종목, 업종, 시장, 경기에 대해서 종합 분석을 하기 위해서는 기계(컴퓨터)의 도움이 필요하며 많은 부분을 자동화해야 합니다.

그렇기에 기계학습, 딥러닝, 강화학습을 익혀서 주식투자에 적용하는 것은 앞으로의 투자 트렌드가 될 것입니다.