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

새로운 성장성 지표 PIR과 IP/A (최적화 시리즈1)

소포클레스 2021.10.20 19:39 조회수  3743 추천 11

소스를 수정해서 다시 돌려보기 바란다.

OIR 함수의 Math.log 부분을 아래의 상용함수로 바꿔서 실행하기 바란다. 자바스크립트에 상용로그가 없어서 추가하였다.

Math.log 를 log10으로 바꿔서 실행하면 된다. 바꿔서 수행해도 영업이익개선율의 수익률은 22.62%로 변함이 없다.

// 상용 로그 함수 함수추가

function log10(x) {

  return Math.log(x) / Math.log(10);

}

소스 수정됨 2021.11.01


강환국 선생의 새로운 책인 "하면된다 퀀트투자"를 보다가 개선해야 될 점이 보여 글을 쓰게 되었다. 강 선생이 새로 쓴 책은 아주 좋다. 새로운 전략으로 가득하기 때문이다. 또한 재무제표에서 쓸만한 지표는 모두 정리해 놓았다. 참고로 필자는 강환국 선생과 어떠한 관계도 없다. 


강 선생이 새로 개발한 울트라 전략에 쓰인 지표중에  이익모멘텀(영업이익 증가율, 당기순이익 증가율)이 있다. 이익증가율은 YoY와 QoQ로 비교하고 있다. 그런데 이 지표들은 약점을 가지고 있어서 개선이 필요하다.


이익모멘텀의 약점은 무엇인가?

강환국  선생 뿐만 아니라 일부 증권사의 애널리스트들도 이익 증가율을 쓰고 있다. 그런데 증가율(비율)이라는 것은 절대적인 금액(시가총액 혹은 자산총계 혹은 자본총계)과 비교하지 않으면 쓸모 없어지는 경우가 있다. 예를들어  당신이 전년동기대비 당기순이익이 100% 증가 했다는 기사를 인터넷에서 봤다고 치자. 그럼 매수를 해야 될까? 매수하기 전에 재무제표를 보아야 한다.


전년동기대비 당기순이익 100% 증가에 속지마라

전년동기의 당기순이익이 10억원이라면? 그래서 이번 분기에 20억이 되었다면 증가율은 100%가 옳다. 그런데 시가총액이 1조라면 이런 회사는 문을 닫아야 한다. 반대로 시가총액이 100억이라면 당기순이익 증가액 10억을 보고 매수하기 좋다고 생각할 수 있다. 하지만 시가총액이 조금만 커져도 ROE나 ROA 가 1%도 안되는 회사가 되어 공매도 대상으로 빠질 뿐이다. 따라서 반드시 이익 증가율 같은 지표는 시가총액이나 자산총계와 비교해서 의미없는 종목들을 걸러내야 한다. 


이익모멘텀의 새로운 지표 PIR, IPA

PIR : Price OperatingIncome(영업이익) Increasing Ratio 라고 한다. 아래의 백테스트에서 사용한 지표는 POIR이다. 영업이익을 사용했기 때문이다. 당기순이익을 사용한다면 PEIR이 될것이다. 혹은 당신이 이익을 영업현금흐름으로 바꿔서 PCIR로 사용할 수도 있다. 식은 다음과 같다. 아래와 같은 방식으로 이익성장 뿐만 아니라 매출액 성장성도 구할수 있다.

PIR( POIR ) = (  현재분기 영업이익 - 전년동기 영업이익  ) / 시가총액

PIR( PEIR ) = ( 현재분기 당기순이익 - 전년동기 당기순이익 ) / 시가총액

PIR( PCIR ) = ( 현재분기 영업현금흐름 - 전년동기 영업현금흐름 ) / 시가총액

PIR( PGIR ) = ( 현재분기 매출총이익 - 전년동기 매출총이익 ) / 시가총액


위의 식대로 하면 영업이익 증가액과 시가총액을 비교하게 됨으로 의미없는 "증가율 100%"를 필터 해버릴 수 있다. 그리고 PIR이 큰 순으로 정렬해서 TOP 20개 종목을 보유해도 좋을 것이다. 성장율 지표는 위의 방식대로 처리하거나, 피터린치의 방식(PEG)으로 처리해야만 숨어있는 악성 종목들을 제거 할 수 있다. 이제 두번째 새로운 지표를 보자.


IP/A :  OperatingIncome(영업이익) Increasing Per Assets 라고 한다. 아래의 백테스트에서 사용한 지표는 OIPA이다. 영업이익을 사용했기 때문이다. 당기순이익을 사용한다면 EIPA이 될것이다.  식은 아래와 같다.

IP/A( OIPA ) = (  현재분기 영업이익 - 전년동기 영업이익  ) / 자산총계

IP/A( EIPA ) = ( 현재분기 당기순이익 - 전년동기 당기순이익 ) / 자산총계

IP/A( CIPA ) = ( 현재분기 영업현금흐름 - 전년동기 영업현금흐름 ) / 자산총계

IP/A( GIPA ) = ( 현재분기 매출총이익 - 전년동기 매출총이익 ) / 자산총계


새 지표를 사용해서 백테스트한 결과는 어떤가?

백테스트는 시가총액 구분을 하지 않았으며, 각 지표로 정열을 하여 제일 좋은 상위 20종목을 선택하였다. 대략 21년간 백테스트 한 결과 강환국 선생이 사용한 이익증가율 지표는 비록 악성 종목들을  걸러내진 못하지만, 연수익율이 22.62%로 시장을 이기긴 한다. 여기서 최초로 소개한 지표인 PIR은 연수익률이 40.42% 로 꽤 차이가 난다. IP/A도 27.74%로 이익증가율을 비트한다.


새로운 지표를 시가총액 하위 20% 로 한정해서 백테스트 한다면?

소형주에선 수익률이 훨씬 커질것이다. 아마 놀랄것이다. 코스피와 코스닥 차트가 바닥에 딱 들러붙어 보일 것이다. 직접 테스트 해보길 바란다. 결과는 아래 그림과 같다.




기존 지표인 PER, GP/A와 새로운 지표를 비교하면 어떤가? 

 백테스트에 기존에 사용하던 대표적 지표인 PER과 GP/A를 일부러 넣어두었다. 새 지표와 비교하기 위함이다. PIR과 PER을 비교해보고, IP/A와 GP/A를 비교해 보기 바란다. 결론은 고전적 지표보다 새로운 지표가 수익률이 높다.


미국에서의 성과는 어떤가?

2011년부터 오늘까지 테스트 해본 결과 미국에서도 통한다. 미국 백테스트 시 수익률이 PIR은 PER을 이기지만, IP/A는 GP/A에 진다. 그런데 새로운 지표든 고전적인 지표든 간에 시장에 진다. S&P500이 최고다. 미국시장은 효율적이기 때문에 어떤 지표를 하나 사용한다고 해서 시장을 이기진 못한다고 생각한다.


결론: 한국에서 성장성 지표는 PIR, IP/A

미국 시장에서도 PIR과 IP/A가 고전적 지표와 수익률이 비슷하게 나오지만 시장대비 초과수익을 내진 못한다. 하지만 필자는 한국인이고 한국에서 퀀트를 할것이기 때문에 내가 만든 새로운 지표 2개를 사용할 것이다. 

한국 주식시장에서는  PIR과 IP/A가 시장보다 월등하게 수익률이 높다. 또한 고전적인 지표인 PER이나 GP/A과 비교해도 수익률이 높다. 따라서 새로운 성장 지표 두 가지를 잘 이용해서 투자하면 초과수익을 낼 것이라 믿는다. 


PS :

새로운 지표를 사용하여 글을 쓰거나 방송을 할 경우 출처를 밝혀주기 바란다. 그리고 인텔리퀀트에서 PIR, IP/A 지표를 블럭코딩에서도 사용할 수 있게 되었으면 좋겠다.

그리고 강환국 선생. 빨리 이익모멘텀을 PIR로 바꾸시오. 독자로서 부탁이오 ㅎ ㅎ

댓글 20
새로운 지표를 덕분에 알게되었네요. 감사합니다
은준빠 2021.10.20 22:20
은준빠님 감사합니다.
소포클레스 2021.10.20 22:53
좋은 지표 소개해 주셔서 감사합니다.
Europa 2021.10.21 10:03
Europa님 감사합니다 ^^
소포클레스 2021.10.21 10:21
좋은 글 감사합니다 ^^
대풍 2021.10.21 19:09
대풍님 처음 뵙습니다. 감사합니다 
소포클레스 2021.10.21 22:29
소포클레스님. 정말 감사합니다. "전년동기 비 당기순이익"에 의구심을 가지고 있었습니다.
찰나에, 또 다른 퀄리티 지표를 알게 되었군요. POIR은 정말 훌륭합니다.
NHS 2021.10.26 19:11
NHS 님 반갑습니다. 수익률을 늘리는데 도움이 되었으면 좋겟습니다.^^
소포클레스 2021.10.26 21:40
훌륭한 분석 감사합니다~ 응용해봐야겠네요
슈퍼공돌맨 2021.10.28 14:46
슈퍼공돌맨님 여기도 오셨네요. 좋은 성과 있길 바랍니다
소포클레스 2021.10.28 20:14
좋은 내용 공유 감사합니다! 강환국님은 이익증가율의 우수성을 자주 강조하셨는데 저는 그동안 이상하게 좋은 결과를 얻지 못하였습니다. 이익증가율을 적극 활용해보지 못해서 아쉬웠는데 말씀해주신 시가총액 개념을 접목해보아야겠습니다. 노하우를 아낌없이 알려주셔서 감사합니다!
Mota 2021.10.31 20:24
Mota님 여기도 오셨네요. 이익증가율 중에서 악성 종목을 걸러내시면 결과가 좋아질것으로 기대합니다.^^
소포클레스 2021.10.31 22:49
소포클레스님
oir함수 내에서 상용로그 함수 추가를 정확히 어디서 추가하면 되는 건가요? (값이 달라져서..)
그리고 같은 결과값인데 바꾸는 의의가 무엇일까요?
잘 보고 있습니다. 고맙습니다.
칸트 2021.12.16 18:41
칸트님  39라인을 아래처럼 바꾸시면 됩니다.
Math.pow( 10, log10( oIncome0/oIncome4 ) ) - 1;
그리고 oir 리턴 값(상용로그 사용)으로 sort 해서 Ranking을 만들면 순위(결과)는 바뀌지 않습니다. 하지만 값은 바뀌지요.
예를 들어 수학점수 100, 90, 80, 70, 60 5가지가 있다고 하면 여기 5개 점수에 각각 100을 더해도 순위는 바뀌지 않지만, 값은 바뀝니다. 값을 바꾼 이유는 로그 수익률을 제대로 구하기 위함 입니다. Math.log는 상용로그가 아니라서 로그수익률을 나타내지 못합니다. 그리고 로그 수익률을 사용하는 이유는 플러스/마이너스 수익률을 대칭적으로 보기 위함 입니다. 로그 수익률을 사용하지 않고 일반 수익률을 사용한다면 비대칭 입니다. 예를 들어 수익률이 -50% 라면 만회하려면 수익률이 100% 라야 합니다. 그런데 로그 수익률을 사용하면 대칭 입니다. 로그 수익률을 사용하시면 자칫 속아넘어 갈 수 있는 눈속임을 피할 수 있습니다.  예를들어 인텔리퀀트에서 백테스트 후에 성과 자세히 보기를 클릭 하시면 수익률 차트를 로그 스케일로 보실 수 있습니다. 어떤 유명한 경제 방송에서 들었습니다. 워렌버핏은 현재 자신의 돈을 70세 이후에 80%를 벌었다고 하더군요. 잘못된 말이지요. 년평균 20%씩 계속해서 80년을 벌었다고 하는게 더 정확합니다. 인텔리퀀트에서도 백테스트를 21년 정도 해보면 차트상으로 최근 7년에 90% 번 걸로 보입니다. 과거 14년은 돈을 거의 벌지 못한것 같이 나옵니다. 로그스케일로 보시면 이런 눈속임을 피할 수 있습니다.
소포클레스 2021.12.16 20:37
아 이해했습니다. 변화율(증감율)에 대한 대칭이군요. 마치 로그차트처럼..
소포클레스님 친절한 설명 고맙습니다. ^^
칸트 2021.12.17 18:02
칸트님 도움이 되었다면 다행입니다. 감사합니다 
소포클레스 2021.12.20 19:15
1편부터 읽고 있습니다. 감사합니다.
Lexus 2021.12.22 04:58
Lexus 님 안녕하세요. 최적화 시리즈는 0편도 있습니다. 참고하세요.
소포클레스 2021.12.22 11:48
성장률 자체보다는 시가총액 대비 성장률을 봐야 한다는 지적은 타당합니다만, 소포클레스 님도 마찬가지로 성장률을 사용하는데 성장률 자체의 함정이 있습니다. 영업손실 73억이던 회사가 영업익 23억으로 흑자전환 시, 영업익 증가율은 (73+23)/73=130% 입니다. 그런데 말입니다. 영업익 10억이던 회사가 23억으로 성장 시에도 영업익 증가율은 (23-10)/10=130% 입니다. 분명히 전자가 더 많이 개선됐는데도 성장률 계산 결과는 똑같은 것이죠. 적자 축소도 골칫거리입니다. 20억 적자에서 10억 적자로 개선되면 50% 성장인지 200% 성장인지 애매합니다.
W.B.M.S. 2023.02.23 01:03
W.B.M.S. 님 안녕하세요. 
지적해 주신 성장률의 함정  때문에 PIR과 IP/A를 사용한 것입니다. 성장율로 하면 왜곡된 데이터가 보이죠. 
PIR로 하면 이런 문제는 없어집니다. 율(%) 로 하는 것이 아니라 금액으로 하기 때문이죠. PIR로 예를 들면, 시총이 100억이라고 가정하고, 첫 번째 케이스는 (73+23)/100 = 0.96 입니다. 두 번째 케이스는 (23-10)/100=0.13으로 첫 번째것이 우수합니다. 그럼에도 불구하고  PIR과 IP/A 는 한계가 있습니다. 예를 들면 최근 강환국 작가께서 소개해주신 성장가속율을 나타내진 못합니다. 또한 지적해 주신대로 적자 축소도 골칫거리입니다. PIR에서 해결하지 못하지요. 그래서 저는 투자할 때 이익이 없는 회사는 제거해 버립니다. PIR의 문제와 한계점에 공감하며, 좋은 지적 감사드립니다
소포클레스 2023.02.23 16:33
댓글 등록을 위해서 로그인해주세요.
 
최신 게시글