파이썬(Python) 퀀트 투자의 정석!
이 로드맵으로 똑똑한 투자를 시작해 보세요.
파이썬 + 퀀트투자 커리큘럼은
이렇게 만들어졌습니다.
시중의 강의들이 입문자들이 프로그래밍에 입문하면서 가려워하는 부분을 긁어주지 못하는 것 같아 직접 커리큘럼을 제작했습니다.
- 사실 배우는 내용(What) 자체는 어떤 강의나 책을 봐도 크게 차이가 없습니다.
- 다만 적어도 프로그래밍을 학습하는 데 있어서는, 우리가 지금까지 기계적으로 암기하며 공부했던 입시와는 다른 관점으로 접근해야 됨을 전달하고 싶었습니다.
본 강의에서는 아래 세 가지 내용에 focusing을 맞춥니다.
- 프로그래밍의 각 요소들이 어떠한 원리(principle)로 작동하는 것인지
- 왜(Why) 이러한 문법이나 개념이 필요한 것인지
- 배운 내용들이 실전에서 어떻게(How) 활용이 되는 것인지
어쩌면 입문 단계에서 가장 중요하다고 볼 수 있는 위의 내용들을 다루는 강의를 시중에 찾아보기가 어려웠고, 혼자 많은 삽질을 하며 독학으로 프로그래머의 길을 걸어온 제가, 이러한 부분들을 입문자들에게 가장 잘 전달할 수 있을 것이라 생각했습니다.
프로그래밍을 단순히 암기성 교육, 강사 혼자 진행하는 '원맨쇼 교육'이 아닌, 수강생들이 직접 코딩의 필요성을 느끼고, 실제 세상에서 본인이 마주하고 있는 혹은 마주할 수 있는 문제들을 소프트웨어적으로 해결하는 관점에서 교육을 하고자 했습니다.
- 그래서 인간의 심리적/감정적 개입으로 가장 낭패를 많이 볼 수 있는 분야인 주식 투자, 그리고 아직도 구시대적인 기계적인 노동(무한 ctrl + c/v)으로 발생하는 비효율적인 업무들을 자동화하는 주제를 선정하여, 여기서 발생하는 문제들을 프로그래밍적으로 사고하고 이를 해결하는 과정에 초점을 맞춘 커리큘럼을 구상하였습니다.
- 결과적으로 프로그래밍을 학습의 대상으로 보다는, 효과적인 문제 해결을 위해 필요한 도구로써 인식하게 해드리고 싶었습니다.
대충 그럴싸해보이고 쉽게 혹할 수 있는 주제로 강의를 만든 후, '이 코드를 돌리면 이런 결과를 낼 수 있다' 식으로 끝내는 강의를 하고 싶지는 않았습니다.
누구나 파이썬으로 쉽고, 스마트하게 주식시장에서의 문제를 스스로 해결할 수 있게 되는 강의 + 훗날 수강생 분들이 '그래서 강의에서 그런 내용을 다룬 거였구나' 하고 지속적으로 리마인드 시켜주는 강의가 될 수 있도록, 실속있는 내용들로 구성하였습니다.
본 강의 로드맵은 강사 본인이 주식시장에서 겪은 문제들을 극복하기 위해 자산배분 투자 전략 시스템을 개발하면 경험한 내용을 바탕으로 만들어졌습니다. 시스템/데이터 기반 투자하는 방식은 그 종류가 매우 다양하고, 사람마다 희망하는 투자 방식 또한 제각기 다르기 때문에, 수강 전 본인의 투자 성향과 결이 맞는 수업인지를 강의별 소개페이지와 오리엔테이션 등을 통해 반드시 체크하시기 바랍니다.
Motivation: 강사의 주식 투자 철학
여러분은 주식 투자를 할 때
가장 중요하게 여기는 요소가 무엇인가요?
아마 대다수의 분들이 '수익'일 것이고, 이에 대해서는 거의 모든 투자자가 반박의 여지가 없을 것입니다. 저도 마찬가지구요.
그런데 이런 상황이라면 어떨까요? 특정 시점에 계좌 평가수익률이 100%가 찍혀있다고 가정해보겠습니다. 하지만 해당 수익률을 얻을 때까지, 엄청난 변동성의 시장을 겪으면서 전체 계좌 수익이 -30~40%, 심하게는 반토막이 나기도 하고, 그것 때문에 잠도 못자면서 온갖 경제,주식 뉴스를 훑어보며 본인에게 유리한 방향으로 해석하다 더 깨지고, 설상가상으로 큰 돈을 잃고있는 중이다보니 본업도 망가지고, 그러다 운이 좋아 시장의 흐름이 좋아져서 우연히 수익률이 100%를 찍힌 상황이라면 여러분들은 충분히 만족하실 수 있으신가요? 바로 다음날 추가 자금을 투입하다 더 큰 손실을 보며 악순환을 반복하다면 어떨까요?
그래서 저는 수익도 중요하지만, (투자 중에 얻는 마음고생/스트레스 & 투자를 위해 투입하는 시간) 대비 발생한 (수익)이 주식시장에서 오랜기간 지치지 않으면서 복리의 파워를 가장 잘 느낄 수 있도록 해주는 가장 중요한 요소라고 오래전부터 생각을 해왔습니다. 이를 간단한 수식으로 나타내면, 다음과 같을 것입니다:
그래서 저는 이러한 생각을 기반으로 시스템 투자를 해야겠다고 생각을 했습니다. 그리고는 일찌감치 다음과 같은 투자 목표를 세웠습니다:
- 연평균 수익 10~12%를 평생동안 내기
- 어떤 시점에 주식계좌를 정리해도 최소한의 손실로 만들기(= MDD 최소화)
- 투자에서 받은 스트레스로 내 본업에 절대 영향을 주지 않기
- 남의 투자방식을 무작정 따라하지 말고, 내가 처한 상황/환경(직장 유무, 시드, 시장에 대한 반응/민감도 등)에 가장 알맞는 투자를 하기
이를 위해 약 1년 동안 바닥부터 투자 시스템 개발을 하였고, 약 2년의 기간 동안 시드를 점점 늘려가며 실전 투입을 통한 검증 과정을 거쳐 저에게 최적화 되어있는 주식 퀀트 투자 시스템을 만들었습니다. 이 과정에서 시스템 상의 버그도 발견하기도 하고, 실전 검증을 통해 얻은 교훈으로 프로그램 개선도 하고, 전략과 자산군을 다각화하여 리스크를 분산시키고 최종적으로는 실전 안정성을 거친 후 부모님 연금계좌까지 포함시켜 시드를 대거 확장하는 등의 작업을 진행했습니다.
그 결과, 2021년에서부터야 "공식적으로" 각 자산/계좌/전략별 포트폴리오 value tracking이 가능해져, 2021년 1년간 원화기준 약 14% 수익(실현 + 평가수익)을 얻었습니다 (아래 첨부 이미지 참고 / 참고로, 저는 시그널 기반의 매매를 통한 차익 혹은 단타 전략이 아닌, 자산배분 전략에 focusing을 두어 이를 시스템화한 투자 방식을 진행하고 있습니다)
어떤 분께서는 이렇게 생각하실 수 있을 것 같습니다.
- '겨우 10%? 종목 선정 잘만 하면, 짧게는 하루, 길면 일주일안에 바로 벌 듯. 시스템 투자 별거 없네'
- '수익 실현 안한 것은 아직 내 돈 아닌 것 모르나... 평가수익률과 실현수익은 명백히 다르지'
우선 제가 설정한 4가지의 투자 목표에 비추어서 생각을 해보았을 때, 이러한 생각과 평가는 제가 추구하는 "투자의 결"과 "방식"과는 다르기 때문에 저에게는 그렇게 유의미한 잣대가 되지 못합니다. 저는 우선 주식투자를 1~2년 정도만 진득하게 하고 시장을 뜰 생각이 전혀 없습니다. 평생동안 어떤 규모의 시드라도 안정적으로 꾸준히 수익을 내는 것이 저의 목표입니다. 또한 2021년 한 해 성과가 퍼센트로 봤을 때는 적어보이지만, 금액으로 환산했을 때 약 7,000~8,000만원의 정도의 수익을 내었고, 만약 올 한해 특정 시점에서 급하게 주식계좌를 정리해야하는 상황이 발생했다고해도, 최악의 경우에 계좌 전고점대비 -2.2% 정도의 손실만 보았을 것입니다(첨부된 그래프의 MDD 참고)
- '그냥 조금 리스크를 감수하더라도 SPY나 QQQ를 몰빵하는게 더 효율적일 것 같은데?'
어느 정도 일리가 있을 수 있습니다. 허나 2018년 미중무역분쟁으로 인한 위기나, 코로나발 금융 위기를 '금융자산을 갖춘 상태에서' 직격탄으로 맞아본 사람으로써, 저는 지수 추종 ETF의 변동성과 MDD(최대 낙폭)를 한치의 스트레스와 고통 없이 감당할 자신이 없습니다. SPY ETF는 2000년대 이후 고점대비 최대 -55%까지의 drawdown(낙폭)이 있었습니다. 여기서 drawdown이란 특정 자산을 매수하여 진입을 했는데, 그 진입 시점이 우연히 전고점인 경우 내가 겪게 되는 자산의 최대 손실폭을 일컫습니다. SPY의 경우, 자칫 진입 시점에 대한 타이밍만 잘못되었으면, 내 자산이 반토막 이하(-55%)로 떨어지는 것을 직접 겪어야 되는 것이죠. 또한 SPY의 경우 이 drawdown을 벗어나 다시 전고점을 갱신하는 기간(underwater 구간)이 최대 2407일(약 6년 6개월)이 걸렸습니다. 그 상황에서 만약 갑자기 급하게 돈이 필요해 어쩔 수 없이 주식 계좌를 정리해야 하면 어떨까요? 만약 미국의 10년간의 상승랠리가 종료가 되면 어떻게 대응을 하실 것인가요? 여러분은 수 억대의 자금이 반토막이 나는 것을 묵묵히 지켜볼 수 있는 야수의 심장을 가지셨나요? 아마 대부분이 아니실 것이고, 저 또한 그렇습니다.
현재 저는 투자를 하면서 종목이나 주가 변동성으로 인해 스트레스를 전혀 받지 않고, 월/분기/년도별 시스템이 뱉어내는 비중대로 리밸런싱하는 시간 외에 종목선정이나 거래 등에 시간을 쏟지 않고 있습니다. 그러다보니 나스닥이 하루만에 -3%가 되든, +3%가 되든 전혀 신경쓰지 않게 되고, 저는 제 본업에 충실하며 근로소득과 자본소득을 극대화 해나가고 있습니다.
저는 이러한 시스템을 만들기 위해, 아무런 가이드 없이 혼자 삽질의 삽질을 연속해서 해가며 약 3년의 시간을 소비했습니다. 물론 그 과정이 절대 헛되거나 도움이 되지 않은 것은 아니지만, 이러한 과정에서 약간의 instruction이나 가이드가 있었다면 정말 많은 시간을 아낄 수 있었을텐데 하는 순간이 굉장히 많았습니다.
그래서, 문제 해결을 위해
프로그래밍을 활용하는 법을
알려드리고자 합니다.
저처럼, 혹은 저와 비슷한 투자 방식을 추구하는 분들을 위해, 제가 파이썬으로 퀀트 투자 시스템을 만들면서 필요했던 핵심 기술들과 그 과정에서 겪었던 각종 시행착오와 경혐들을 공유할 수 있는 내용들을 커리큘럼화한 것이 본 수업의 핵심이라고 생각하면 되겠습니다.
하지만 수업 분위기가 너무 주식 시스템 투자에 편협된 방향이 아닌, 프로그래밍 학습을 '올바르게' 하는 방법, '학습의 대상'이 아닌 '문제 해결의 도구'로써의 프로그래밍 등 프로그래밍에 첫발을 내딛는 수강생들께서도 큰 도움이 되실 만한 내용으로 수업을 준비했기 때문에, 주식뿐 아니라 일상생활, 업무에서 마주할 수 있는 다양한 문제들을 소프트웨어적으로 해결할 수 방법에 대한 많은 인사이트를 얻으실 수 있습니다.
직접 파이썬 + 퀀트 투자를 하게 되면 무엇이 좋을까?
- 시드가 갑자기 증가해도 혹은 시드를 어떤 시점에 늘려서 투입해도 불안감이 거의 없습니다(사실 전혀 없습니다)
- Drawdown 최소화에 focusing을 맞췄기 때문에 저점 timing 예측을 할 필요가 없어집니다.
- 어떠한 시장 변화에도 심리적으로 흔들리지 않게 됩니다.
- 오히려 내 전략이 잘 버티고 있나 즐기면서 관망하게 됩니다.
- 특정 interval마다 내가 만든 알고리즘 전략이 뱉은 대로 기계적인 매수/매도만 잘해주면 됩니다.
- Rule의 존재에 따른 심리적 안정감이 생기다 보니 '대응'이 비로소 가능해집니다.
- 추가 전략 개발하는 시간 이외의 시간(뉴스, 재무제표 등 정보를 통해 판단을 내리는 시간 등)을 소비하지 않습니다.
- 본인이 처한 환경이나 상황에 맞는(계좌 수, 시드머니 등) 무수히 많은 전략 개발이 가능합니다.
- 남들이 다 하는 전략, 시중에 많이 뿌려진 전략이 아닌, 본인한테 가장 최적화 되어 있는 전략을 마음껏 만들 수 있습니다.
- 무엇보다 파이썬(Python)은 확장성이 좋아, 시스템을 확장하여 다양한 어플리케이션을 붙일 수 있습니다.
- 웹, 앱, ML/DL 등
- 실례로, 저는 주식투자에서 사용한 데이터 분석기법을 이용해서 부동산 급매 데이터를 분석, 생애 첫 부동산 등기도 치게 되었습니다.
2021년 실전 투자 결과,
다음과 같은 수익을
거둘 수 있었습니다.
커리큘럼 수강 Before vs. After
앞으로 세상의 문제들을 해결할 때 나의 모습:
앞으로 주식투자를 할 때 나의 모습:
Before
After
첫 강의 출시 후 1년간,
꾸준히 많은 수강생이
선택하고 있습니다.
2022년 1월 기준 총 7,200명의 수강생이 함께합니다.
평균 별점 4.9,
생생한 수강평을 확인해보세요.
더 많은 실제 수강평이 궁금하다면? >>