2017.09.16 로직에 오류가 있습니다. 아래. 코딩왕초보님 댓글을 보시고 수정해서 사용하시기 바랍니다. 코딩왕초보님 오류 제보 감사합니다. 구체적으로는 108라인의 PBR을 PSR로 수정하시면 됩니다
최근에 강국환님께서 집필하신 책이 나왔습니다.
그중에 수익률이 가장높은 슈퍼밸류 모멘텀 전략 1.0 을 최적화 해보았습니다.
먼저 책에 있는 로직은 "슈퍼밸류 모멘텀 1.0 (50종목)_Original" 입니다.
이 전략의 핵심은 시가총액 기준 하위 20%의 소형주 중에서, PBR + PER + PSR + GP/A 로 순위를 정해서 상위 50 종목을 선택하고, 50종목중에 12개월 절대모멘텀이 + 인 종목으로 필터링해서 매월 리발란싱 하는 것입니다. 그런데 책의 로직은 종목의 수가 어느 정도 이상 안되면 현금을 보유한다고 합니다. 책 내용은 50종목 중에 1/4 이 안되면 현금보유 100%라고 되어 있네요.
그런데 다음페이지에는 "최소 11종목을 보유할 수 있다" 고 되어있네요. 그래서 현금보유 부분의 로직은 11 종목이 안되면
현금을 보유하는 것으로 했습니다.
"슈퍼밸류 모멘텀 1.0 (50종목)_Original"과 비교되는 포트폴리오가 5개 입니다.
5종목, 10종목 ,20종목, 30종목, 50종목으로 Original 버전과 비교해보니 모두 좋아졌습니다.
심지어 손절 로직이 있는 Original 버전 50종목과 항상 주식비중 100%인 50종목을 비교해보아도
MDD값이 차이나지 않습니다. 차이는 없는데 수익률만 Original 버전이 떨어집니다.
왜냐하면 절대모멘텀은 하락장에서 힘을 발휘함으로 어느정도 방어가 됩니다. 그래서 인위적으로 손절을 하는 것이
좋지 않다고 생각되네요. 물론 MDD가 줄어든다면 의미가 있겠지만요. 그래서 비교 로직 5개는 현금보유로직이 없습니다.
슈퍼밸류 모멘텀 전략 1.0의 벤치마크 테스트 결과는?
보유 종목수가 작아질 수록 수익이 증가합니다. 최종승자는 보유종목 10개입니다. 2위는 보유종목 5개 입니다.
1위는 수익률이 2백만%가 넘네요. 쓸만한 것같습니다.
책에는 보유종목수가 작으면 몰빵이라서 위험하다고 되어있습니다. 하지만 10종목이면 심하게 작은 것은 아니죠.
상장폐지 될수 있다고 하는데요. 그럴 수도 있겠지만 저는 가능성을 그렇게 높게 보지 않습니다.
이미 PBR + PER + PSR + GP/A (VALUE와 QUALITY)가 소형주 중에 가장 우수한 50개 종목을 선정했기 때문입니다.
가장 우수한 종목들이 상장폐지 된다면 그보다 열등한 종목들은 모두 파산해야 되겠죠? 오히려 책처럼 50종목을
선정하는 것 보다 VALUE와 QUALITY 최상위 10종목을 선정하는 것이 더 안전해 보입니다.
상장폐지 측면에서 그렇다는 거지요 .물론 수익률 그래프의 파동은 50종목 보다 10종목이 불안정 합니다.
그렇다고 2백만% 수익률을 포기하고 3만% 수익률을 선택하자니 고민될 겁니다. 공격적인 투자자 뿐만 아니라
보수적인 투자자도 이 부분은 고민을 하셔야 됩니다.
Java Script 초보의 로직 튜닝
이제 책 이야기는 그만하고 로직 튜닝 이야기를 하겠습니다. (제직업이 튜너라 ^^) 슈퍼밸류 모멘텀 전략 1.0을 튜닝하는 것이 아니라
Javascript를 최적화하는 것 입니다. 여러가지 케이스를 비교할 때 보통은 PortfolioBuilder 함수를 여러개 만들어서
사용하더군요. 이거 않좋습니다. 그렇게 하면 서버에 부하만 주고 성능도 안나옵니다. 물론 서버에 부하를 몇배로 주어서
빨리 나온다면야 그렇게 하는게 맞지만, 더 느려지기 때문에 장점은 없고 단점만 있습니다.
아래 로직처럼 PortfolioBuilder 를 하나만 만들고 공유하는 것이 나아보입니다. 대충 백테스트 시간을 계산해보니 많이 빨라졌네요.
DB 서버나 WAS에 부하가 다섯배 정도 줄어들것이고, 수행시간은 대충 5배 빨라졌습니다. 이제 좀 쓸만한 프로그램이 되었습니다.
그뿐이 아닙니다. 동시에 여러명이 테스트 하는 경우 내가 서버에 부하를 덜주면 그만큼 다른 사람들이 돌린 프로그램이 빨리 끝날것 입니다.
제가 자바스크립트 초보라 튜닝하기가 힘드네요. 그리고 제가 바빠서 저번에 가치가중 포트폴리오 구현하기로 하고선 아직도 못하고 있네요ㅠㅠ
두서없는 글 끝까지 읽어주셔서 감사합니다.
PS
Prohibit님 께서 수익률 200만%에 혹해서 테스트도 안해보고 덤비는 사람들이 있을까봐 좋은 의견을 남겨주셨습니다. 모든 상황에서 10종목의 수익률이 좋은 것은 아니니, 반드시 백테스트 해보시고 로직에 약한 부분은 없는지 검증한 후에 투자하셔야 합니다. 그리고 소형주이기 때문에 많은 금액으로 투자하면 슬리피지도 높아집니다.
Prohibit님 좋은 의견 감사드립니다.