커뮤니티
내가 만든 전략들과 지식을 공유하고 토론합니다.

동일비중 vs 가치가중 (최적화 시리즈3)

소포클레스 2021.11.07 18:28 조회수  2629 추천 9

지난번에 절대적 소형주 vs 절대적 가치주 라는 글에서 가치주 상위 20%를 먼저 뽑고, 그 중에서 소형주를  선택하면 수익률이 올라간다고 하였다. 마법공식 3.0도 마찬가지로 절대적 가치주 기법을 적용하면 수익률이 올라간다. 이번에는 마법공식 3.0에 절대적 가치주와 가치가중 기법을 동시에 적용해 백테스트를 진행한다.


가치가중 투자란 무엇인가?

동일비중 투자의 반대말이다. 즉 투자종목수가 20개라면 비중을 5%씩 동일하게 투자하는 것이 보통이며, 이것이 동일비중 투자이다. 가치가중은 가치가 클수록 투자비중을 늘리는 방식이다. 예를들어 20종목의 PER(소스에는 ep)은 모두 다른데, PER이 낮을 수록(저평가 될수록) 투자비중을 늘린다. 이것이 가치가중 투자이다.


가치가중 투자의 단점은?

가치가중 투자의 단점은 많다. 아래처럼 3가지로 요약될 수 있다. 이번에 소개될 전략은 이런 단점들을 보완하였다.

1. 몰빵투자 : 한가지 가치지표로 투자할 경우 저평가의 정도에 따라 투자비중이 크게 차이가 날 수 있다. 다른말로 표현하면 투자종목 20개 중 한종목에 50% 이상을 투자할 수도 있다. 이렇게 되면 나머지 19종목의 수익률이 높더라도 투자비중이 큰 한종목의 수익률이 마이너스면 전체 투자수익률이 나빠진다. 이번 전략에서는 이런 단점을 극복하기 위해 가치지표 5개를 사용하였다. PSR, PCR, PER, POR, PGR 등 서로 다른 5개의 지표를 사용하여 가치측정을 분산하였기 때문에, 특정 종목에 투자금이 쏠리는 현상이 완화되었다.  

2. 기술적 가치를 무시: 재무팩터로는 과매수, 과매도를 측정할 수 없다. 기술적 지표 중 하나인 RSI는 현재 주가가 과열된 정도를 0~100 까지 나타낸다. 100이면 극심한 과열구간이라서 매수하기에 적합하지 않고, 0이면 매우 과매도 되어 매수하기에 좋은 구간이다. 소스에서 사용한 가치가중 전략에서는 이러한 기술적 가치를 RSI 지표로 반영하였다. 과열 구간인  종목은 투자비중을 줄이고 과매도된 종목은 투자비중을 늘리게 프로그래밍 되었다.    

3.변동성을 무시: 표준편차를 구하거나 볼린저밴드의 폭을 사용하면 저변동성(Lowvol) 전략을 구사할 수 있는데, 기존의 가치가중 투자로는 변동성을 측정 할수가 없었다. 소스에 반영된 전략은 볼린저밴드의 폭을 이용해 변동성을 측정 하였다. 즉 변동성이 작은 종목(볼린저 밴드의 폭이 작은)에 투자비중을 늘리고, 변동성이 큰 종목은 투자비중을 줄였다.


동일비중 vs 가치가중 투자수익률은 어떻게 다른가?

절대적 가치 전략을 사용하여 소형주 전략에 베해 년수익률을 10% 이상 올린바 있다. 이 상태에서 가치가중 전략을 추가하니 수익률이 8~9% 정도 더 올라갔다. 절대 무시 할수 없는 수익률 차이이다. 이자가 3% 짜리인 예금이 나오면 이른 아침부터 줄을 서는 세상에서 8~9% 수익률 차이는 압도적이다.  절대적 가치전략에 비해 누적수익률은 2배이상이 되었다. 


모든 전략에 가치가중 방식을 적용하면 수익률이 올라가는가?

그렇다. 아직 나는 수익률이 줄어드는 경우를 보지 못했다. 하지만 모든 전략을 테스트 한것도 아니니 100% 단언 하지는 않겠다. 그냥 십중팔구(80%~90%) 정도로만 생각해 주기 바란다. 


가치가중 전략으로 투자 할 때 주의 사항은?

소스를 보면 알수 있지만 변수 valueWeightRatio를 수정하면 가치가중 비율을 수정할 수 있다. valueWeightRatiosms 0부터 1까지 수정이 가능하다. 만약 이 변수에 0.4를 주게되면 가치가중은 40%만 적용되며, 나머지 60%는 동일비중으로 투자하게 된다.  비록 여러가지 기법을 사용하여 특정 종목에 몰빵되는 것을 방지 했지만, 가끔 한 종목의 비중이  15% 를 넘어 가는 경우가 나온다. 가치가중 100%(valueWeightRatio가 1일 때)로 했을 경우 아래와 같은 메세지가 나온다.

[2001-01-02] 단일 종목의 비중이 15%를 넘음. 비중: 15.46% , 종목수: 20 , 전략명: 5. 절대가치 거래대금필터 가치가중 100%

[2001-04-02] 단일 종목의 비중이 15%를 넘음. 비중: 17.92% , 종목수: 20 , 전략명: 5. 절대가치 거래대금필터 가치가중 100%

[2001-05-02] 단일 종목의 비중이 15%를 넘음. 비중: 17.91% , 종목수: 20 , 전략명: 5. 절대가치 거래대금필터 가치가중 100%

...중간 생략

이런 메세지는 valueWeightRatio가 얼마냐에 따라 발생회수가 달라진다. 

가치가중 100% : 위와 같은 메세지가 23번 나온다. 21년을 투자했으므로 대략적으로 1년에 한번 정도 나온다. 투자 비중이 20%가 넘는 경우는 5번 이었다.

가치가중 75% : 위와 같은 메세지가 9번 나온다. 대략 2년에 한번 정도 나온다. 한 종목의 투자 비중이 20%가 넘어가는 경우는 2번임으로 10년에 한번 꼴로 발생된다..  

가치가중 50%:  위와 같은 메세지가 2번 나온다.  한 종목의 투자 비중이 20%가 넘어가는 경우는 없었으며, 최대비중은 16.21% 였다. 가치가중을 50% 만 적용한다면 몰빵과는 거리가 멀어보인다. 종목수를 늘리거나 가치가중 비율( valueWeightRatio )을 줄이면 위와 같은 메세지의 발생회수는 줄어든다.


거래대금 필터는 어떻게 했나?

TradingValueFilter 함수를 사용하여 한달 평균 일거래대금이 1억 미만인 종목을 제거 하였다. 이 함수에서 거래대금 필터는 2015년 부터 현재까지(7년간)만 적용하였다. 우리는 2021년 현재 투자하고 있음으로 거래대금 필터를 21년 전부터 걸 필요는 없다.  그래도 거래대금 필터를 걸어서 수익률이 얼마나 변하는 지 보고싶을 것이다. 그래서 거래대금 필터를 적용하지 않은 전략을 1번(1. 절대가치 동일비중)에 추가하였다. 1번 전략과 2번 전략을 비교하면 거래대금 필터에 의해서 어떻게 수익률이 변하는 지 볼 수 있다.


결론은 거래대금 필터를 걸든지, 걸지 않든지 수익률의 변화는 없다. 전략에 따라 다른데 어떤 전략은 수익률이 약간 올라가고, 다른 전략은 수익률이 약간 내려가는 것을 볼 수 있었다. 다행이다. 왜냐하면 특히 소형주의 경우 일평균 거래대금이 작을 경우 슬리피지가 커지기 때문이다. 다행히 이번 전략에서 거래대금 필터를 1억(정확히는 9천9백만원)으로 했음으로 한종목에 대략적으로 3백만원 까지는 투자 할 수 있게 되었다. 

    

평균이라는 허상

거래대금 필터는 치밀해야 한다. 왜냐하면 주식시장의 특징은 언제 어떤 일이 발생할 지 모른다는 것이다. 예를들어 한달(21 영업일) 중에 거래대금이 평균 1억이라고 하자. 그런데 어느날 갑자기 거래대금이 50배 이상 늘어날 수 있다. 그래서 일평균 거래금액이 갑자기 두배로 커졌다. 나는 이런 경우를 많이 보았다. 이렇게 되면 거래대금의 평균은 왜곡된다. 다시 말해 21명의 직장인 연봉평균을 구하는데, 직장인 중에 한명이 잘나가는 국제 변호사라면 평균 연봉은 크게 왜곡된다. 이런 현상은 사회 곳곳에 퍼져있다.


한국의 인당 GDP가 2018년에 3만3564달러였다. 여러분은 이 통계를 믿는가? 4인 가족이라면 가장이 일년에 1억 5천만원(환율1150원 적용) 이상을 벌어야 한다. 3인 가족이라면 1억 천만원 이상이어야 한다. 현실적으로는 맞지 않는 통계다. 맞벌이 부부라면 그럴수 있다고 치더라도, 갓난 아기 혹은 어린이가 어떻게 일년에 4천만원 가까이 벌겠는가? 따라서 우리는 평균을 사용하지 않고 중앙값(Median)을 사용할 것이다. 중앙값은 평균에 비해 값의 변화가 크지 않아서 상대적으로 안전하다. 


결론

최적화 시리즈를 진행한지 얼마되지 않았지만, 어느덧 수익률이 60% 대에서 80% 대로 올라가게 되었다. 가치가중 전략은 짧은 시간에 수익률을 변화시키지는 않지만, 장기간 적용하면 수익률이 두배이상 차이가 날것이다. 21년간의 백테스트가 그것을 증명한다. 다만 한 종목에 너무 많은 금액을 투자하면 위험하다.  따라서 valueWeightRatio 변수를 자신에게 맞게 적절히 변경해서 사용하기 바란다. 


자산배분을 생각하고 있다면 가치가중 비율 따위는 무시해도 좋다.  주식비중이 25%(영구포트폴리오 기준) ~ 30%(레이달리오의 리스크 페리티 기준) 정도라면 가치가중 비율이 100% 라고 하더라도 비중이 큰 종목이 7~8% 밖에 안될 것이기 때문이다. 다만 데이비드 스웬슨의 공격적인 자산배분 방식(주식 비중이 55%)이라면  가치가중 비율을 75% 정도로 제한해야 될수도 있다. 혹시 아직도 거래대금을 필터링 할 목적으로 한달 평균 일거래금액을 사용하는가? 당장 중앙값으로 바꾸기 바란다. 그렇지 않으면 슬리피지가 커질 수 있다 


참고사항 : 거래대금 필터는 2021년 9천9백만원을 기준으로 매년 7% 씩 기계적으로 2015년 까지 줄여나갔다. 이렇게 한것은 예전의 필터링 규칙이고, 앞으로(2022년과 그 이후)는 거래대금 필터를 어떻게 해야 하나? 그건 나로서도 알 수 없다. 하지만 대략적으로 추정하면 경제성장율과 물가상승율을 더하면 된다고 생각한다.  왜냐하면 경제성장율이 높으면 투자금액이 그만큼 늘어나고, 물가상승률이 높으면 돈가치가 없어지기 때문이다. 따라서 실질수익률을 유지하려면 인플레이션 만큼의 더 많은 금액을 투자할 수 밖에 없다. 예를들어 경제성장율 3%에 물가상승률 1%라면 거래대금 필터를 전년도에 비해 4% 늘리면 된다. 미래에 이런식으로 필터링 하는것은 절대적인 규칙은 아니고 개인적인 견해임으로 참고만 하기 바란다.


PS :

글을 가져가서 이용해도 좋지만, 이 내용으로 대중에게 글을 쓰거나 방송을 할 경우 출처를 밝혀주기 바란다.

다음번 최적화 시리즈 부터는 수익률이 줄어들 것이다. MDD를 줄이기 위해서는 어쩔 수 없는 선택이다. 

댓글 8
좋은 전략이네요. 여러가지 아이디어를 얻고 갑니다
LimSung Hyun 2021.11.07 19:19
임성현님 도움이 되었다면 다행입니다^^
소포클레스 2021.11.07 21:25
좋은 전략 공유 감사합니다. ~~~
david yang 2021.11.16 15:19
david yang 님 또 뵙네요. good luck 입니다
소포클레스 2021.11.16 16:56
좋은 전략 감사합니다! 실전투자를 하다보면 가치 1순위가 꼭 종목들 중 수익률이 1등이 아니여서 의아했는데 RSI, 변동성으로 비중 조절하는게 인상 깊었습니다. 변동성 지표가 여러개 있는데(표준편차, ATR, 볼린저밴드 등) 혹시 볼린저밴드로 선택하신 이유가 있으실까요?

또한 240일로 볼린저밴드 값을 뽑아보니 stock.getBollingerBand(240, 1, 1).lower가 음수로 나오는 경우가 꽤 있습니다. 때문에 upper/lower가 아닌 (upper-lower)/Math.abs(lower) 식으로 변경하는 것이 변동성을 더 잘 반영할 수 있지 않을까 합니다. 혹시 이에 대해 의견 여쭤봐도 될까요?
Mota 2021.11.22 00:05
Mota님 안녕하세요. 변동성을 볼린저 밴드로 처리한것은 간편함 때문이었습니다. 표준편차를 직접 구현하셔도 됩니다. 또한 볼린저 밴드 값의 lower가 음수가 나오는 경우가 있습니다. 그럴경우 upper-middle로 해서 2를 곱해주면 될것 같습니다. 감사합니다 
소포클레스 2021.11.22 09:28
소포클레스/upper, lower과 middle에서 표준편차만큼 더하고 빼는 거니 그런 방법이 있었네요 ㅎㅎ; 잘 참고하도록 하겠습니다. 답변해주셔서 감사합니다!
Mota 2021.11.22 17:28
ㅎ ㅎ 별말씀을요 ^^
소포클레스 2021.11.25 18:53
댓글 등록을 위해서 로그인해주세요.
 
최신 게시글