1. 퀀트에 대해 알아보기#

투자에 관심이 있는 사람들이라면 ‘퀀트 투자’라는 단어를 한 번씩은 들어보았을 것이다. 퀀트 투자에서 ‘퀀트’란 모형을 기반으로 금융상품의 가격을 산정하거나, 이를 바탕으로 투자를 하는 사람을 말한다. 퀀트(Quant)라는 단어가 ‘계량적’을 의미하는 퀀티터티브(Quantitative)의 앞 글자를 따왔음을 생각하면 쉽게 이해가 될 것이다.

일반적으로 투자자들이 산업과 기업을 분석해 가치를 매기는 정성적인 투자법과는 달리, 퀀트 투자는 수학과 통계, 데이터를 기반으로 전략을 만들고 이를 바탕으로 투자하는 정량적인 투자법을 의미한다. Table 1.1은 퀀트 투자와 정성적 투자의 차이가 비교되어 있다.

Table 1.1 퀀트 투자와 정성적 투자의 차이#

분류

퀀트 투자

정성적 투자

객관성

높음

낮음

투자기회

많음

작음

감정적 요인

낮음

높음

반복 가능성

높음

낮음

위험통제능력

높음

낮음

  1. 퀀트 투자는 규칙에 기반한 투자이므로 객관성이 높지만, 정성적 투자는 개인의 분석에 의존하기에 주관성이 높다.

  2. 퀀트 투자는 데이터와 규칙만 있다면 한 번에 수 백, 수 천 종목에 대한 분석도 가능하지만, 정성적 투자는 분석할 수 있는 종목의 수가 제한되어 있다.

  3. 퀀트 투자는 규칙에 기반하므로 감정에 휘둘릴 위험이 낮지만, 정성적 투자는 인간의 감정이 개입될 가능성이 높다.

  4. 퀀트 투자는 동일한 규칙을 누구든지 반복 가능하지만, 정성적 투자는 분석하는 사람에 따라 다른 결과를 보인다.

  5. 퀀트 투자는 규칙을 철저하게 지킬 경우 위험통제능력이 높지만, 정성적 투자는 인간의 감정에 휘둘려 공포에 휩싸이기 쉽다.

퀀트 투자는 이와 같은 장점들로 인해 날로 인기가 증가하고 있다. 해외의 경우 퀀트 투자를 전문으로 하는 자산관리 회사도 많을 뿐만 아니라, 정성적인 투자를 하는 회사들 조차 일정 부분은 계량 분석의 도움을 받고 있다. 또한 세계 최고의 헤지펀드 중 대부분은 이미 퀀트를 기반으로 운용하고 있다.

1.1. 퀀트 투자의 핵심 재료, 데이터#

퀀트들은 데이터를 통해 전략을 만들어내므로 그들에게 데이터는 가장 기본이 되면서도 중요한 밑천이다. 이는 마치 요리사에게 있어 재료와도 같다. 만일 재료가 부실하다면 제대로 된 요리를 만들 수 없을 뿐만 아니라 먹고 탈이 날 수도 있다. 반면 재료가 싱싱하고 최상급이라면 좋은 요리를 만들어낼 수 있다. 또한 재료가 한정적이라면 할 수 있는 요리의 수도 한정적이지만, 재료가 다채롭다면 요리사의 실력에 따라 얼마든지 다양한 요리를 만들 수 있다. 퀀트 투자의 영역 또한 마찬가지다. 만일 데이터가 부실하거나 틀린 내용이라면 잘못된 전략을 만들어 손실을 보게 될 것이다. 또한 데이터가 한정적이라면 만들 수 있는 전략의 수도 한정적이지만, 데이터가 다채롭다면, 예를 들어 전 세계 모든 국가의 주식뿐 아니라 모든 자산군의 데이터가 있다면 이를 다루는 퀀트의 실력에 따라 얼마든지 다양한 전략을 만들 수 있다.

그렇다면 퀀트 투자에 필요한 데이터는 어떻게 구할까? 전문 투자자의 경우 ClariFi, 캐피탈 IQ, 팩셋, 톰슨 로이터, 블룸버그 등 해외의 여러 데이터 공급업체를 통해 양질의 데이터를 구할 수 있다. 하지만 그 비용이 1년에 최소 수천만원에서 수십억원에 이르므로 개인 투자자가 이러한 서비스를 이용하는 것은 사실상 불가능하다. 국내의 데이터 공급업체를 이용할 경우에는 그보다 저렴한 금액으로도 데이터를 구할 수 있지만, 데이터의 양이 매우 한정적이다. 웹스크래핑 혹은 크롤링과 같은 기술을 통해 웹페이지의 데이터를 무료로 추출하는 방법도 있다. 본 책에는 크롤링과 API를 이용해 국내 및 글로벌 데이터를 구하는 방법에 대해 살펴보도록 하겠다.

1.2. 퀀트 투자에 프로그래밍이 필요한 이유#

우리가 구한 데이터는 연구나 투자에 바로 사용할 수 있는 형태로 주어지는 경우가 거의 없다. 따라서 데이터를 목적에 맞게 처리하는 과정을 거쳐야 하며, 이를 흔히 데이터 클렌징 작업이라고 한다. 또한 정제된 데이터를 활용한 투자 전략의 백테스트나 종목 선정을 위해서 프로그래밍은 필수다. 물론 엑셀을 이용해도 간단한 형태의 백테스트 및 종목 선정은 가능하지만, 응용성 및 효율성 측면에서 엑셀은 매우 비효율적이다.

데이터를 수집하고 클렌징 작업을 할 때 대상이 몇 종목 되지 않는다면 엑셀을 이용해도 충분히 가능하다. 그러나 종목 수가 수천 종목을 넘어간다면 데이터를 손으로 일일이 처리하기가 사실상 불가능하다. 이러한 단순 반복 작업은 프로그래밍을 이용한다면 훨씬 효율적으로 수행할 수 있다.

백테스트에서도 프로그래밍이 훨씬 효율적이다. 과거 12개월 누적수익률이 높은 종목에 투자하는 모멘텀 전략의 백테스트를 한다고 가정하자. 처음에는 엑셀로 백테스트를 하는 것이 편하다고 생각할 수 있다. 그러나 만일 12개월이 아닌 6개월 누적 수익률로 백테스트를 하고자 한다면 어떨까? 엑셀에서 다시 6개월 누적수익률을 구하기 위해 수식을 바꾸고 드래그하는 작업을 반복해야 할 것이아다. 그러나 프로그래밍을 이용한다면 n = 12 부분을 n = 6으로 변경한 후 단지 클릭 한 번만으로 새로운 백테스트를 할 수 있다.

데이터의 용량 측면에서도 프로그래밍을 이용하는 것이 훨씬 효율적이다. 만약 엑셀 용량이 100MB 이며, 투자 전략이 계속해서 늘어나는 경우를 생각해보자. 엑셀에서 A라는 전략을 백테스트하기 위해서는 해당 데이터로 작업한 후 저장할 것이다. 그 후 B라는 전략을 새롭게 백테스트하려면 해당 데이터를 새로운 엑셀 파일에 복사해 작업한 후 다시 저장해야 한다. 결과적으로 10개의 전략만 백테스트 하더라도 100MB짜리 엑셀 파일이 10개, 즉 1GB 정도의 엑셀 파일이 쌓이게 된다. 만일 데이터가 바뀔 경우 다시 10개 엑셀 시트의 데이터를 일일이 바꿔야 하는 귀찮음도 감수해야 한다. 물론 하나의 엑셀 파일 내에서 모든 전략을 수행할 수도 있지만, 이러한 경우 속도가 상당히 저하되는 문제가 있다.

프로그래밍을 이용하면 어떠할까? 백테스트를 수행하는 프로그래밍 스크립트는 불과 몇 KB에 불과하므로, 10개의 전략에 대한 스크립트 파일을 합해도 1MB가 되지 않는다. 데이터가 바뀌더라도 원본 데이터 파일 하나만 수정해주면 된다.

1.3. 최고의 인기언어, 파이썬#

인간이 사용하는 언어의 종류가 다양하듯이, 프로그래밍 언어의 종류 역시 다양하다. 대략 700여 개 이상의 프로그래밍 언어 중 대중적으로 사용되는 언어는 그리 많지 않으므로, 대중성과 효율성을 위해 사용량이 많은 언어를 이용하는 것이 좋다. Fig. 1.1은 프로그래밍 언어의 사용 순위로써, 파이썬(Python)은 1위를 기록하고 있을 정도로 매우 대중적인 언어다.

_images/tiobe.png

Fig. 1.1 프로그래밍 언어 사용 통계 순위#

이처럼 파이썬의 인기가 높은 가장 큰 이유는 무료인데다 일반인들이 사용하기에도 매우 편한 형태로 구성되어 있기 때문이다. 기존에는 적게는 수십만 원, 많게는 수천만 원을 지불해야 했던 상용 소프트웨어의 기능을 파이썬에서도 모두 구현할 수 있을 뿐만 아니라, 훨씬 더 많은 기능을 활용할 수도 있다. 이로 인해 학계와 산업계에서 점차 기존 소프트웨어 대신 파이썬을 사용하는 비중이 늘어나고 있다. 또한 책이나 온라인 강의 등 파이썬을 공부할 수 있는 환경도 많아졌기에 진입 장벽도 매우 낮다.

1.4. 데이터 관리의 표준, SQL#

만일 수많은 데이터를 텍스트나 엑셀 파일로 관리할 경우 어떠한 단점이 있을까? 먼저 다수의 사람이 데이터를 공유하기 어려우며, 원하는 데이터가 있으면 매번 파일을 전송해주어야 하는 번거로움이 있다. 둘째로는 대량의 데이터를 다루기가 힘들다. 마지막으로 파일 삭제, 하드 디스크 고장, 보안 문제 등 사고에 대응하기가 어렵다. 이러한 이유로 실무에서는 대부분 데이터베이스를 이용해 데이터를 효율적으로 관리한다.

데이터베이스(database, DB)란 여러 사람이 공유하여 사용할 목적으로 체계화하여 통합, 관리하는 데이터의 집합이다. 예를 들어 티커, 주가, 재무제표, 목표주가 등 투자와 관련된 모든 데이터를 데이터베이스에 저장한 후 이를 관리하거나 사용할 수 있다. 데이터베이스 관리 시스템(database management system, DBMS)이란 다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어 도구의 집합이다. DBMS는 대량의 데이터를 다수의 사람이 안전하고 간단히 다룰 수 있게 해주는 장점이 있다.

_images/dbms.png

Fig. 1.2 데이터베이스 관리 시스템의 활용#

DBMS 중 가장 일반적으로 사용되는 것이 관계형 데이터베이스(Relational Database)다. 이는 엑셀 시트처럼 열과 행으로 이루어진 2차원 표 형식으로써 데이터를 관리하거나 이해하기 쉽다. 또한 SQL이라는 전용 언어를 사용해서 데이터를 처리할 수 있다. 이러한 관계형 데이터베이스 관리 시스템 중 대표적으로 사용되는 것으로는 오라클 RDBMS, MS SQL Server, Postgre SQL, MySQL 등이 있으며 본 책에서는 무료로 사용 가능한 MySQL을 살펴보도록 하겠다.

Note

파이썬 및 SQL을 설치하는 법은 부록에 설명되어 있으니 참조하기 바란다.