파이썬 증권 데이터 분석(김황후, 한빛미디어)
나의 경제적 자유를 위한 첫 번째 여정인 "주식 투자"를 위해 처음 접근한 방법은 IT 기술을 활용하여 증권(주식) 데이터 분석하는 것이었다.
보통 주식 투자를 한다고 하면 증권 계좌부터 열고 유튜브나 여러 미디어에서 주식 전문가나 애널리스트들의 얘기를 듣고 시장 현황과 특정 회사의 상황을 파악한 뒤 자신이 직접 판단하여 주식을 매수하는 것이 일반 적일 것이다.
하지만 나는 주식만큼은 절대 나의 주관적인 판단에 의존하지 않을 생각이다.
오랜 세월 동안 나는 이성적이고, 분석적이며, 냉정한 사람인 줄 알았지만 살다 보니 나 자신에 대해서 조금은 객관적으로 볼 수 있게 되었다. 나는 정말 주관적이고 감정적인 사람이다.
남들이 봤을 때 손해 볼 것이 뻔하고, 실패할 것이 뻔한 일들도 나는 그냥 했다. 그저 내가 믿는 것과 지금까지 믿어왔던 것이 신념이 되어 결국은 내 판단이 옳았고 승리할 것이라는 착각에 빠진 채로 말이다.
주식에서 만큼은 내 믿음과 판단을 배제할 생각이다.
내가 만약 주식을 하게 된다면 내가 잘 알고 앞으로 세상의 변화를 가져다줄 거라고 믿고 있는 분야 및 기술 그리고 오랜 세월 내가 존경했던 인물들(특히 일론 머스크)에게 맹목적으로 배팅할 것이고, 내가 믿고 있는 것들을 유튜브나 사람들이 앞으로 떡상(?)할 것이라고 좋은 전망을 내놓으면 나는 여기에 힘입어 그냥 올인할 것 같다. 그래서 나는 주식할 때만큼은 내 주관적인 생각과 판단을 버리고 할 예정이다.
나는 데이터를 믿고 투자를 해보려 한다. 더 정확하게 말하면 주식 시장에서 오랜 기간 축적된 증권 데이터를 기반으로 수학적, 통계적 분석을 통해 앞으로 오를만한 주식을 예측하는 확률을 믿을 것이다.
주식 시장에서 완벽한 이론과 방법론은 존재하지 않을 것 같다.
하지만 방대한 데이터 분석을 통해 좋은 주식을 예측하는 확률은 높일 수 있을 것이라고 생각한다.
모든 일에는 원인과 결과가 존재한다고 믿는다.
주식에도 분명 특정 종목이 오르고 내리는 결과에 대한 다양한 원인과 패턴이 존재할 것이고 이런 패턴을 찾아내는 역할을 주식 투자를 하는 '당사자'가 해야겠지만 나는 데이터에게 맡기려고 한다.
솔직히 가능한 일인지는 잘 모르겠다. 주식은 회사 구성원의 비전, 기술력, 트렌드, 시장 상황, 사람들의 심리, 그리고 코로나 같은 예측 불가능한 요소 등 여러 가지 변수와 상황을 감안해야 할 것이고 이런 것들은 솔직히 정량적으로 측정하기가 힘든 요소들이다.
하지만 이런 다양한 요소들이 결국 주식 가격이 오르고 내려가는, 둘 중 하나를 결정할 것이고 오랜 세월 축적된 결과들을 분석하면 결국 이 주식이 왜 오르고 내려가는지에 대한 힌트를 줄 수 있을 것 같다.
여러 가지 이론을 데이터 분석 알고리즘으로 구현해보고 거기에서 나만의 최적의 패턴을 만드는 것.
이것이 나의 목표이다.
데이터는 오늘날 돈보다도 중요한 자산이 되었다.
수많은 기업들이 사람들에게 더 좋은 서비스와 제품을 만들어내기 위해서 고객의 소비패턴, 일상 패턴 등의 데이터를 얻기 위해 혈안이 되어 있다. 그만큼 데이터가 만들어낸 결과가 성과가 있다는 말이고 데이터가 곧 돈이라는 말이다.
유명한 속담 중에 "열 길 물속은 알아도 한 길 사람 속은 모른다."라는 말이 있다.
나는 이것이 반은 맞고 반은 틀리다고 본다.
인간의 뇌를 구성하는 1000억 개의 뉴런과 100조 개의 시냅스의 전기적/화학적 상호작용으로 만들어낸 복잡하고 변칙적인 인간의 생각을 100% 알 수는 없지만 한 사람이 살아오면서 남겨온 데이터를 분석하면 어느 정도 이 사람이 어떤 선택과 행동을 할 것인지 예측이 가능하다. 그것도 높은 확률로 예측이 가능하다.
'나'라는 사람을 예로 들어보겠다.
내가 서울에서 직장 생활했을 때의 평일/주말 패턴이다.
[평일]
아침에 기상을 하고 수유역 인근 편의점을 들러서 스타벅스 캔커피 한잔에 말보로 미디엄 한 갑을 산다.
그리고 수유역에서 지하철을 타서 가산디지털 단지까지 이동 후 회사에 출근한다.
점심시간이 되면 빌딩 구내식당에 가서 밥을 먹는다.
밥을 먹고 후식으로 빌딩 안에 있는 카페에서 바닐라 라떼를 시켜 마신다.
퇴근 후 지하철을 타고 집 근처로 향한다.
집에 들어가기 전에 순대국밥 집에 가서 모둠순대국밥을 시켜서 먹고 집에 들어가서 잔다.
[주말] - 그나마 변칙적
노트북과 책을 들고 집 근처 419 카페거리를 가서 내가 좋아하는 '미즐 엠' 카페에 가서 바닐라 라테를 한잔 시키고 작업 혹은 독서를 한다.
간혹 심심풀이로 집 근처 피시방을 가서 내가 그나마 할 줄 아는 게임 "리그 오브 레전드(줄여서 롤이라고 부른다)" 한다.
점심시간이 되면 순대국밥집에 가서 모둠순대국밥을 시켜먹는다.
아는 지인으로부터 연락을 받고 수유역으로 가서 "수유역 이자카야"에 가서 술 한잔 하거나 기분이 좋으면 이태원 혹은 강남 술집에 가서 술을 마신다.
간혹 심심하면 수유역 알라딘이나 교보문고 가서 책을 구경하러 가거나 카페에 가서 시간을 보낸다.
[기타]
- 명절을 제외한 연휴기간에 가끔 순천, 혹은 부산여행을 떠난다.
- 파주 사는 불알(?) 친구와 맛집 투어 및 다른 지역 나들이를 간다.
- 같이 창업했던 친구를 만나 카페에서 담소를 나누고 밥을 먹고 피시방에 가서 롤을 한다.
나의 일주일간 생활 패턴으로 나라는 사람이 어디를 자주 가고 무얼 좋아하고 어떤 성향인지 파악하기는 힘들 것이다. 일주일 사이에 피자를 먹을 수도 있고, 갑자기 미술관을 갈 수도 있고, 노래방을 갈 수도 있다.
하지만 6개월 1년 데이터를 본다면? 나라는 사람의 성향을 높은 확률로 예측 가능하다.
좋아하는 여행지는 부산과 순천이요, 카페에 자주 가고, 바닐라 라떼를 좋아하고, 담배는 말보로 미디엄을 피우고 모둠순대국밥을 좋아한다. 여기서 시차적인 분석까지 가능하다. (퍼센트는 단지 예시일 뿐입니다)
평일 오전 8~9시 사이 담배(말보로 미디엄)를 살 확률 : 80%
주말 오후 1시~6시 사이 카페에 갈 확률 : 40%
주말에 피시방을 갈 확률 : 30%
3/1절이 낀 주말에 부산에 갈 확률 : 15%
평일 저녁 8시에 순대국밥을 먹을 확률 : 50%
1개월 안에 책을 구매할 확률 : 60%
구매할 책의 분야가 IT 분야일 확률 : 80%
이런 식으로 오랜 기간 축적된 데이터를 기반으로 나 자신 혹은 여러분의 패턴과 성향 그리고 선호도를 예측할 수 있다. 여러분의 카드 결제 정보로 알 수도 있고 SNS에서 좋아요를 누르고 업로드한 영상 정보로 알 수도 있고 유튜브 혹은 포털사이트에서 검색한 키워드나 시청한 영상 정보를 보고 파악할 수도 있다.
요즘 사람들이 말하는 유튜브 알고리즘만 봐도 쉽게 이해가 된다.
이상하리 만큼 내가 선호하는 영상을 자주 띄워준다. 그리고 종종 내가 좋아하지 않을 것 같은 영상도 많이 올라오는데 이상하게 클릭하게 되고 막상 보면 정말 재미있다.
내가 무의식 중에 클릭한 영상 혹은 나도 모르게 썸네일에 끌려서 들어갔던 영상 정보까지 이미 구글 데이터 베이스에 남아있을 것이고 이 모든 데이터를 분석해서 이런 걸 좋아하면 이런 것도 좋아할 수도 있겠다고 판단하는 것 같다.
가끔 유튜브 알고리즘이 나보다 더 나를 잘 알고 있는 게 아닌가라는 착각이 들기도 한다.
이것이 데이터의 힘이다. 그리고 주식시장에서도 분명 방대한 증권 데이터 분석을 통해 오를 주식을 고르는 확률을 높일 수 있을 거라고 생각한다.
그래서 나는 파이썬을 통해 "퀀트 투자"를 해볼 생각이다.
아래 설명부터는 퀀트 투자와 왜 파이썬을 활용하는지에 대한 설명을 하기 위해
"파이썬 증권 데이터 분석(김 황후, 한빛미디어)" 책에서 나온 내용을 그대로 옮겨 적었습니다.
- [책 본문 내용] 아래 설명 시작 -
바야흐로 퀀트 투자 시대가 도래했다. 퀀트 투자에서 퀀트랑 '계량적인', '측정 가능한'의 뜻을 지닌 단어 Quantitative에서 따온 것이다. 전통적으로 퀀트 투자란 금융공학자들이 고도의 수학적, 통계적 지식을 바탕으로 파생상품의 가격을 모델링하여 투자하는 것을 의미했지만, 이제는 컴퓨터가 널리 보급되어서 금융 전문 지식이 없는 일반인들도 소프트웨어의 힘을 빌려 계량화된 수치에 따라 퀀트 투자를 할 수 있게 되었다.
글로벌 투자 은행의 변화
미국 하버드대에서 열림 2017 CSE 심포지엄에서 골드만삭스 최고 재무책임자 마티 차베스는 "앞으로 투자는 수학 원리와 소프트웨어 프로그램이 주도할 것"이라고 말했다. 약 3만 5000명에 달하는 골드만삭스 전체 임원의 4분의 1 가량이 컴퓨터 엔지니어라고 밝혔는데, 실제로 한때 600명에 달하던 골드만삭스 주식 매매 트레이더들은 이제 두 명 밖에 남지 않았다. 골드만삭스의 외환 거래 부서에서 딜러 네 명이 담당하던 업무를 지금은 컴퓨터 엔지니어 혼자 담당한다.
퀀트 투자의 장점
퀀트 투자는 정량적인 분석만으로 투자하기 때문에, 주관적인 요소가 개입될 여지가 적다. 얼핏 보면 각종 재무제표와 시계열 데이터에 능통한 기관투자자의 전유물로 생각할 수 있지만, 사실은 주관적인 요소를 배제하기 어려운 일반인에게 오히려 더 적합한 투자 방식이다.
퀀트 투자에서 정량적인 데이터만 다룸으로써 얻게 되는 장점은 백테스트를 통해 내가 세운 투자 전략을 검증한다는 점이다. 과거 데이터에 기반한 시뮬레이션 결과를 살펴봄으로써 나의 투자 전략이 어느 정도의 기간에 걸쳐 얼마나 수익을 낼지 미리 예상해 볼 수 있다.
빅데이터와 인공지능 기술이 대두되며 파이썬 인기도 나날이 높아지고 있다. 파이썬은 문법이 간단하여 일반인도 쉽게 배울 수 있을 뿐만 아니라, 데이터 수집부터 전처리, 모델링, 시각 화등에 필요한 라이브러리를 모두 갖추고 있어서, 증권 데이터 분석 및 자동매매 시스템을 만드는 최적의 언어로 평가되고 있다.
2000년대 초반만 하더라도, 인터프리터 방식 프로그래밍 언어의 양대 산맥이었던 파이썬과 펄은 서로 비교 대상이 되기 일쑤였다. 당시만 해도 텍스트 처리에서는 펄이 다소 낫다는 의견이 있었는데, 현재로서는 강력한 라이브러리 기반의 파이썬이 모든 프로그래밍 언어를 통틀어 대세다.
데이터 과학 분야에서 파이썬과 함께 치열한 경쟁을 벌이는 R 언어는 그 쓰임새가 데이터 과학분야에 한정된다. 반면 파이썬은 범용적인 언어이기 때문에 배워두면 웹 애플리케이션 개발, 해킹 등 다양한 목적으로 사용할 수 있다.
파이썬의 특징 3가지
1. 간결한 코드
2. 풍부한 표준 라이브러리
3. 직관적인 문법
- [책 본문 내용] 아래 설명 끝 -
나의 직업은 프로그래머는 아니었지만 오랜 기간 IT 분야에 몸담고 있었던 탓에 자바(JAVA) 언어는 조금 다룰 줄 아는 수준이고 프로그래밍 언어에 대한 기초 지식과 이해도가 어느 정도 있는 수준이다.
그래서 솔직히 주식투자를 위한 금융공학도 나에겐 친숙한 자바(JAVA) 기반으로 하고 싶었지만 증권 데이터 분석과 인공지능 기술을 구현하기 위해서는 파이썬이 최적화되어 있어서 어쩔 수 없이 파이썬을 공부하기 시작했는데 며칠 파이썬 공부하고 적지 않게 놀랐다.
너무 코드가 간결하고 직관적이었다. 그냥 영어 문장 치는 느낌이 들 정도였다.
처음 단계라 쉬웠겠지만 아무튼 내가 자바라는 언어와 자바를 기반으로 웹사이트를 제작하기 위해 스프링 프레임워크를 공부할 적에는 정말 머리에 쥐가 날 정도로 내용이 어렵고 문법도 눈에 안 들어왔었다.
하지만 파이썬은 정말 초보자도 쉽게 습득할 수 있겠다고 생각할 정도였다.
그리고 데이터 분석에 최적화되어있는 언어답게 데이터 분석을 위해 제공되는 라이브러리가 정말 강력했다.
코드 몇 줄 안 쓴 것 같은데 증권사 사이트에서 정보를 스크래핑하고, 정보를 데이터 프레임으로 만든 뒤 그래프로 출력까지 되는 걸 보고,, 내가 코드를 작성했는데도 내가 도대체 뭘 썼길래 이렇게 되는 거지?라는 생각까지 했다.
이건 나의 주관적인 생각이기도 하지만 파이썬은 정말 초보자도 배울만한 언어이고 데이터 분석에 최적화되어있는 언어인 건 확실하다.
하지만 나는 프로그래밍 언어에 대한 이해가 어느 정도 있어서 금방 습득했지만 아예 기초지식이 없는 분들은 그래도 한 달 정도는 파이썬 문법 공부를 해야 할 수도 있다.
어쨌든 오늘부터 파이썬을 활용해서 증권 데이터를 분석하고 나만의 퀀트 투자를 완성해보겠다!