본문 바로가기

데이터분석/금융

python 활용 투자 포트폴리오 [3화: VAA 전략 구현]

강환국의 "거인의 포트폴리오"에서 소개됐던 VAA 전략을 직접 python으로 구현해보기로 했다. 책에서 소개하기로는 가장 수익률이 높은 자산 배분방법인데, 계산이 조금 까다로워 python으로 작성하려니 시간이 좀 걸렸다. VAA 전략은 아래와 같다. 

 

 

 

글이 많아 좀 헷갈리지만, 쉽게 말하면 공격형 자산배분 (변동이 큼)과 안전자산 (변동이 작음) 으로 투자처를 나누고, 모멘텀에 따라서 어디에 투자할지 교차하는 방법이다. 책의 말에 따르면 "흐름이 좋다" 싶으면 한 투자처에 몰빵, "앗 조금 안 좋은데" 싶으면 바로 안전자산으로 꽁무니를 빼는 것과 마찬가지이다. 

 

코드는 github에 올려뒀다. JWAlmighty/investment (github.com)

 

GitHub - JWAlmighty/investment

Contribute to JWAlmighty/investment development by creating an account on GitHub.

github.com

 

먼저 투자하는 종목에 대해 살펴보자면, 2004년부터 수익률은 아래와 같다. 2004년이라는 숫자를 쓴 이유는, yahoo finance에서 데이터를 가져오는데, 종목이 모두 등록된 시점이 그 즈음이기 때문이다. 

20년 남짓한 시간 동안, 공격형 자산으로 분류된 주식 종목들은 작게는 두 배에서 많게는 다섯 배 이상 성장했음을 알 수 있다. 물론 최고점인 코로나 직후 호황기에 비하면 조금 하락하긴 했다. 안전자산은 공격형까지는 아니지만 두 배가까이 성장한 모습을 알 수 있다. 

 

직접 백테스팅한 결과는 아래와 같다. 충격적이게도, 책에서 추천하기 바빴던 VAA 전략의 2004년 이후 수익률은 연 4% 수익률보다도 한참 못했다. QuantStats로 분석한 결과에 따르면, CAGR은 0.89%에 불과했다. 뭔가 잘못돼도 한참 잘못됐다 싶지만, 코드 상에서 뭐가 잘못됐는지 찾아내기가 쉽지 않다. 게다가 전반적인 그래프 profile은 책에 소개된 결과와 유사하고, 금액만이 차이가 난다. 이래서 Backtesting을 직접 해보라고들 하는구나, 싶었다.

 

 

 

원래는 오늘 실제 투자까지 마치는 것을 목표로 했지만...어쩔 수 없이 한 텀 미뤄야겠다.