책장

금융 투자에 파이썬을 쓰고 싶다면, 파이썬 증권 데이터 분석

코리안더 2021. 10. 15. 08:00
반응형

 

파이썬 증권 데이터 분석
김황후 지음
한빛미디어 출판

 

 퀀트 투자를 어떻게 하면 좀 더 제대로 해 볼 수 있을까 고민하던 차에 전자도서관에서 찾은 책이다. 사실 전자책으로 읽을 때는 종이책처럼 집중이 잘 되지 않아서 본격적인 코딩을 할 때 책을 덮어버렸다. 집중도 안되는데 알 수 없는 오류도 나고, 전자책만으로 공부하기에는 버겁다(또는 귀찮다)는 느낌이 계속 들었기 때문이다. 그냥 끝내긴 아까워서 전체적으로 슥슥 읽어봤는데 이건 '내 수준의 책이 아니다' 싶어서 다른 책 2권을 먼저 읽기로 했다(그 책 『파이썬 머신러닝 판다스 데이터 분석』 리뷰, 『파이썬으로 배우는 포트폴리오』 리뷰). 그 후 이 책을 읽으니 그제야 진도가 나가는 느낌이다(사실 이 책도 초반에 파이썬과 판다스 기본이 나오니 별 차이가 없었을지도 모른다. 내 자신감의 차이뿐이었을까).


 컴퓨터 공학 전공자가 아니라 코딩에 익숙지 않은, 나 같은 사람이 파이썬으로 투자를 더 현명하게 읽고 싶다면 이 책을 한 번 읽어보길 권한다. 이 책의 가장 큰 장점이라면 파이썬으로 어떻게 투자에 활용할 수 있는지 보여준다는 점이다. 사실 파이썬 몰라도 투자 잘할 사람은 잘한다. 각 증권사 HTS에는 강력한 기능이 많이 있는데 투자에 필요한 데이터는 이걸로도 거의 다 확인할 수 있다. 그러나 HTS가 무겁고 정작 내가 해보려는 백테스트 같은 HTS에서 제공하지 않는 기능은 다른 도구를 쓰는 수밖에 없다. 간단한 계산 정도는 엑셀로도 충분하지만, 쓰다 보면 스프레드시트 프로그램인 엑셀로는 한계가 있으므로 자연스럽게 파이썬을 비롯한 코딩으로 넘어갈 수밖에 없다.

 이 책을 보면 코딩을 주식 매매에 활용하는 다양한 방법을 폭넓게 살펴볼 수 있다. 가장 기본적인 수준은 단순 계산 툴이고, 점차 나아가서 자동으로 일간 주가를 수집하고 저장하며 미래 주가를 예측하고, 자동으로 매매하는 수준까지 있다. 이 책의 구성 역시 이와 비슷하게 파이썬과 판다스 입문(기본), 웹 스크레이핑과 DB구축, 트레이딩 전략 구현과 백테스팅, 웹 시스템을 통한 자동매매 설정, (기초적) 딥러닝 등으로 나누어져 있다. 따라서 모든 부분을 아주 상세하게 설명하진 않아도 어떤 기능을 구현하기 위해서 어떤 모듈을 쓰거나, 어떤 부분을 더 공부해야 하는지 감을 잡을 수 있다. 가령 '두 ETF의 상관관계를 알기 위해 어떻게 해야 할까?'라는 질문에, (파이썬으로 계산 자체는 쉽게 할 수 있지만) 웹 스크레이핑으로 주가를 긁어모으고 팬더스 라이브러리로 계산하면 되겠다는 해결법을 알 수 있다. 또 다른 예시로 자동매매 시스템을 어떻게 짜면 좋을지와 같은 의문에 Django로 웹서버를 구축하고 증권사 API를 활용해야 한다는 점을 알 수 있다. 즉, 이 책은 초보자에게 길잡이 역할을 할 수 있다.

 또한 이 책에는 네이버 웹 스크레이핑에 필요한 소스코드가 수록되어 있다. 간단한 자동매매 소스코드도 있다. 네이버에서 주가 정보를 수집하려면 어떻게 해야 할까? 유명한 차트 트레이딩 전략을 구현하려면 어떻게 해야 할까? 맨땅에서 새로 만들기보다는 고쳐 쓰는 게 훨씬 효율적이다. 이 책에 나와있다. 소스만 공짜로 쏙 빼먹지 말고 한번 사서 보자.

 책의 1부가 기본 편이라면, 2부는 활용 편이라고 할 수 있다. 1부가 유기적으로 연결되어 있다면, 2부는 각 챕터별로 독립적인 느낌이 많이 든다. 나 같은 경우 뒤로 갈수록 이런 것까지 해야 하나 싶은 생각에 전부 실습해보진 않고 책으로 읽고 넘겼다. 특히 슬랙을 설정하려는데 책 내용과 많이 다르기도 하고 자동매매도 안 하고, 머신러닝도 안 쓸 텐데 이걸 꼭 실습해야 하는지 고민이 돼서 읽기만 했다. 그럼에도 안 읽는 것보다는 도움 된다고 본다. 나중에 자동으로 메시지를 보려면 어떻게 해야 하는지, 장고(Django)로 어떻게 페이지를 만들 수 있는지 감이라도 잡을 수 있기 때문이다.

 이 책의 단점은 분량의 한계 때문인지 각 챕터의 초반은 친절히 잘 설명해주다가도 어느 순간 난이도가 확 높아져서 "이렇게 소스코드를 짰으니 옮겨 쓰세요"수준으로 급격히 높아진다는 점이다. 사실 각 챕터 하나씩만 해도 책 한 권 수준이라 이해는 되지만... 나도 어느 순간부터인가 적당히 손으로 치다가 아예 다운받은 예제 파일을 돌려쓰고 있었다. 내가 기초가 부족한 건지 코드가 정확히 이해가 되진 않고 '이렇게 썼구나' 정도로 대략 감만 잡힌다. 초보자를 위한 책? 글쎄다. 초보도 이 책을 따라 하면 어느새 자동매매를 하겠지만 그저 코드만 따라서 돌린 것뿐이고, 제대로 이해하고 응용하기엔 이 책만으로는 어려워 보인다. 반복해서 말하지만 제대로 익히고 싶다면 다른 책도 봐야 한다.

 또한 아주 친절하지는 않다. 문체가 불친절한 건 아니지만 조금씩 생략한 부분이 있어서 초보들은 예상치 못한 장애물에 헤맬 수도 있을 것 같다. 한 줄씩 완벽하게 이해(?)하기엔 자세한 설명이 부족한 부분이 군데군데 있다. 설명의 깊이와는 별개로 본 내용과 관련 없는 부분에 신경을 많이 쓰기도 했다. 계속 정상 실행이 안돼서 자동 생성된 파일을 잠깐 지웠다가 다시 깔거나, 자동으로 바뀐 대소문자 때문에 삽질을 좀 한 적도 많았다(이런 게 코딩 아닐까). 귀찮으면 그냥 소스 코드를 다운받아서 쓰자...

 일단 책 내용대로 정확히 코딩해도 네이버에서는 웹 스크레이핑이 되지 않는다. 네이버 측에서 막았기 때문인데 나는 이것도 모르고 삽질을 좀 했다. 저자의 깃허브(링크)에서 수정된 소스 코드를 내려받을 수 있으니 처음부터 이걸 찾아서 쓰자.

 이 책으로 공부를 하면서 퀀트 투자 또는 자동매매에 대해 다시 생각해보게 되었다.

먼저 퀀트 투자에 대해서, 이 책이 결정적 영향을 미친 건 아니지만(그보다 같은 시기 시청한 월가아재의 영상이 더 큰 영향을 미쳤을지도) 코딩만으로 어려움 없이 돈을 벌거나 시장을 완벽하게 이길 수 있는 것은 아니라는 걸 깨달았다.

 관심 있으면 아래 영상을 보자.

https://youtu.be/BFkPzl1uziE

 사람들이 흔히 떠올리는 '코딩으로 주식투자에서 지속적으로 이기기'는 정말 난다 긴다 하는 천재가 아니면 혼자선 힘들지 않을까 싶다(기관은 잘하겠지만). 

 여러 가지 이유가 있겠지만, 우선 데이터를 구해서 가공하는 과정이 너무 힘들다. 코딩에 관심이 없는 사람이라면 퀀트킹으로 클릭 몇 번만 하면 속 편하게 투자할 수 있지만(투입 대비 결과, 이것도 매우 중요하다) 퀀트 투자에서 빠질 수 있는 오류를 피하기 위해선 데이터를 능숙하게 요리하는 능력이 중요하다. 즉 상당한 코딩 능력(+노가다)과 통계적 지식이 필수다. 이 단계를 넘는 게 가장 힘든데 모든 사람이 쉽게 체득할 수 있는 과정은 아닌 듯하다. 비전공자는 최소 몇 개월간 시간과 돈을 들여야 데이터를 능숙하게 만질 수 있을 것으로 보인다.

 기초공부를 끝내고 나서도 쉽지 않다. 얻을 수 있는 결론은 잘 이기는 법이 아니라 '폭삭 망하지 않는 법'이라고 생각하는 게 맞을 것 같다. 여러 가지 백테스트를 돌려봐도 '과거에는 이랬더니 안 망하더라! 앞으로도 안 망하겠지' 수준이니까. 그마저도 투자는 시장 상황, 운이 가장 큰 영향을 미치고, 가장 중요한 투자마인드는 퀀트 공부를 한다고 자동 탑재되는 게 아니다. 투자는 결국 경험이다.

  머신러닝으로 자동 투자한다는 것도 마찬가지다. 세상에 필승전략이 어디 있나? 이미 기관이 상당한 자본을 가지고 도처에 널려있는 알파를 다 주워 먹지 않았을까? 그전부터 생각했지만 변화무쌍한 시장을 상대로 개인 수준에서 '숨겨진 전략'이나 새로운 기법으로 돈을 버는 건 허황된 것 같다(한 두 번은 성공할 수 있다). 여기서 이기려면 기관 수준으로 투자해야 할 텐데 개인이 이 틈새를 비집고 지속적으로 이기기는 힘들다고 본다. 저평가된 소형주가 남아있지만 이 역시 장기투자가 아니면 좋은 결과가 나오긴 쉽지 않나 싶은 생각이 든다(사실 이것이야말로 가장 오래된 전략이다).

 결국 돌고 돌아서 개인 수준에서는 여러 지표의 보조를 받아서(=기술적 분석) 하는 가치투자, 또는 중장기 투자전략이 가장 성공 가능성이 높은 정석적인 투자법일 것 같다. 코딩은 여러 지표를 가공하여 개인투자자가 편향에 빠지지 않게 하는 분석도구로 쓰일 수 있다. 물론 이런 도구 없이도 투자를 잘할 확률은 있겠지만 능률과 중심을 유지하는 데는 큰 차이가 있을 것이라고 본다. 마치 1970년대 산사에서 홀로 공부하는 고3과, 2010년대 인터넷 강의로 공부하는 고3의 차이라고나 할까..? 

 


주식투자에서 파이썬으로 어떻게 활용할 수 있을지 고민하는 개인투자자라면 읽어보길 바란다. 파이썬을 거의 몰라도 상관은 없다. 또한 본인이 원하는 모든 내용을 상세히 알려주지는 않지만 어떤 방향으로 공부를 하면 좋을지 실마리를 알려줄 수 있다. 나 같은 코딩 초보자라면 어느 시점부터 갑자기 이해가 어렵다고 느낄 수 있다. 한 번에 100% 이해하려고 하지 말고 '이런 흐름이구나~'라고 생각하면서 첨부된 코드로 한 번 돌려보길 바란다.

이 책을 읽고 나서 다음 책으로는 웹 스크레이핑(또는 웹 크롤링) 서적으로 목표를 잡았다.

반응형