안녕하세요.
오늘은 퀀트 투자에 사용하는 데이터에는 어떤 종류가 있는지, 그리고 저는 어디서 데이터를 수집하고 있는지 소개해 보려고 합니다.
퀀트 투자는 데이터를 바탕으로 투자 아이디어를 검증하는 과정입니다. '이런 조건에서 매수하면 수익이 나지 않을까?'라는 생각이 들었다면, 과거에도 실제로 그랬는지 확인해 봐야겠죠. 이때 필요한 것이 과거 데이터입니다.
처음에는 주가만 있으면 충분할 것 같지만, 전략에 따라 기업의 재무정보나 경제지표, 뉴스까지 필요해집니다. 어떤 가설을 검증하려는지에 따라 필요한 데이터도 달라지는 것이죠.
이번 글에서는 제가 수집하는 데이터를 크게 다섯 가지로 나누어 소개해 보겠습니다. 구체적인 수집 방법이나 코드는 나중에 따로 다뤄보겠습니다.
1. 시장 데이터
시장 데이터는 시장에서 거래가 이루어지면서 만들어지는 데이터입니다. 주식이나 암호화폐의 가격과 거래량이 대표적입니다.
그중 가장 익숙한 것은 OHLCV입니다.
Open: 일정 기간의 첫 거래 가격인 시가
High: 해당 기간의 가장 높은 가격인 고가
Low: 해당 기간의 가장 낮은 가격인 저가
Close: 해당 기간의 마지막 거래 가격인 종가
Volume: 해당 기간의 거래량
우리가 흔히 차트에서 보는 일봉이나 분봉이 바로 이러한 데이터를 표현한 것입니다. 같은 종목이라도 하루 단위로 볼 것인지, 1분 단위로 볼 것인지에 따라 데이터의 양과 활용 방법이 달라집니다.
이동평균선이나 볼린저 밴드처럼 가격을 가공해서 만드는 기술적 지표도 있습니다. 원본 가격 데이터와는 구분되지만, 이 글에서는 시장 데이터에서 파생되는 지표로 함께 묶어 설명하겠습니다.
저는 국내 주식 시장 데이터를 키움증권, 한국투자증권, 한국거래소(KRX)에서 수집하고 있습니다. 키움증권과 한국투자증권의 API를 통해 분봉 등의 시세를 조회하고, KRX에서는 일봉 등 국내 주식 시장 데이터를 수집하는 방식입니다.
암호화폐 시장 데이터는 업비트와 바이낸스에서 수집하고 있습니다. 업비트에서는 원화 시장의 데이터를, 바이낸스에서는 현물과 선물 시장의 데이터를 수집합니다. 바이낸스의 공개 데이터 다운로드 서비스인 Binance Data Collection도 과거 데이터를 대량으로 확보할 때 활용할 수 있습니다.
참고로 업비트의 캔들, 현재가, 호가 같은 공개 시세는 API 키 없이 조회할 수 있습니다. 계좌 조회나 주문처럼 API 키가 필요한 기능과는 구분하시면 됩니다.
2. 펀더멘털 데이터
시장 데이터가 가격의 움직임을 보여준다면, 펀더멘털 데이터는 기업이 어떤 상태에 있는지 살펴보는 데 사용합니다.
매출액, 영업이익, 순이익, 자산, 부채, 현금흐름 등이 대표적입니다. 여기에 주가나 시가총액을 결합하면 PER, PBR과 같은 가치평가 지표도 계산할 수 있습니다.
예를 들어 다음과 같은 아이디어를 검증할 때 필요합니다.
이익이 꾸준히 증가하는 기업의 주가는 이후에도 좋은 성과를 보일까?
기업의 자산이나 이익에 비해 주가가 낮은 종목은 장기적으로 어떤 성과를 보일까?
부채가 적고 현금흐름이 좋은 기업은 하락장에서 상대적으로 잘 버틸까?
저는 국내 기업의 펀더멘털 데이터를 금융감독원 전자공시시스템 DART의 OpenDART에서 수집하고 있습니다. OpenDART에서는 기업 공시, 주요 재무계정, 사업보고서의 주요 항목 등을 제공합니다.
그런데 데이터를 내려받는다고 바로 분석에 사용할 수 있는 것은 아닙니다. 기업과 보고서마다 항목을 맞추고, 단위와 기간을 통일하고, 필요한 값을 일관된 형태로 정리하는 작업이 필요합니다.
저도 DART 데이터를 분석에 사용할 수 있도록 다듬는 데 꽤 오랜 시간이 걸렸습니다.
또한 과거 전략을 검증할 때는 그 정보를 실제로 언제 알 수 있었는지가 중요합니다. 작년 실적이라고 해도 당시에는 아직 발표되지 않았을 수 있기 때문입니다. 이 부분은 이후 글에서 다시 이야기해 보겠습니다.
3. 매크로 데이터
매크로 데이터는 경제 전반의 흐름을 보여주는 거시경제 데이터입니다.
금리, 물가, 환율, 고용, GDP 등이 대표적입니다. 개별 기업의 실적뿐 아니라 경제 전체가 어떤 상황인지 살펴보는 데 사용합니다.
예를 들어 금리가 오르는 시기와 내려가는 시기에 같은 투자 전략의 성과가 어떻게 달라지는지, 물가가 높아지는 시기에 어떤 자산이 상대적으로 강했는지 등을 확인할 수 있습니다.
저는 매크로 데이터를 다음과 같은 곳에서 수집하고 있습니다.
FRED: 미국을 중심으로 한 경제지표
한국은행 ECOS: 국내 경제·금융 통계
Yahoo Finance: 원자재 가격 등 시장 관련 시계열
가격 데이터는 분 단위로 쌓이기도 하지만, 경제지표는 월별이나 분기별로 발표되는 경우가 많습니다. 따라서 서로 다른 주기의 데이터를 어떻게 맞출지도 고민해야 합니다.
게다가 경제지표는 발표된 이후에 수정되는 경우도 있습니다. 지금 조회한 과거 수치가 당시 발표됐던 수치와 다를 수도 있다는 것이죠. 이런 부분도 주의할 필요가 있습니다.
4. 센티먼트 데이터
센티먼트 데이터는 시장 참여자들의 심리나 분위기를 추정하기 위한 데이터입니다.
같은 실적 발표라도 시장에서는 긍정적으로 받아들일 수도, 부정적으로 받아들일 수도 있습니다. 이런 반응을 뉴스나 온라인 글 등을 통해 살펴보려는 것이죠.
뉴스를 예로 들면 다음과 같은 정보를 생각해 볼 수 있습니다.
특정 기업이나 자산에 관한 뉴스가 얼마나 많이 나오는지
기사 내용이 긍정적인지, 부정적인지
어떤 주제가 반복해서 등장하는지
저는 RSS를 통해 뉴스를 수집하고, 기사 본문을 확보한 뒤 분석하는 방식으로 접근하고 있습니다.
그런데 뉴스 원문을 모으는 것과 유용한 센티먼트 지표를 만드는 것은 전혀 다른 문제입니다.
같은 뉴스가 여러 매체에서 반복될 수도 있고, 표현은 긍정적이어도 실제 의미는 다를 수 있으니까요. 결국 수집한 글을 투자에 활용할 수 있는 정보로 바꾸는 과정이 필요합니다.
센티먼트 데이터는 대체 데이터의 한 종류로 분류하기도 하지만, 여기서는 활용 목적이 뚜렷해서 별도로 소개했습니다.
5. 그 밖의 대체·보조 데이터
대체 데이터는 전통적인 가격, 거래량, 재무정보 외에 투자 판단에 활용하는 데이터를 말합니다. 검색량, 소비 활동, 전력 사용량, 온라인 활동 등이 그 예가 될 수 있습니다.
물론 데이터의 분류에 절대적인 경계가 있는 것은 아닙니다. 어떤 데이터가 기존 분석에 더해 어떤 정보를 제공하는지가 더 중요하다고 생각합니다.
암호화폐에서는 가격과 거래량 외에 펀딩비, 미결제약정, 청산 규모 같은 파생상품 관련 정보도 살펴볼 수 있습니다. 이러한 정보는 넓게 보면 시장 데이터에 속하지만, OHLCV와는 성격이 조금 다르기 때문에 따로 소개할 만합니다.
저는 이런 정보를 수집하기 위해 바이낸스와 코인글래스(CoinGlass)를 활용하고 있습니다. 가격이 얼마나 올랐는지만 보는 대신, 파생상품 시장에 자금과 포지션이 어떤 식으로 쌓이고 있는지도 함께 살펴보기 위해서입니다.
직접 수집해 보니, 데이터를 내려받는 것과 분석에 사용할 수 있는 상태로 만드는 것은 전혀 다른 일이었습니다.
빠진 값이 없는지 확인하고, 날짜와 형식을 맞추고, 수집이 중간에 멈추지 않도록 관리하는 데도 상당한 시간이 들었답니다.
그리고 이렇게 고생해서 모은 데이터가 실제로 유용한 투자 전략을 만드는 데 도움이 될지는 또 별개의 문제이고요.
여러분은 어떤 데이터를, 어디서 수집하고 계신가요?
댓글을 통해 서로의 경험을 나누어 보았으면 좋겠습니다.

댓글 0
아직 댓글이 없습니다. 첫 번째 이야기를 남겨주세요.