퀀트투자 백테스트 - 내가 찾은 전략
본문 바로가기
파이썬(Python)/퀀트투자

퀀트투자 백테스트 - 내가 찾은 전략

by 만초손겸수익 2021. 11. 17.

본 포스트는 퀀트투자를 위한 개인적인 백테스트 기록이며, 테스트 과정이 올바르게 진행되었다는 어떠한 증명도 할 수 없음을 알려드립니다. 본 포스트를 참고하셔서 투자를 하는 행위는 삼가하여 주시기 바랍니다.

지난번 PER X PBR 콤보전략 백테스트는 CAGR이 괜찮은 수준이었지만, 최대손실이 너무커서 현실적인 투자방법으로 무리가 있었다.

여러 조건으로 백테스트를 진행하다가 괜찮은 조건을 찾았다. 결과는 아래와 같다.

퀀트투자 백테스트 17년간 누적 수익률


중간 과정에서 백테스트 한 결과를 일일이 포스트하기 너무 귀찮고, 시간낭비로 느껴져서 바로 결론 포스트를 작성했다.

17년간 투자시 78.76배의 누적수익률을 기대할 수 있는 방법을 찾았다. 최대 손실도 -1%이다.

나도 믿기지 않아서 검증하는 테스트를 수 없이 진행했다. 하지만, 아직 오류를 찾지 못 했다.

사실 오류를 찾은 부분은 이미 다 반영을 했고, 그 결과가 78배 수익률이다.

2003년 11월 4일 기준으로 1년 단위로 리밸런싱을 하면, 86배 수익률이 발생한다. 하지만, 최대 손실이 -42%에 이른다. 내가 감당할 수 없는 수준이다.

그래서 월을 나눠서 투자하는 방법을 선택했다. 그러니 수익률은 다소 줄어들지만, Risk가 획기적으로 관리가 되었다.

매년 11월 초에 17년간 투자한 백테스트 누적수익률

매년 11월 초에 17년간 투자한 백테스트 결과를 보면 CAGR이 30%이다. 환상적인 숫자다.

당연히 내가 아직 찾지 못한 오류도 있을 것이고, 최대 손실이 -42%라는게 마음에 걸린다. 하지만 86배 누적 수익률은 가히 매혹적이지 않은가? 1억을 투자하면 86억이 된다. 대부분의 평범한 사람이 평생 가지지 못할 만큼의 금액이다.

혹시나 이 포스트를 보고 있는 사람 중에 내가 거짓말 하거나 사기를 치고 있다고 생각하는 사람도 있을 것이다. 내 테스트에 오류가 있을지언정 나는 거짓말이나 사기를 치지 않았다.(개인적인 기록의 공간이다. 혹시 의심이 가는 사람이 있다면, 이 포스트를 읽지 않으면 된다.)

직접 백테스트를 하다보면 이런 환상적인 수익률을 발견할 수 있을 것이다.

나는 이번달(11월) 4일 내가 발견한 기준으로 종목을 선정해서 20개 종목에 동일 가중으로 실제 투자를 하였다. 내가 찾은 종목은 내 블로그의 다른 포스트에 이미 기록을 하였다.

1년 후에 실제 수익률이 어떻게 될지 이제 살펴보기만 하면 된다. 내가 틀렸다면, 예상치 못한 결과가 나올 것이고 전략을 좀 더 보완해 갈 예정이다.

내 전략은 좀 더 시간이 지나고 나서 포스트에 공개할 예정이다. 아직 확실한 검증이 이루어지지 않았으니, 나 스스로 직접 투자를 진행한 후 결과를 공유하도록 하겠다.



파이썬으로 퀀트투자 백테스트를 하는 포스트는 이제부터 당분간 작성하지 않을 예정이다. 처음에는 여기 카테고리에 파이썬 코드까지 저장하려고 했지만, 상당히 비효율적인 것 같다.

그래서 별도의 카테고리에 누구라도 따라할 수 있는 아주 쉬운 파이썬 퀀트 투자 방법을 포스트 할 예정이다.

사실 투자라는 영역은 일반 직장인이 하기에 상당히 어려운 부분이 많다. 특히나 감정적인 부분을 통제하며, 수익을 내기란 인간계에서는 불가능에 가깝다고 생각할 만큼 어렵다고 본다.

다행히 퀀트투자법을 활용하면 감정적인 부분은 최대한 배제하며, 기계적인 방법으로 검증된 수익을 얻을 수 있다. 더욱이 복리수익을 이용하기에 '부'가 눈덩이 쌓이듯이 늘어난다.

퀀트투자는 자기 신뢰가 상당히 중요하다. 엄청난 폭락장에도 견딜 수 있을만큼 자기 확신이 필요하다. 이러한 확신은 그냥 이루어지지 않는다. 본인이 직접 백테스트를 해 봐야 한다.

하지만, 백테스트를 하기가 쉬운가? 대부분의 직장인들이 엑셀도 제대로 못 다루는 판에 VBA나 파이썬으로 코드를 짜기란 하늘에 별따기에 비유할 정도로 어렵다고 생각한다.

그래서 필요한 부분의 퀀트투자 지식과 정말 최소의 파이썬 코딩 지식을 기반으로 백테스트 하는 방법을 별도의 카테고리에 기록하려고 한다.

왜?


첫째, 내가 조엘 그린블란트와 비교하기는 좀 그렇지만, 같은 이유로 내가 얻은 지식을 남 또는 내 가족과 공유하고 싶다. 나 또한 여러 책과 블로그를 통해 투자이론과 파이썬을 배우는데 많은 도움을 받았다. 그래서 나도 이런 기록을 통해 누군가 필요한 사람에게 지식을 공유하고자 한다.

둘째, 내 생각을 정리하고자 한다. 내 기억력은 좋은 편이 아니라서 지속성이 약하다. 프로그램 코드를 하나 작성하면 항상 블로그에 올려서 정리하고, 나중에 필요할 때 내 블로그를 참고하면 상당히 효율적으로 프로그램을 만들 수 있다. 이번에 내가 진행한 백테스트 결과도 그런 이유에서 올렸지만, 좀 더 체계적으로 올려서 기록을 하고 싶다.

셋째, 나는 일반 중소기업에 다니고 있다. IT, 투자와는 아무런 관련이 없는 회사이며, 직무 또한 그것들과는 너무나 거리가 멀다. 언젠가는 퇴직을 할 것이기에 이렇게 글쓰기를 하며, 내가 퇴직한 이후 내가 진정 좋아하는 일이 무엇인지를 스스로 찾아가고 있다. 내가 좋아하는 것이 무엇인지는 아직 모르지만, 여러가지 시도를 해보려고 한다. 혹시라도 이렇게 글을 쓰다보면 출판사에서 연락이 올 수도 있고, 이게 제 2의 직업이 될지 누가 알겠는가?


포스트가 상당히 길어졌다. 아마 다 읽어보는 사람은 없으리라 본다. 하지만 괜찮다. 어차피 이 카테고리는 나 스스로를 위해 쓰여졌다.

728x90
반응형

댓글