본문 바로가기
투자

퀀트킹 백테스터01 마법공식 백테스팅

by Miracle_Morning 2022. 1. 10.


요즘 강환국 퀀트 님이 진행하는 패밀리 스터디에 참여하고 있다. 주로 책을 읽고 전략을 발굴해서 백테스팅을 하는데 첫 번째 책인 그린블라트의 주식시장을 이기는 작은 책을 리뷰하고, 백테스팅을 해보겠다.

주식시장을 이기는 작은 책의 핵심은 아래와 같다.

“주가 대비 수익률이 높고 (할인 찬스의), 투자자본 대비 돈을 많이 버는 회사를 사라” 즉 이익수익률의 랭킹 + 자본수익률의 랭킹 해서, 낮은 숫자부터 sorting을 해서 기업을 사라! 단점은 MDD 가 심할 수 있으니 3년 반 버텨라, 결국엔 시장을 이길 수 있다.


또한 마법공식은 Ranking 이 높은 group 이건 낮은 group 이건 상관없이 글로벌하게 적용 가능하다고 한다. 즉 다른 전략에도 가져와서 이용할 수 있는 유연성이 높은 공식이다. 먼저 책에서는 친절하게도 이것을 쉽게 구현할 수 있는 방법을 아래와 같이 이야기해준다.

  1. 마법 공식 & 시가총액 5천만 달러 이상
  2. 최상위 5-7 구입 (돈의 20-30% 만투자)
  3. 2번을 분기마다 반복
  4. 마지막 분기에는 포트가 완성됨 (리벨런싱)
  5. 1년 리벨런싱 ( 1년 동안 5-6개씩 사 모아도 됨 )


사용된 팩터

  • 자본수익률 대체→ ROA: 높은 랭킹 (조건 ROA> 25%)
  • 이익수익률 대체 —> PER 낮은 랭킹 (조건 PER < 20 )
  • 뮤추얼펀드, 은행, 보험사 제거
  • 외국 주식 제거
  • 지난주에 수익실적 발표한 기업 제거


업그레이드 전략도 소개한다. (업그레이드보다는 오리지널에 가깝다)

  • 자본수익률 ROC: EBIT(세전 영업이익) / (순 운전자본+순고 정자산)
  • ROA나 ROE가 아닌 이유? 기업마다 부채와 세율이 다르기 때문에 세전 영업이익
  • 이익수익률: EBIT/기업가치
  • 기업가 치을 쓰는 이유? 시가총액뿐만 아니라 차입조달비용도 고려


이제 직접 백테스팅을 해보겠다. 퀀트 킹이라는 유료 백 테스터를 이용했고, 직접 python 구현은 나중으로 미뤄본다. 또한 여기에 나오는 펀더멘털 지표들에 대한 설명도 언제 한번 정리를 하겠다.

미국 전략이 한국에 잘 맞지 않을 거고 COVID 이전, 이후도 패러다임이 바뀌어서 다를 수 있다고 생각한다. 따라서 책에서 말하는 저렴하고 돈 잘 버는 주식에 투자한다는 이론은 유지하되, 다양한 팩터를 사용해보면서 백테스트를 해보았다. 먼저 특정한 데이터에 팩터가 편향되지 않기 위해 ( overfitting 방지 ) 시계열 데이터를 코로나 이전과 이후로 나누었다.

  • Training dataset: 2007~ 2018
  • Test dataset: 2019-2021 (2019년도 포함시킴)

순서는 Training dataset을 이용하고 Test dataset 은 MASK 한 상태로, 가장 수익률이 좋은 팩터 조합을 찾아낸다. 그다음 Test dataset으로 같은 전략들이 여전히 먹히는지 확인하고. 둘 다 수익률이 좋은 전략을 찾아낸다(robust 한 전략).

1) Training dataset

  1. 디폴트 전략
    • 작은 책(책에 나온 그대로 전략)
      • ROA 높은 랭킹, 최소 25% 이상
      • PER 낮은 랭킹, 최대 20 이하
      • 시가총액 제한 X,  (연별 → 분기별) 리벨런싱 (너무 책 그대로 하면 수익률 낮음)
    • 퀀트 킹 디폴트 ( 퀀트 킹에서 제공하는 마법공식)
      • ROE 높은랭킹 , PER 낮은 랭킹, 부채비율(200 이하로 제한) 사용

디폴트 전략의 결과 ROE 가 ROA 보다 좋았고, 퀀트킹 디폴트가 책의 전략보다 좋게 나옴


2. 벨류 튜닝 (성장성을 ROE로 고정, 벨류 팩터를 튜닝한다)

  • PEG, PCR, PBR, EB/EBITDA

3. 성장성 튜닝 ( 벨류를 PER로 고정 , 성장성 지표를 GP/A로 대체한다 -> 다른 성장성 지표는 성능이 떨어졌다)
4. 베스트 조합 (모든 경우의 수를 따지는 건 시간상 못함, 좋았던 것 위주로 스캔해봄)

  • EV/EBITA & GP/A
  • PBR& GP/A
  • PCR& GP/A
  • PEG& GP/A
  • PSR& GP/A

 

*참고

  • RISK는 표준편차(월)
  • CAGR 연평균수익률
  • SHARP 지수는 (잘못해서) CAGR/RISK로 들어감

2) Test dataset

Post COIVD가 포함된 test dataset에서 해당 전략들이 유요 한 지 보았다.


퀀트 킹 디폴트가 최고 수익률을 기록하였다. 과거 베스트 튜닝 값은 대체로 안 좋아졌다. 여기서, preCOVID와 post COVID 상관없이 유요한 전략을 알아내기 위해 Pre와 Post 간의 성과지표의 차이(%)를 구해보았다.


붉은색 라벨링이 가장 차이가 적은 3가지 값들이다. 그중 가장 큰 수익률을 보여준 것은 PSR & GP/A이다. pre post COVID 상관없이 robust 하고 괜찮은 수익률을 보여주는 모델이라 생각한다.

하지만 MDD가 너무 높은 한계점이 있다. 이것을 강환국 퀀트 님의 매수/매도 타이밍을 정하는 전략인 "핼러윈 전략"을 이용해서 해결해보았다.

핼러윈 전략: 11월 말 매수 & 4월 말 매도
(원래는 10월말 매수, 약간의 변형을 하였다)



Wow! MDD를 2-30%대로 낮출 수 있었다. 총정리해보겠다.

 

가장 Robust 한 전략: PSR&GPA
COVID 시대에 가장 잘 먹히는 전략: 퀀트 킹 디폴트

둘 중에 취향에 맞는 것을 고르면 되겠다. MDD를 줄일 때에는 핼러윈 전략을 동시에 사용한다. 마지막으로 Robust 전략 with 핼러윈 퀀트 킹 자료화면을 첨부한다.


*추가내용*

오늘 스터디 결과, 년 벨류지표보다 분기 벨류지표가 좋다는것을 알았다.
분기PSR & GP/A, 퀀트킹디폴트(분기PER) 을 넣고 조금더 좋은 결과를 얻었다.


수익성과 MDD가 조금 나아졌다.

추가 더! (2022/01/18)
오늘 라이브 강의중에서 시총 하위 20% 조건이 도움이된다고 해서 적용해보았다.

  • training dataset

  • test dataset

  • Full dataset


모든 데이터셋에 연평균 수익률을 올리고 MDD 를 낮출 수 있었다. 이 새로운 팩터와 다른 팩터와의 상관관계를 따져보지는 않았지만 비슷할것으로 예상된다.