퀀트투자(PBRxDPS) 백테스트 검증231003
본문 바로가기
파이썬으로 만든 것들/퀀트투자 업그레이드

퀀트투자(PBRxDPS) 백테스트 검증231003

by Squat Lee 2023. 10. 3.

지난번 포스트에서 저 PBR과 저 DPS를 조합해서 투자하는 방식으로 19년간의 백테스트를 파이썬을 이용해서 진행하였다.

 

2023.09.28 - [취미로 하는 파이썬/투자 실험실 with 파이썬] - 퀀트투자(PBR x DPS) 백테스트 업그레이드230928

 

퀀트투자(PBR x DPS) 백테스트 업그레이드230928

예전에 백테스트 한 퀀트투자를 다시 해 보았다. 1년이 넘어서 그런지 그 동안 프로그래밍 실력도 나아지고, 보는 눈도 좀 더 좋아진 것 같다. 조건은 KRX Data를 가져와서 저PBR x 저DPS 조합으로 20

dotsnlines.tistory.com

 그런데 혹시나 파이썬 프로그램이나 데이터에 오류가 있는지 검증할 필요가 있다는 생각이 들었다.

 

그래서 수작업으로 최근 년도의 자료로 똑같이 테스트를 해 보았다.

 

우선 KRX 홈페이지에 들어가서 "정보데이터시스템"에 접근한다.

 

어차피 파이썬으로 백테스트 한 데이터도 여기에서 가져오는 것이기 때문에 결과가 같아야 한다.

 

"PER/PBR/배당수익률(개별종목)" 메뉴에 들어가서 2020년 12월 1일 데이터를 다운 받는다. 결과도 알아야 하기에 2021년 12월 1일 데이터도 함께 다운로드 받는다.

 

 

 

받은 데이터를 기준으로 PBR과 DPS에서 '0'인 행은 모두 삭제하고, 남은 데이터로 각각 오름차순으로 순위를 매긴다.

 

순위가 낮은 순으로 랭킹 숫자가 작으며, PBR과 DPS의 각 순위를 더한 다음 최종 순위를 오름차순해서 20개 종목을 구한다.

 

함께 다운로드 받은 2021년 12월 1일 자료의 종가를 이용해서 수익률과 평균 수익률을 구한다. 

 

그리고 파이썬으로 백테스트 한 결과와 비교한다.

 

 

왼쪽 데이터가 수작업이고 오른쪽이 파이썬으로 구한 데이터다.

 

3개 종목만 빼고 17개의 종목은 일치한다.

 

평균수익률도 파이썬으로 백테스트 한 값은 64%이나 수작업은 28.3%이다. 

 

여기에서 파이썬 코드에서 한 작업이 수작업에서는 이루어지지 않았기에 차이가 나는 것이다.

 

"KRX 정보시스템" 페이지 왼쪽 메뉴에서 전종목 시세를 들어가면, 위의 그림과같이 거래량과 거래대금을 확인할 수 있다.

 

파이썬으로 진행한 백테스트에서는 거래량이 0인 종목은 제외했다. 당연히 거래가 되지 않는 종목을 살 수가 없기 때문이다.

 

2020년 12월 1일 자로 데이터를 다운로드 받은 후 차이가 나는 종목을 확인하였다.

 

수작업으로 고른 종목 중 '세원물산'과 세원정공'은 거래량이 해당일자 기준으로 '0'이다.

 

하림지주는 거래량이 '0'이 아니지만, 소수점자리로 인해 순위가 달라진 것 같다. 즉, KRX API를 통해 받은 데이터는 소수점 6자리까지 표시된다. 반면에 수작업으로 받은 데이터는 소수점 2자리까지만 표시된다. 

 

파이썬에서 백테스트를 작업할 때는 단자리 정리를 하지 않았기에 차이가 한 두 종목은 순위가 달라질 수 있다. 대세에 큰 영향을 미치는 요인은 아니니 크게 염려하지 않아도 될것이라 생각한다.

 

수작업에서 파이썬과 동일한 항목으로 수익률을 계산해 보니 95%의 수익률이 나왔다. 파이썬 64% 대비 31%p 가 높게 나온 것이다.

 

이건 주식수가 늘어났을 때 보정작업을 수작업에서 하지 않아서 발생한 것이다.

 

이러한 요인들을 고려하지 않고 단순 수작업으로 백테스트를 한다면 파이썬으로 만든 프로그램을 사용할 때보다 오차범위가 더 커질 수 있겠다는 생각이 든다.

 

아래는 KRX 정보시스템 페이지의 링크다. 자주 들어가지 않으니 헤메는 것 같아서 여기에 매모해 둔다.

 

http://data.krx.co.kr/contents/MDC/MDI/mdiLoader/index.cmd?menuId=MDC0201020502 

 

KRX 정보데이터시스템

증권·파생상품의 시장정보(Marketdata), 공매도정보, 투자분석정보(SMILE) 등 한국거래소의 정보데이터를 통합하여 제공 서비스

data.krx.co.kr

 

수작업으로 백테스트 한 엑셀파일을 아래와 같이 저장하였다. 기록을 하지 않으니 계속 잊어버려서 블로그에 저장하는 것이 경험상 가장 좋다고 생각한다.

 

PBR_DPS 백테스트기록(2003-2022)_모든일자.xlsx
9.07MB
20201201krx_data.xlsx
0.53MB
전종목시세201201.xlsx
0.27MB

728x90
반응형

댓글