brunch

You can make anything
by writing

C.S.Lewis

by LS ELECTRIC Nov 25. 2021

회사에서 갈고 닦은 파이썬으로 자동주식투자하기

인터넷에 한때 유행했던 말로 '덕업일치'라는 것이 있다. 


덕업일치'의 마법… “월급은 적어도 행복의 백만장자” : 동아닷컴


자신이 좋아하는 일을 뜻하는 덕질(오타쿠, 오덕후에서 유래한 말)과 생업이 일치한다는 뜻이다. 한 마디로 돈을 벌면서 자신이 좋아하는 것을 한다는 말인데, 주말만 오매불망 기다리며 오늘 아침에도 마지못해 회사를 나가야만 했던 직장인들에게는 꿈만 같은 이야기가 아닐까 싶다.


물론 나는 지금 하고 있는 업무에 애정을 가지고 항상 최선을 다하고 있지만, 그래도 나의 취미와 직업이 일치하게 된다면 더 행복해지지 않을까 하는 망상 아닌 망상을 가끔 하곤 한다.


이런 부질없는(?) 생각을 하던 나날 중, 회사에서 흥미로운 기회가 주어지게 되었다.

전 LS 그룹 차원에서 집중적으로 투자하고 있는 DT(Digital Transformation)의 일환으로, 직원들의 데이터 분석 능력을 함양하기 위한 데이터분석전문가 양성 과정이 개설된 것이다.


업무를 하다 보면 데이터 분석을 해야 할 경우가 많이 생기곤 했기에 관심이 갔고, 나는 부서장님의 지원으로 데이터분석전문가 양성과정에 입과 하는 행운을 얻었다. 이 과정에서 파이썬(Python)이라고 하는 프로그래밍 언어와 데이터 사이언스의 기초를 학습할 수 있었다.


좋은 기회를 통해 학습한 데이터 분석은 업무에서 유용하게 활용하며 많은 도움이 되었다. 프로그래밍이라는 것이 나름 적성에 맞아 흥미로움도 많이 느꼈다. 


그러나 추진하던 데이터 분석 업무를 마무리하니 프로그래밍을 할 일이 사라지게 되었다. 프로그래밍 언어도 나름 언어라서 그런지 안 쓰다 보니 그 내용을 점점 잊어버리는 것 같았다. 힘들게 배웠는데 죄다 까먹는 것은 아닐까 우려가 되었다. 이왕이면 좀 더 유용하게 쓰고 내 취미에도 접목하는 방법이 없을까 고민하다 보니 나름 기발한 아이디어가 떠올랐다. 


그것이 바로 ‘파이썬을 이용한 자동 주식투자’였다. 


나름대로 흥미를 느낀 만큼 프로그래밍 언어는 내게 취미처럼 느껴졌다. 이러한 취미를 통해 주식 프로그램을 만들어 돈을 번다면 넓은 의미에서는 ‘덕업일치’와 일맥상통하는 것이 아닐까 싶었다. 


게다가 프로그래밍 언어를 계속 쓰게 되니 직무 스킬을 업그레이드할 수도 있고, 자동 주식투자를 통해 돈도 벌게 되면 일석이조 정도가 아니라 일석다조라고 부를 수 있을 것 같았다.


나는 무슨 일을 시작할 때 항상 전문가의 조언을 구하는 편이다. 회사에서 데이터분석전문가 양성 과정을 이수했지만 주식 분석은 생소한 분야다. 때문에 새로운 분야에 발을 딛기 위해서 전문가의 도움을 받아야 하겠다는 생각이 들었다.


그래서 알음알음 '진짜' 데이터분석전문가를 찾아 조언을 구해보았다. 기대와는 달리 '불가능'에 가까우니 포기하라는 대답이 대부분이었다.


심지어는 “그렇게 프로그램으로 수익을 낼 정도가 되면 여의도가 아니라 월스트리트에서 모시러 올 것.”이라는 우스갯소리도 들었다. 그러고 나니 신기하게도 포기하고 싶은 마음보다 '모두가 안 된다는 그 일 내가 해내 보겠다'라는 오기가 생겼다.


퇴근하자마자 집에서 잠자고 있던 노트북의 먼지를 털어내고 와이프의 눈을 피해 주식분석을 시작했다. 처음 했던 일은 주식에 대한 '기본적 분석'과 '기술적 분석'중 하나를 선택하는 일이었다. 


Automated Stock Trading Software (revsurfprofit.com)


주식을 분석하는 데에는 여러 가지 방법이 존재하는데, 그중 가장 기초적인 것은 주식의 근원이 되는 회사의 기본적 정보(주로 재무정보)를 이용하는 방법과 주가의 움직임을 '기술적'으로 분석하는 방법이었다. 전자는 장기 투자에 어울리고 후자는 주로 단기 투자에 어울린다. 나는 超단기 투자보다 장기투자를 선호하기 때문에 기본적 분석을 하기로 결정했다.


주식의 기본 정보를 얻기 위해서는 크게 두 가지 방법이 있었다. 첫 번째는 다른 개발자들이 만들어 놓은 API(Application Programming Interface)를 이용하는 것이고, 다른 하나는 내가 직접 정보를 수집하는 방법이었다.


API는 이미 다른 개발자들이 만들어 놓은 기능이기에 내가 얻고자 하는 것을 입력만 하면 쉽게 정보를 얻을 수 있는 장점이 있었다. 하지만 통상적인 종류 위주의 정보를 제공하기 때문에 복잡한 고급 알고리즘을 위해 필요한 정보를 얻는 데는 한계가 있었다.


기존의 API들을 살펴보니 내게 필요한 몇몇 정보가 부족함을 알 수 있었다. 때문에 나는 눈물을 머금고 쉬운 길 대신 데이터 직접 수집이라는 어려운 길을 선택할 수밖에 없었다. 


우선 DART라고 하는 전자공시시스템의 과거 데이터를 raw data(가공되지 않은 원 데이터)로 삼아 데이터를 분석하기 시작했다.


수 백 개의 기업 데이터를 일일이 분석하는 것은 매우 고된 일이었지만 다행히 내겐 파이썬이 있었다. 회사에서 배운 파이썬을 이용하여 2019년 기준 약 495개의 재무 데이터 등을 정리했다. 부족한 데이터는 KRX(한국거래소)의 과거 데이터를 조합하여 정리할 수 있었다.

(물론 KOSPI에는 800여 개의 기업이 등록되어 있으나 제대로 된 과거 데이터를 추출할 수 있는 것은 절반이 조금 넘는 정도였다.)


 이 데이터를 바탕으로 알고리즘을 만들기만 하면 나의 비루한 통장 잔고가 눈이 부시게 아름다워질 것이라고 생각했고, 의욕이 하늘을 찌를 듯이 높아졌다.


 상관관계 분석 같은 통계적 기법부터 시작하여 데이터분석전문가 양성 과정에서 배운 다양한 머신러닝 기법을 화려하게 이용해 데이터를 분석했다. 그러나 내가 원하는 결과는 단시간에 나오지 않았다.


 무엇이 부족한 건 아닐까 싶었던 나는 주식 기본 분석 도서를 비롯하여 Google에서 다양한 정보를 계속 파보았다. 그러나 내게 돈을 안겨다 줄 미래의 ‘대박‘주식을 찾는 방법은 쉽게 나오지 않았다. 초조해진 나는 완전히 방향을 틀어버렸다. 


 ‘완벽하지 않으면 어떠랴, 일단 실제 돈을 투자해 보면서 보완과 수정을 진행하자.’


 처음엔 이론적으로 확실한 알고리즘을 작성한 후, 실제 돈으로 투자를 해볼 계획이었으나, 조급한 마음이 생기면서 일단 실제 투자를 하며 알고리즘을 수정하자는 방향으로 전환했다. 지금 생각해 보면 원하는 결과가 나오지 않자 조급한 마음에 무리한 선택을 했던 것 같다.


 데이터를 분석해서(실제로는 분석하다가 만) 작성한 알고리즘을 실제 주식 투자로 구현하기 위해서는 증권사에서 제공하는 API를 새로 이용해야 했다. 증권사의 API 기술 지원 성실성, API의 성능, 무엇보다 가장 중요한 거래 수수료를 비교하여 A 증권사를 고르게 되었고, 이 증권사의 API를 이용하여 나 대신 돈을 벌어올 자동주식거래 프로그램을 개발하기 시작했다.


어느 정도 프로그램이 잘 동작한다는 생각이 들 때 쯤, 나는 다음 단계인 실제 자동주식매매를 준비하기 시작했다. 우선 평일 아침 주식 장이 시작될 때부터 오후 장 마감 때까지 항상 켜져 있을 PC가 필요했다. 게다가 복잡한 알고리즘을 수행해야 하니 일정 성능 이상이어야 했다.


 퇴근 후, 주말 등 집에 있는 시간마다 컴퓨터를 붙잡고 씨름하는 탓에 가뜩이나 부인의 눈초리가 매서웠는데, 여기에 고가의 PC를 추가로 사서 계속 가동한다면 어떻게 될까? 통장의 황금빛 미래보다 부인의 손바닥 맛을 볼 내 등짝의 미래가 더 두려워졌다.


 그래서 다른 방법을 찾아보았다. 열심히 검색해 보니 미국 아마존社에서 제공하는 AWS(Amazon Web Services)라는 무료 웹 서비스가 가장 합리적이었다. (유료 서비스는 성능은 좋지만 비쌌다!) 궁하면 통한다더니 사람은 위기에 맞닥뜨려도 어떻게든 방법을 찾는다는 것을 다시금 깨달았다. (We will find a way. We always have.) 


그렇게 개발을 시작한 지 약 2달 여 만에 드디어 프로그램을 가동할 수 있게 되었다. 


 나는 매일 퇴근하자마자 황금빛 미래에 부푼 가슴을 안고 자동주식거래 프로그램의 실적을 확인했다. 그러나 내 기대와는 달리 빨간색으로 가득할 줄 알았던 계좌는 온통 파란빛이었고, 나는 점점 암울함에 빠지게 되었다. (주식거래에서 이익이 발생하면 빨간색으로 손실이 발생하면 파란색으로 표시된다.) 


파란 나라를 보았니? (MBC 나 혼자 산다.)


 ‘진짜’ 데이터분석 전문가의 조언이 떠오르며 ‘내가 무슨 부귀영화를 누리려고 퇴근해서 매일 이 고생인가?’ 하는 생각마저 들게 되자 결국 프로그램을 종료했다. 그렇게 나의 자동주식거래 프로그램은 내 지갑이 아닌 다른 사람의 지갑을 채워주면서 생명을 다하고 말았다.


금융기관과 전문가들은 이미 프로그램을 이용하여 자동주식매매를 실시하고 수익을 내고 있다. 그러나 주식과 데이터 분석 양쪽에서 초보였던 내가 자동주식매매에 뛰어든 것은 갓난아이가 올림픽 육상경기 결승전에 뛰어든 것과 비슷하지 않았나 싶다.


 이러나저러나 프로그래밍 실력은 많이 늘었으니 좋은 것 아닌가 하며 위안을 삼기도 한다. 용돈 수준에서 투자를 했기에 충분히 감내할 손실이긴 하였으나, 아쉬움이 많이 남는 도전이었다.


 주식시장이라는 거대한 산에 도전하기에는 아직 갈 길이 먼 초보 투자자&프로그래머이지만 회사 업무도 열심히 하고 프로그래밍, 주식 공부도 더 열심히 하면 언젠가는 흥미로운, 나아가서 돈이 되는 성취를 얻을 수도 있지 않을까? 내게도 진짜 ‘덕업일치’가 가능한 날이 오길 기대해 본다.



작가의 이전글 신림선 프로젝트는 순행 중!
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari