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

(블록 알고리즘) 강환국 슈퍼가치 전략

Chris 2020.01.28 17:52 조회수  3979 추천 4

"강환국 슈퍼 가치 전략"을 블록 알고리즘으로 만들어 테스트 해 보았습니다.

기간은 2004년 ~ 2016년 까지입니다.


 강환국 슈퍼 가치 전략 (시가총액 하위 20%_저PBR_저PCR_저PER_저PSR)_2004년 7월 1일 ~ 2016년 12월 31일

기대 CAGR(Compound Annual Growth Rate), 연복리수익률 -> 25% 이상
시가총액 하위 20% 주식을 대상으로 PBR, PCR, PER, PSR 각각 순위를 매김
네 개 지표의 순위를 더해서 통합 순위 작성
통합 순위가 높은 주식 50개 매수
연 1회 리밸런싱 (매년 7월 1일)

네 개의 지표 PBR, PCR, PER, PSR 의 연간 지표를 만들어보았습니다.

블록알고리즘에서 4분기 지표를 합산하여 시가총액으로 나누어 연간지표를 만들었습니다.

실제 4개의 주요지표 계산법은 아래과 같습니다.


  • PBR = (시가총액) / (자기자본)
  • PCR = (시가총액) / (4분기 영업현금흐름의 합)
  • PER = (시가총액) / (4분기 당기순이익의 합)
  • PSR = (시가총액) / (4분기 매출액의 합)


블록 알고리즘에서 이 지표를 역으로 계산하여 그 역수를 내림차순으로 배열한 다음 적용한 이유는,

기준이 되는 지표 값들 중, 당기순이익처럼 음수(-)값이 존재하는 종목에게 낮은 점수를 부여하여 종목 선정에서 배제 시키기 위함이 첫번째이고, 

두번째로, 지표값들이 존재하지 않는 신규상장종목도 낮은 점수를 부여하여 종목 선정시 배제하기 위함입니다.


리밸런싱 주기가 7월 1일 이기때문에 가장 최근 분기 재무데이터는 전년도가 아닌 당해년도 1/4분기 데이터가 됩니다.

따라서, 최근 분기 재무데이터 대비 1 ~ 4분기 과거의 데이터를 합산해야 전년도 연간 실적 데이터를 구할 수 있게 됩니다.

블록 알고리즘에서 0~ 3분기가 아닌 1 ~ 4 분기 과거 재무 데이터를 합산하는 블록을 만든 이유입니다.

리밸런싱 주기가 7월 1일이기 때문에, 재무데이터에서 매년 1/4분기 의 시간적 공백이 발생하게 되었습니다.

리밸런싱을 4월 1일에 실행한다면, 재무데이터의 시간적 공백없이 최신 데이터를 사용하여 리밸런싱을 할 수 있는데 왜 7월 1일에 리밸런싱을 한 것인지 궁금해 집니다. 


테스트한 결과값은 아래와 같습니다.


강환국 슈퍼 가치 전략 (시가총액 하위 20%_저PBR_저PCR_저PER_저PSR)_2004년 7월 1일 ~ 2016년 12월 31일


아래 표의 "할수있다 퀀트투자" 테스트 결과와 비교해 보아도,

38.24% (할수있다 퀀트투자) vs 39.96% (블록 알고리즘) 

연평균 수익률에서 크게 차이를 보이지 않습니다.


<강환국 슈퍼 가치 전략_2004.7 ~ 2016.6>


"강환국 슈퍼 가치 전략"은 이렇듯 2004년 7월부터 2016년 6월까지 정말 엄청난 수익률을 기록하였습니다.

그래서, 2016년 6월 이후에도 전략이 시장에서 우수한 수익률이 유지 되고 있는지 확인 해 보았습니다.


<강환국 슈퍼 가치 전략_2016.7 ~ 2019.12>

2016년 이후 2019년 12월까지 연평균 수익률 11.37%를 기록하였습니다.

이 기간동안 소형주의 수익률이 -16.04% (소형주+저PBR전략 2016년 이후, 푸른주전자)임을 생각해 보았을 때,

주요 밸류 지표를 같이 적용하였을때 수익률이 개선되어짐이 한번 더 입증 되었습니다.

또한, PER_PBR_PCR 세개의 지표를 사용할 때 보다 PER_PBR_PCR_PSR을 같이 사용하였을 때 수익률이,

15.08% -> 44.66% 로 29.57% 나 개선되어 짐을 알 수 있습니다.


"할수있다 퀀트투자"에서 왜 "슈퍼 가치 전략"이라는 타이틀을 붙였는지 확실히 확인되는 테스트 결과입니다.


"강환국 슈퍼 가치 전략"을 한 문장으로 요약해 보면,


"시가총액이 작은 기업중 자기자본비율이 높고 순이익과 영업현금흐름 그리고 매출액이 좋은 회사의 주식을 보유" 하는 것입니다.


기업의 가치를 평가하는 주요 지표인 PER, PBR, PCR, PSR을 모두 적용하는 것이 연평균수익률과 최대손실폭(MDD)모두 개선시키는 것으로 나타났습니다.

기업의 평가하는 주요지표들은 지금도 활발하게 연구중입니다. 앞으로 어떤 지표들이 나와 주식투자를 더욱 효율적으로 만들지 궁금해집니다.


마지막으로,

"강환국의 슈퍼 가치 전략"을 실제 거래 환경에 맞게 몇가지 조건들을 바꾸어 테스트 하였습니다.

제가 추가하여 필터링 한 것은 아래와 같습니다.

1. 일정 거래량 이상 유지되는 기업 (일일거래대금 5000만원 이상)

2. 주식 편입 시점 (익일 평균가 진입)

4. 투자금액 (일천만원) 및 보유종목 (20종목) 조정

5. 리밸런싱 주기 (분기) 조정 

6. 최근 분기 재무 데이터 사용


<2004년 ~ 2016년>

<2016년 이후>

테스트 결과값이 개선되었습니다.

앞으로, "슈퍼가치전략"은 몇가지 조건등을 조정하여 실제 계좌를 통해 운용해 보도록 하겠습니다.

실제 투자시점은 다음 재무데이터가 업데이트되는 3월쯤 생각하고 있습니다.

실제 운용 되어지는 결과도 같이 공유하며, 개선 할 점등의 의견을 같이 나누어 보면 좋을 것 같습니다.

감사합니다.

댓글 3
좋은 알고리즘 감사합니다.

혹시 12월에 일괄매수하고 5월에 일괄매도 하는 알고리즘도 구현하실수 있으실까요?

나름대로 요래조래 해보고 있는데 잘안되네용.ㅠ
조진혁 2020.01.29 10:44
안녕하세요 Chris님
매번 좋은 글 감사합니다.

PER, PSR, PCR의 재무제표 값이 1부터 시작하는데
PBR의 자본 총계는 0(가장최근) 값 사용한 이유가 있나요?
그 사이 자본 총계가 변할 수도 있는 사항이라 
재무제표 시점을 모두 동일하게 두는게 맞을 것 같아 
물어봅니다.

감사합니다. ^^
푸른주전자 2020.01.29 10:52
자본 총계는 합산이 필요 없어서 미처 고려하지 못했습니다.
1분기 전으로 블록을 다시 만들어서 테스트 해보니 연수익률이 39.75%로,
0.21% 차이가 발생하네요. 
푸른주전자님 감사합니다.

그리고 조진혁님께어 물어보신 것은 저도 계속 연구하고 있습니다.
저의 블록알고리즘 실력으로는 아직 도움이 못되어 드릴 것 같네요.
같이 연구해봐요.
Chris 2020.01.29 13:02
댓글 등록을 위해서 로그인해주세요.
 
최신 게시글