'백테스트' 태그의 글 목록
본문 바로가기

백테스트21

퀀트투자(PBR x DPS) 백테스트 업그레이드230928 예전에 백테스트 한 퀀트투자를 다시 해 보았다. 1년이 넘어서 그런지 그 동안 프로그래밍 실력도 나아지고, 보는 눈도 좀 더 좋아진 것 같다. 조건은 KRX Data를 가져와서 저PBR x 저DPS 조합으로 20개씩 동일가중으로 매수해서 1년 후 매도하는 전략이다. 어차피 현실에서는 많은 변수가 있으니 날짜 부분은 매월 첫째일에 투자해서 1년 후 대충 11번째 날에 매도하는 방법으로 했다. 우선 결과는 아래와 같다. 지난번 테스트에는 매년 2월과 11월 초에 투자하는 것이 유리하다고 생각했다. 하지만, 손실이 나는 해의 개수를 비교해보니 2월과 12월이 2번으로 가장 적었다. 초기에 1천만원 투자금으로 추가 불입없이 19년간 투자를 진행하는 시물레이션이다. 19년 후에는 2월 12월 각각 원금대비 187.. 2023. 9. 28.
배당수익률을 이용한 투자전략 백테스트 이전에 배당수익률을 이용해서 투자하는 전략을 파이썬으로 구현해 보았다. 2022.10.25 - [취미로 하는 파이썬/투자 실험실 with 파이썬] - 파이썬으로 주식 분석 프로그램 툴 만들기(시가배당률 이용) 파이썬으로 주식 분석 프로그램 툴 만들기(시가배당률 이용) 주식은 싸게 사서 비싸게 팔면 된다. 아주 간단한 원리다. 하지만 싸다는 기준과 비싸다는 기준은 너무나 모호하다. 아무도 알려주지 않는다. 책에서 나름 똑똑하다는 사람이 여러 기준을 알려 dotsnlines.tistory.com 이 투자 방법이 정말로 수익이 나는지 궁금했다. 그래서 파이썬을 이용해서 구현해 보았다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 2.. 2022. 11. 8.
퀀트투자 - 매년 초에 투자해서 매년 말까지 수익률 Test 2022.09.21 - [취미로 하는 파이썬/투자 실험실 with 파이썬] - 퀀트투자 - 통계적인 관점에서 백테스트 수익률 분석 퀀트투자 - 통계적인 관점에서 백테스트 수익률 분석 예전에 저PBR 과 저DPS 조합으로 퀀트투자 백테스트를 한 적이 있다. 저PBR X 저DBS 조합 퀀트투자 백테스트 그 당시에는 모든 것이 완벽할 것이라고 생각하고 바로 실행해 보았다. 막상 실제로 투자 dotsnlines.tistory.com 위와 같이 지난번에 pykrx를 가지고 매년 초에 투자해서 월별로 수익률을 구해보고, 최저값, 최고값을 구해 보았다. 매월 1번만 수익률을 구했기에 매일 종가로 수익률을 구하면 값이 어떻게 되는지 궁금했다. 그래서 DB에 영업일의 모든 Data를 다운로드 해서 저장했고, 일별로 1년.. 2022. 10. 24.
퀀트투자 - 백테스트 할 날짜 가져오기 백테스트를 하기 위해서는 날짜가 필요하다. 내가 투자를 하고나서 일정시점 또는 기간 동안에 수익을 확인해야지 내가 하려는 방법이 옳은지 그른지 판단이 선다. 주식시장은 영업일에만 개장한다. 수익을 확인하기 위해서는 해당일의 종가를 알아야 하고, 해당일이 영업일이 아니면 종가를 가져오지 못한다. pykrx에서는 영업일만 가져오는 함수가 있어서 문제가 없었다. 또한, 특정기간 예를들어 한달에 1번 수익률을 구하는 것이 가능했다. 하지만, 영업일을 DB로 가져오고 나서 기간별 수익률을 확인하려고 하니 방법을 모르겠다. 열심히 고민을 한 끝에 리스트로 만들기로 했다. con = sqlite3.connect('krx_data.db') df_dates = pd.read_sql("SELECT * FROM dates".. 2022. 10. 3.
퀀트투자 - 통계적인 관점에서 백테스트 수익률 분석 예전에 저PBR 과 저DPS 조합으로 퀀트투자 백테스트를 한 적이 있다. 저PBR X 저DBS 조합 퀀트투자 백테스트 그 당시에는 모든 것이 완벽할 것이라고 생각하고 바로 실행해 보았다. 막상 실제로 투자를 해 보니 여러가지 문제에 부딪히게 되었다. 가장 큰 부분이 멘탈관리 적인 부분이다. 원래 11월 초에 사서 1년 보유 후 수익여부와 관계없이 되파는 것이었는데, 주가의 등락이 심해서 마음을 계속 졸였다. 특히나 손실이 발생하고 있는 시점이나, 어느정도 수익이 발생했을 때 어떻게 할 것인지에 대한 대비가 전혀 없었다. 다행인지 모르겠지만, 조금의 수익만 보고 전량 매도해 버렸다. 그리고 다시 백테스트를 하고 있다. 내 짧은 지식으로 어떻게 해야할지 몰라서 일단 생각나는 아이디어로 코드를 짜 보았다. 1.. 2022. 9. 21.
파이썬으로 PER 밴드 차트 그리기 2 - 수정주가 가져와서 선형으로 그래프 그리기 2022.09.05 - [취미로 하는 파이썬/투자 실험실 with 파이썬] - 파이썬으로 PER 밴드 만들기 1 파이썬으로 PER 밴드 만들기 1 파이썬으로 PER 밴드를 만들어 보았습니다. https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=kbomb2000&logNo=221295759491 PER band 그리기 해당 글에도 언급이 되어 있듯이 피터 린치는.. dotsnlines.tistory.com 지난번 포스트에서 만들어 본 PER 밴드를 좀 더 다듬어 보겠습니다.(지난번 포스트는 위의 링크를 참고하세요) 지난번 포스트에서 PER 밴드를 만드는 과정에서 2가지 고민할 부분이 있었습니다. 첫번째, 주가를 PER x EPS로 구해서.. 2022. 9. 7.
퀀트투자 분할매수 백테스트(파이썬) 저의 취미 중 하나가 프로그래밍입니다. 또 다른 취미는 주식투자 입니다. 투자관련 서적들을 보면 여러가지 투자 방법들을 알 수 있는데, 실제로 수익이 나는지 증명해 보고 싶을때가 있습니다. 작년에 저PBR x 저DPS로 백테스를 해 본적이 있습니다. 아래 링크는 제가 백테스트 한 내용을 적은 포스트입니다. 2021.12.14 - [인생발자국/처음부터 다시 쓰는 투자일기] - 퀀트투자 백테스트 코드 (저PBR X 저DPS) 퀀트투자 백테스트 코드 (저PBR X 저DPS) 강환국 님의 '할수있다 퀀트투자'를 읽고나서 파이썬으로 만들어 보았다. 여러 조건을 백테스트 해 보았고, 이 조건이 가장 괜찮았다. 2003년부터 매월 11월 4일 즈음에 매수를 하고, 1년 후 매도 dotsnlines.tistory.co.. 2022. 8. 31.
파이썬 퀀트투자 쉽게하기 - 10. 전체 코드(마지막) 저 PBR 주식을 선별해서 퀀트투자 백테스트를 할 수 있는 전체 코드입니다. 개인 사정상 강의를 계속 올리기 위한 시간이 충분치 않아서 급하게 마무리하게 됨을 이해하여 주시기 바랍니다. 아래 코드에 주석으로 설명을 달았으니 참고하시기 바라며, 혹시라도 모르시는 부분이 있으면 댓글로 질문해 주시기 바랍니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 7.. 2021. 12. 28.
퀀트투자 백테스트 코드 (저PBR X 저DPS) 강환국 님의 '할수있다 퀀트투자'를 읽고나서 파이썬으로 만들어 보았다. 여러 조건을 백테스트 해 보았고, 이 조건이 가장 괜찮았다. 2003년부터 매월 11월 4일 즈음에 매수를 하고, 1년 후 매도 후 다시 매수하는 방법으로 17년간 백테스틀 해 보았다. 수익률이 8652% 즉, 원금의 86배가 된다. 하지만 문제는 손실이 많이 발생하는 해도 있다는 사실이다. 복리 수익률로 실컷 자금을 불렸지만, -42% 손실이 발생하면 정말 견디기 힘들 것 같다. 그래서 11월과 더불어 2월에도 분산해서 투자하는 방법을 생각했다. 그러니 가장 손실이 많이 발생한 해는 -1%로 견딜만한 수준이 되었다. CAGR도 11월만 하면 30%이지만, 2월까지 같이 하더라도 29%로 차이가 거의 없다. 저 PER, 저 PBR, .. 2021. 12. 14.
파이썬 퀀트투자 쉽게 하기 - 7. 파이썬 기초 파이썬 코드를 짜기위한 기초적인 부분만 설명하려고 합니다. 어디부터 어디까지 알려드려야 할지 개인적으로 고민이 많았습니다. 그리고 어떻게 알려드려야 할지도 감이 잡히질 않네요. 그래서 1년 전 제가 파이썬을 시작할때의 마음으로 기초적인 부분만 간단히 다루고 실제 퀀트투자 백테스트 코드를 가지고 설명하는 편이 나을 것 같다는 결론에 도달했습니다. 우선 파이썬은 남이 만든 코드를 가져와서 쓸 수 있습니다. 예를들어 내가 KRX(한국증권거래소)에서 모든 종목을 불러온다고 했을때를 생각해보세요. 뭐 부터 시작해야 하나 막막하죠? 이럴때 "pykrx"라는 모듈(라이브러리)을 사용하면 됩니다. "pykrx"라는 모듈에서 여러 함수를 제공하는데, 제가 필요한 종목코드, 종목명, PER, PBR,... 등 데이터를 쉽.. 2021. 12. 13.
파이썬 퀀트투자 쉽게하기 - 3 현실적인 퀀트투자 방법 퀀트투자 책들을 읽어보면 대부분 어렵습니다. 최소한 제 경우는 그랬습니다. 설사 이해가 된다고 하더라도 구현하기가 상당히 어렵습니다. 조엘 그린블란트라는 유명한 펀트매니저가 쓴 "주식시장을 이기는 작은책"은 그나마 쉬운 편입니다. 높은 이익수익률과 높은 자본수익률을 내는 회사를 20 ~ 30개 쯤 사서 3년 보유하면 된다고 합니다. 이것을 마법의 공식이라고 저자가 불렀고, 1988년 ~ 2004년까지의 마법의 공식 평균 수익률은 30.8%가 된다고 책에 적혀 있습니다. 저는 책은 재미있게 읽었는데, 도통 어떻게 하라는지 이해가 가지 않더라구요. 그래서 책 맨 뒤에 적혀있는 "일반적인 선별 방법"을 시도해 보았습니다. 일반적인 선별방법은 높은 ROA와 낮은 PER을 순위를 매긴 후 더해서 낮은 순으로 20.. 2021. 11. 24.
퀀트투자 백테스트 - 내가 찾은 전략 본 포스트는 퀀트투자를 위한 개인적인 백테스트 기록이며, 테스트 과정이 올바르게 진행되었다는 어떠한 증명도 할 수 없음을 알려드립니다. 본 포스트를 참고하셔서 투자를 하는 행위는 삼가하여 주시기 바랍니다. 지난번 PER X PBR 콤보전략 백테스트는 CAGR이 괜찮은 수준이었지만, 최대손실이 너무커서 현실적인 투자방법으로 무리가 있었다. 여러 조건으로 백테스트를 진행하다가 괜찮은 조건을 찾았다. 결과는 아래와 같다. 중간 과정에서 백테스트 한 결과를 일일이 포스트하기 너무 귀찮고, 시간낭비로 느껴져서 바로 결론 포스트를 작성했다. 17년간 투자시 78.76배의 누적수익률을 기대할 수 있는 방법을 찾았다. 최대 손실도 -1%이다. 나도 믿기지 않아서 검증하는 테스트를 수 없이 진행했다. 하지만, 아직 오류.. 2021. 11. 17.
퀀트투자 백테스트 - PER X PBR 콤보 전략 본 포스트는 퀀트투자를 위한 개인적인 백테스트 기록이며, 테스트 과정이 올바르게 진행되었다는 어떠한 증명도 할 수 없음을 알려드립니다. 본 포스트를 참고하셔서 투자를 하는 행위는 삼가하여 주시기 바랍니다. 지난번 포스트에서 저 PER 백테스트를 진행했다. 결과는 생각보다 실망스러웠다. 그래서 이번에는 PER과 함께 저 PBR을 접목해서 콤보전략으로 백테스트를 진행한 결과를 기록해 보겠다. 블로그에 수차례 언급하지만, 퀀트투자는 백테스트를 직접 해 보아야 한다. 변수가 너무나 많다. 그리고 변수 하나에 따라 결과가 천차만별로 나온다. 이번 테스트는 PER 0 이상, PBR 0이상인 종목을 기준으로 낮은 PER, PBR 순으로 정렬 후 20개를 뽑았다. 방법은 간단하다. 0이상인 PER을 오름차순으로 정렬한.. 2021. 11. 15.
퀀트투자 백테스트 - 저 PER 20종목 (All Market, 거래량 0이상) 본 포스트는 퀀트투자를 위한 개인적인 백테스트 기록이며, 테스트 과정이 올바르게 진행되었다는 어떠한 증명도 할 수 없음을 알려드립니다. 본 포스트를 참고하셔서 투자를 하는 행위는 삼가하여 주시기 바랍니다. 퀀트투자 백테스트를 진행하면 할 수록 오류를 찾게된다. 저 PER 조건으로 백테스트를 여러차례 진행하면서 개선된 사항을 기록으로 남기려고 한다. PBR이 낮은 순으로 정렬을 한 다음 순위를 매겨서 20 종목만 투자를 하는 테스트이다. 17년 동안 투자를 하며, 매월 4일에 리밸런싱하는 조건이다. 퀀트책을 읽다보면 저 PER 로 투자를 하는 방법에 대한 내용이 나온다. 그 책에서는 어떻게 투자를 했는지 모르겠지만, 내가 직접 테스트 한 결과만 봐서는 좋은 투자법이 아닌 것 같다. 5월이 가장 수익률이 높.. 2021. 11. 11.
퀀트투자 백테스트 - 현실적인 백테스트 방법 - 2 본 포스트는 퀀트투자를 위한 개인적인 백테스트 기록이며, 테스트 과정이 올바르게 진행되었다는 어떠한 증명도 할 수 없음을 알려드립니다. 본 포스트를 참고하셔서 투자를 하는 행위는 삼가하여 주시기 바랍니다. 퀀트투자 프로그램을 사용하지 않고, 보통사람이 할 수 있는 가장 현실적인 퀀트투자 방법 2번째 포스트다. 첫 번째 포스트는 누구나 할 수 있지만, 아주 시간이 오래 걸리는 방법이다. 아래 링크를 참고하길 바란다. 퀀트투자 백테스트 - 현실적인 백테스트 방법 - 1 두 번째 방법은 진입장벽이 약간 있는 방법이다. 파이썬이라는 언어를 공부하고 사용해야 한다. 하지만, 결코 어렵지 않다. 시간만 조금 투자하면 누구나 쉽게 배우고, 활용도가 높은 프로그램이 '파이썬'이다. 혹시나 관심이 있는 사람이 지금 포스.. 2021. 11. 5.
퀀트투자 백테스트 - 현실적인 백테스트 방법 - 1 본 포스트는 퀀트투자를 위한 개인적인 백테스트 기록이며, 테스트 과정이 올바르게 진행되었다는 어떠한 증명도 할 수 없음을 알려드립니다. 본 포스트를 참고하셔서 투자를 하는 행위는 삼가하여 주시기 바랍니다. 퀀트투자 프로그램을 사용하지 않고, 보통 사람이 할 수 있는 가장 현실적인 퀀트투자 방법을 소개하려고 한다. 이런 내용은 퀀트책 몇 권만 보면 나온다. 내 경험까지 추가해서 누구나 할 수 있는 방법을 기록해 보겠다. 1. Python 프로그램을 못하고, 앞으로 할 계획이 없는 경우 IT 강국인 우리나라에는 'KRX' 사이트가 있다. 참으로 고마운 사이트이다. 여기에서는 날짜 별, 종목별로 종가, PBR, PER, PSR, DIV 등의 데이터를 무료로 제공받을 수 있다. 1) KRX에서 위의 그림에서 보.. 2021. 11. 3.
퀀트투자 백테스트 - 저 PBR 20종목 (All Market) 본 포스트는 퀀트투자를 위한 개인적인 백테스트 기록이며, 테스트 과정이 올바르게 진행되었다는 어떠한 증명도 할 수 없음을 알려드립니다. 본 포스트를 참고하셔서 투자를 하는 행위는 삼가하여 주시기 바랍니다. 지난번 포스트까지 백테스트 파이썬 코드에서 약간의 실수가 있었다. 데이터를 스크래핑 할때 'KOSPI'만 가져온 것이다. 왠지 종목수가 적게 나와서 좀 의아하게 생각했다. 그래서 전체 시장, 즉 코스피와 코스닥의 데이터를 모두 불러와서 저 PBR로 20종목을 골라낸 후 백테스트를 해 보았다. 파이썬 코드는 길지 않은데, 17년치를 백테스트 하다보니 프로그램을 돌리는 시간이 약 30분 정도 걸린다. 이 시간이 너무나 길게 느껴진다. 비효율적이다. 그래서 multiprocessing을 구현하려고 하는데, .. 2021. 11. 1.
퀀트투자 백테스트 - 저 PBR 20종목 VS 30종목 승자는? 본 포스트는 퀀트투자를 위한 개인적인 백테스트 기록이며, 테스트 과정이 올바르게 진행되었다는 어떠한 증명도 할 수 없음을 알려드립니다. 본 포스트를 참고하셔서 투자를 하는 행위는 삼가하여 주시기 바랍니다. 퀀트투자 책을 보면 20개 또는 30개를 사서 매매하라고 한다. 저 PBR 같은 경우에는 20개 사는 것이 유리할까? 30개 사는 것이 유리할까? "17년치 X 월별 X 2가지 조건" 이런 경우의 수를 다 해 보면 알지 않을까? 하루에 하나씩 분석 한다면 약 1년 3개월이면 다 계산하고 분석할 수 있겠다. ...죄송하다. 헛소리 했다. 다행히 파이썬으로 코드를 다 만들었다. 20분이면 결과가 예쁘게 엑셀파일에 출력이 된다. 저 PBR 순으로 오름차순 정렬을 한 뒤 월 별 20개 종목만 선정을 했다. 월.. 2021. 10. 28.
퀀트투자 백테스트 - 워런버핏이 사용하던 NCAV 투자법 파이썬 코드 본 포스트는 퀀트투자를 위한 개인적인 백테스트 기록이며, 테스트 과정이 올바르게 진행되었다는 어떠한 증명도 할 수 없음을 알려드립니다. 본 포스트를 참고하셔서 투자를 하는 행위는 삼가하여 주시기 바랍니다. 지난 포스트에 이어서 NCAV를 이용해서 백테스트 한 파이썬 코드 기록이다. 개념은 간단하다. NCAV가 "유동자산 - 총부채 > 시가총액" 조건이기 때문에 3가지 수치만 가져오면 된다. 어떻게... 나는 IT 업계에서 일하는 사람이 아니다. 당연히 파이썬도 독학으로 배운지 1년 정도 되었다. 그리고 금융관련 지식이라곤 재테크 책 몇 권 읽은것이 전부다. 이렇게 간단한 조건을 어렵게 생각하는 내가 과연 파이썬 코드로 구현할 수 있을지 너무나 내 자신에 대해 의구심이 가득했지만, 결과적으로는 만들었다. .. 2021. 10. 24.
퀀트투자 백테스트 - 워런버핏이 큰 돈을 번 NCAV 투자법 본 포스트는 퀀트투자를 위한 개인적인 백테스트 기록이며, 테스트 과정이 올바르게 진행되었다는 어떠한 증명도 할 수 없음을 알려드립니다. 본 포스트를 참고하셔서 투자를 하는 행위는 삼가하여 주시기 바랍니다. 퀀트투자 서적을 2권 읽었다. 예전에 읽었던 조엘그린블란트의 '주식시장을 이기는 작은 책'이나 그레이엄의 '현명한 투자자' 같은 뜬구름 잡는 책이 아니라 실용서에 가까운 책을 읽었다. 책을 읽을때는 금방 부자가 될 것 같이 행복했지만 막상 백테스트를 시작하려니 많은 어려움과 마주쳤다. 가장 큰 문제는 주가 정보나, 재무정보에 대한 데이터를 구할 수 없다는 점이다. 네이버 금융에서 크롤링해서 가져올 수 있는 데이터는 최대 5년 정도 되고, DART API를 통해서 가지고 올 수 있는 데이터는 9년정도 된.. 2021. 10. 22.