1. Introduction

주가 예측 과제 소개

주가 예측에 관심을 갖게된 이유

나는 어렸을 때부터 돈을 많이 벌고 싶었다. 예나 지금이나 개인이 큰 돈을 벌 수 있는 수단은 창업이다. 그러나 창업을 할 배짱도, 아이디어도, 엄청난 리스크를 감수할 마음도 없다. 또한 외부로 뻗어나가기 보다는 내부로 에너지를 쏟는 성향의 나에겐 적합하지 않다고 생각한다. 반면 투자는 온전히 본인의 선택이며 타인과의 교류로 인해서 결과에 영향을 미치지 않는다. 듣는 소스가 많을 수록 유리할 순 있겠으나, 순전히 본인의 실력과 선택으로 부의 방향이 결정된다. 2017년 머신러닝 처음 접한 후, 가장 먼저 들었던 생각은 "머신러닝을 통해서 주가 예측이 가능할까?" 였다.

행동으로 옮기지 않는 생각은 망상에 불과하다.

2년이 지난 2019년, 한 컨퍼런스를 통해서 주가 예측 프로젝트를 진행했다. 환율, 원자재, 채권, 국내 주요 주식, 경제 뉴스 등의 10년치 데이터를 바탕으로 익일의 코스피 200 지수를 예측했다. 프로젝트를 진행하며 얻었던 것도, 실수한 것도 있었다. 거시 경제 지표와 머신러닝으로 예측 가능한 날짜가 있는 반면, 그렇지 못한 날이 있다는 것을 확인했다. 시계열 예측은 예측 모델에 상관없이 전일 종가를 그대로 후행 예측하는 time lagging 현상이 빈번하게 발생한다는 것을 알게 되었다. 철저히 과거 시점에 기반하여 미래 데이터를 사용하지 않게끔 프로젝트를 설계했으나, 데이터 구축부터 생존편향을 무시하여 미래 값이 반영된 왜곡된 결론에 도달했다. 물론 이 때 당시엔 알지 못했다.

결과만 놓고 본다면 가능성만 확인한, 실제 투자로 이어지지 못한 실패한 프로젝트이다. 지금 다니는 회사의 상사들은 이것을 보고 '그것 봐 안된다고 했지?'라고 말할지 모르겠다. 그러나 한 가지 의의는 명확하다. 만약 당시에 주가 예측은 불가능하다는 말을 듣고 프로젝트를 진행하지 않았다면 나 또한 그들과 같이 아무 생각없이 예측은 불가능하다고 읊는 앵무새가 되었을 것이다. 그러나 나는 시도했고, 예측 성능을 높이기 위해 행했던 모든 것은 내 자산이 되었다. 또한 프로젝트를 진행하며 했던 모든 고민들은 도메인을 쌓아가면서 빛을 발할 것이다. '머신러닝으로 돈을 벌 수 있을까?'란 생각을 할 때 고민을 하지 않았던 사람과 비교하여 보다 다양한 것을 시도할 수 있고 틀린 방향으로 가지 않게 해줄 것이다. 결국 나는 불확실한 영역을 행동으로 확인함으로써 현재와 미래의 시간을 아낄 수 있다.

가능과 불가능의 사이

저명한 전문가들은 주가 예측이란 불가능한 일이라고 말한다. 또한 개인이 종목을 고르는 것, 시황을 읽어서 선제적 대응을 하는 것은 매우 힘들다고 한다. 아이러니 하지만 나는 이것이 사실이라고 믿는다. 내가 들인 시간에 비해서 결과가 시원치 않을 수 있다. 오히려 좋지 못한 결과를 맞이할 확률이 높다는 것 또한 알고 있다. 그럼에도 나는 도메인 지식을 쌓은 지금, 이를 다시 확인하고자 한다. 예측이 불가능하다는 말이 AI 기술이 발달한 현 시대에도, 앞으로도 통용될 말일까? 5년 후, 10년 후 후배가 들어와 나와 똑같이 주가 예측을 하겠다고 한다면 난 그들과 똑같은 말을 할 것인가? 아니면 내가 갔던 길과는 다른 방법으로 접근해보기를 권할 것인가. 나는 무책임한 선배가 되고 싶지는 않다.

개인은 시장을 이기기 힘들다. 이는 불변의 진리이다. 본인이 시장 초과 수익을 낼 수 있다고 확신하는 사람들은 다음 책들을 읽어보기를 권한다.

절대수익 투자법칙 - 김동주

돈의 심리학 - 모건 하우절

현명한 자산 배분 투자자 - 윌리엄 번스타인

모든 주식을 소유하라 - 존 보글

머신러닝에 관한 나의 주관

필자가 느끼는 머신러닝의 가장 큰 매력은 머리 속의 상상을 구체화하여 실현 시키는 것에 있다. 이는 사실 코딩으로 할 수 있는 모든 것(예: 웹, 앱 개발, 소프트웨어 개발 등)이 동일하지만, 머신러닝은 프로그램을 개발하는 것 보다 특수하다. 바로 룰 베이스 이상으로 사람의 사고를 대체할 수 있다는 것이다.

대표적으로 데이터 속에서 숨은 패턴을 발견하고 이를 새로운 환경(데이터)에 적용하는 것이 그 예이다. 머신러닝 task 중에서는 수치 예측(Regression), 분류(Classification)과 같은 지도 학습이 대표 사례가 될 것이다. 사람은 수 십만 행과 수 백개의 열을 지닌 데이터로부터 공통적인 패턴을 탐지할 수 없으나 AI 알고리즘에게 대규모 데이터는 높은 성능을 위한 필수 자양분에 해당한다. 그렇다면 수 많은 증권 관련 데이터를 수집하여 숨겨진 패턴을 파악할 수 있을까?

경력이 많은 증권사 PB나 애널리스트, 그리고 프랍 트레이더들은 직무 경험을 통해 얻은 탄탄한 증권 지식을 머리 속에 저장하고 있다. 이를 시장에 대한 내재된 지식이라고 하자. 그들이 접하는 각종 지표(환율, 금리 등)와 경제 기사들은 내재된 지식과 더해져 재해석 되고 가공된다. 일반인들이 이와 같은 수준에 도달하기에는 수 많은 노력과 시간이 필요할 것이다. 이번 프로젝트를 진행하고 글을 쓰는 이유는 전문가들이 이룩해 놓은 지식을 얻고 싶기 때문이다.

앞서 말하였듯 머신러닝은 사람의 사고를 대체할 수 있으며 숨겨진 패턴을 발견하는 역량은 인간보다 뛰어나다. 만일 전문가의 의사 결정 프로세스를 완벽히 이해할 수 있다면 이를 근사하는 알고리즘을 구축하는 것은 불가능의 영역은 아니다. 기사를 통해서 가공된 지식을 획득하는 과정은 자연어 처리를 필요로 할 것이며, 각종 경제적 수치들을 종합적으로 이해하는 과정은 특성 공학(Feature Engineering) 과정으로 대체될 수 있다. 한 가지 challenge가 존재한다면 기존에 관측되지 않은 새로운 위험에 대한 대응력 정도가 있을 것이다.

그러나 한 가지 말하고 싶은 점은, 필자가 추구하는 것은 모든 상황에 대처 가능한 전지전능한 신을 만드는 것이 아니다. 제한된 조건과 환경 속에서 높은 성능을 발휘하는 예측 모델을 구축하는 것이 목표이다. 예를 들어 미국 증시가 하락하고, NDF 환율이 상승하였으며(=원화 가치가 하락하였으며), 삼성전자의 해외 수급처에 문제가 발생한 상황에서 이 글을 읽는 독자는 익일의 코스피를 어떻게 예측할 것인가. 상당히 높은 확률로 코스피 하락에 배팅할 것 같지 않은가?

(작성 중)

주가 예측 과제 소개

(작성 중)

Last updated