'파이썬으로 만든 것들' 카테고리의 글 목록 (3 Page)
본문 바로가기

파이썬으로 만든 것들81

파이썬 마법의 공식 - 5. PER 가져오기 2022.06.28 - [집구석 강의/파이썬으로 마법의 공식 구현하기] - 파이썬 마법의 공식 - 4. 모든 종목번호, 종목명 가져오기 파이썬 마법의 공식 - 4. 모든 종목번호, 종목명 가져오기 조엘 그린블란트의 마법의 공식을 구현하기 위해서는 우선 주식시장에 상장된 전체 종목을 가져와야 합니다. 여러가지 방법이 있겠지만, 저는 KRX에서 전체 종목을 가져오도록 하겠습니다. 다행 dotsnlines.tistory.com 지난 포스트에는 pykrx 라이브러리를 사용해서 상장된 모든 종목을 가져왔습니다. 이번 포스트는 per을 가져와서 정리해 보도록 하겠습니다. 전체 종목 리스트는 pykrx 모듈을 이용해서 가져왔습니다. PER도 pykrx를 사용해서 가져오겠습니다. 가져온 데이터를 테이블 형식으로 만들기.. 2022. 7. 13.
파이썬 마법의 공식 - 4. 모든 종목번호, 종목명 가져오기 조엘 그린블란트의 마법의 공식을 구현하기 위해서는 우선 주식시장에 상장된 전체 종목을 가져와야 합니다. 여러가지 방법이 있겠지만, 저는 KRX에서 전체 종목을 가져오도록 하겠습니다. 다행히 어느 능력자께서 'pykrx'라는 라이브러리를 만드셔서 상장된 전체 주식종목을 아주 쉽게 가져올 수 있습니다. 혹시나 모르시는 분들이 계실수도 있어서 기초적인 사항 하나만 먼저 말씀드리겠습니다. 파이참을 열어보시면 왼쪽에 위의 그림과 같이 탐색창이 나옵니다. 마우스 오른쪽 버튼을 클릭하면 메뉴창이 나오는데, "New > Directory"를 선택하면 폴더를 생성할 수 있고, "New > Python File"을 선택하면 우리가 코딩하는 창을 만들 수 있습니다. 폴더이름과 파일이름은 아무거나 만드셔도 상관 없습니다. 이.. 2022. 6. 28.
파이썬 마법의 공식 - 3. 모듈(라이브러리) 설치하기 지난 포스트에서도 설명을 드린것 처럼, 파이썬은 비교적 쉽습니다. (그러니 저같이 비전공, 비전문분야, 40대 컴맹아저씨가 파이썬 포스트를 쓰고 있습니다.) 왜 쉬우냐면 이미 다른사람이 만든 코드를 가져다 쓰기 쉬운 구조이기 때문입니다. 예를들어 마우스를 자동으로 제어하는 프로그램을 하나 만든다고 생각해 볼까요? 아마 모르긴 몰라도 다른 언어를 사용해서 만든다면, 1,000줄 이상 아주 어렵게 코딩을 해야 될 것 같은 기분이 드네요. 하지만, 남이 만든 모듈을 가져와서 사용한다면 5줄도 안되는 코드로 마우스를 제어할 수 있습니다. 이번 포스트는 이런 남이 만든 코드인 모듈(module)을 가져와서 사용하는 방법에 대해 알려드리겠습니다. ※ 모듈과 라이브러리는 같은 의미로 사용하겠습니다. 저도 독학으로 배.. 2022. 6. 23.
파이썬 마법의 공식 - 2. 파이썬 설치하기 제 경험상 파이썬을 배우는 과정에서 가장 힘든 부분은 아나콘다, 파이참 등 관련 프로그램을 설치하는 과정이었습니다. 파이썬을 시작하기 위한 설치만 완료 한다면 7부 능선은 넘은거라 생각하셔도 됩니다. 예전에 파이썬을 설치하는 포스트를 쓴 적이 있어서 링크를 걸어 드리겠습니다. 아래 링크를 참고하세요. 2020.11.12 - [취미로 하는 파이썬/시작 - 아나콘다,파이참 설치] - 파이썬 시작하기 1 - 아나콘다 쉽게 설치하기 파이썬 시작하기 1 - 아나콘다 쉽게 설치하기 www.anaconda.com/products/individual Anaconda | Individual Edition Anaconda's open-source Individual Edition is the easiest way to p.. 2022. 6. 20.
파이썬 마법의 공식 - 1. 시작하는 글 제 블로그의 구독자 중 한 분께서 "조엘그린블란트"의 마법의 공식을 파이썬으로 구현하고 싶다는 요청이 있었습니다. 파이썬에 아직 익숙하지 않으셔서 코딩에 어려움을 겪고 계시다고 하셔서 함께 고민할겸 "마법의 공식"을 파이썬으로 구현하는 강의 포스트를 개설했습니다. 조엘그린블란트는 1985년 ~ 2005년까지 약 20년간 연 40%의 수익율을 올린 고담 캐피털의 설립자이자 경영파트너입니다. 이 분이 돈은 많은데 명예욕이 있어서 책을 쓰셨어요. 첫번째 책이 "주식시장을 이기는 작은책"입니다. 이 책에서 나오는 주식 투자 방법이 있는데, 어린 아들도 이 방법으로 투자하더라도 무조건 수익을 볼 수 있는 법칙을 적었습니다. 일종의 계량투자(퀀트투자)법인데, 2006년 이 책이 발매될 당시 선풍적인 인기를 얻었습니.. 2022. 6. 12.
파이썬 퀀트투자 쉽게하기 - 11. 종목 고르는 프로그램(실행파일) 무료 배포 지난번 사정상 급하게 마지막 강의를 마무리하고 오랜만에 다시 포스트를 올려 봅니다. 파이썬을 배우시는 목적에서 나름 설명을 드렸으나, 종목을 고르는 코드만 필요하신 분들도 계실거라는 생각이 듭니다. 그래서 이번 포스트는 투자할 종목을 고르는 코드를 설명드리고, 포스트의 마지막에는 제가 만든 프로그램도 배포 드릴려고 합니다. 우선 전체 코드는 아래와 같습니다. 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 from PyQt5.Qt.. 2022. 6. 7.
파이썬 퀀트투자 쉽게하기 - 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.
파이썬 퀀트투자 쉽게하기 - 9. 영업일만 가져와서 List로 만들기(주식거래일 구하기) 이번에는 백테스트 할 날짜를 구하는 코드를 만들어 보겠습니다. 백테스트 방법은 2003년 부터 2021년까지 특정월 특정일에 투자하고 1년이 지난 후 매도 후 다시 매수하는 것입니다. 18년 기간동안 일일이 달력을 찾아보며 증권거래일(휴일이 아닌 날짜)을 지정하는 방법도 있습니다. 하지만, 백테스트의 목적은 가장 수익이 많이 나는 날짜와 방법을 사용하는 것이기에 여러 조건들을 계속에서 변경할 필요가 있습니다. 수기로 날짜와 조건을 바꾸면 상당한 시간과 노력이 들기에 자동으로 변하게 할 필요가 있습니다. 이때 사용하는 개념이 "변수"입니다. m = 10 d = 4 우선 달을 지정할 변수를 'm'으로 지정하고, 숫자 10을 넣어줍니다. 날짜는 'd'라는 변수에 4를 지정합니다. 이제 2003년부터 2021년.. 2021. 12. 22.
파이썬 퀀트투자 쉽게하기 - 8. 모듈가져오기 이제 본격적으로 파이썬으로 퀀트투자 백테스트를 하는 코드를 작성해 보겠습니다. 우선 필요한 모듈을 가져오겠습니다. 1 2 3 4 from pykrx import stock import pandas as pd import numpy as np import os cs 모듈을 가져오는 방법은 아래 링크의 이전 포스트를 참고해 주세요. 2021.12.13 - [집구석 강의/파이썬 퀀트투자 쉽게하기] - 파이썬 퀀트투자 쉽게 하기 - 7. 파이썬 기초 파이썬 퀀트투자 쉽게 하기 - 7. 파이썬 기초 파이썬 코드를 짜기위한 기초적인 부분만 설명하려고 합니다. 어디부터 어디까지 알려드려야 할지 개인적으로 고민이 많았습니다. 그리고 어떻게 알려드려야 할지도 감이 잡히질 않네요. 그래 dotsnlines.tistory... 2021. 12. 20.
퀀트투자 종목 스크리닝 파이썬 코드 저 PBR X 저 DPS 퀀트투자 백테스트를 하고 나서 실제 종목을 스크리닝 할 수 있는 코드를 작성했다. 간단한 코드인데 잘 만든 것 같다. 사실 내가 잘 했다기 보다는 여러 똑똑한 프로그래머들이 만든 모듈을 적절히 사용한 것 밖에 없다. 이 코드로 실제 투자를 했다. 1년을 기다려야 한다. 1년 후에 이 투자 방식이 검증이 되겠지. 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 from pykrx import stock import pandas as pd import numpy as np def make_pbr_dps_lis.. 2021. 12. 15.
퀀트투자 백테스트 코드 (저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.
마법의 공식 파이썬 코드 이전에 블로그의 다른 포스트에서 마법의 공식 코드를 올린적이 있다. 에러가 난다는 문의글이 댓글로 달려서 결국 에러를 수정했다. 에러의 이유는 없어진 기업 코드를 KRX에서 불러올때 발생한다. 그래서 try~except 문을 추가했다. 전문적으로 코딩을 하는 사람은 보통 Git Hub를 이용한다. 내가 만든 코드는 그렇게 복잡하거나 내용이 많지 않으니, 블로그에 올려 놓는다. 그렇게 하면 오히려 나중에 응용해서 다른 코드를 만들때 훨씬 수월하다. 마법의 공식으로 걸러낸 종목들은 투자한 기업을 고를때 시간도 아껴주고 유용하다. 신기하게도 이렇게 고른 기업들 중 저평가 된 기업이 의외로 많이 보인다. 세상이 많이 좋아졌다. 이런 파이썬이라는 언어는 나 같이 회사일을 본업으로 하는 가장에게 투자함에 있어서 많.. 2021. 12. 12.
파이썬 퀀트투자 쉽게하기 - 6 파이썬(Python) 설치하기 지난번 포스트에서 말씀 드렸듯이 파이썬을 배우는 과정에서 가장 어려운 부분은 '설치'입니다. 이런 얘기를 하면 대부분 제가 거짓말이나 장난으로 얘기한다고 생각하시더라구요. 얼마 전 회사 우리부서 막내에게 파이썬을 알려주려고 파이썬을 설치해 주었습니다. 그 직원도 "설치과정이 가장 어렵다"는 말을 장난으로 받아들이더라구요. 막상 설치하는 과정을 보여주니 "정말 어렵네요."라며 제 말을 그제서야 이해했습니다. 파이썬은 다양한 모듈을 사용합니다. 일일이 설치해도 되지만, Package로 설치하면 쉽우면서 시간도 절약할 수 있습니다. Python이 '뱀'을 뜻하는 단어인건 아시죠? 파이썬 언어를 만들때 귀도 반 로섬이 자기가 좋아하는 코미디 팀 이름이 Python이라고 장난스럽게 프로그래밍 언어를 파이썬이라고 .. 2021. 12. 3.
파이썬 퀀트투자 쉽게하기 - 5 파이썬(Python) 이란? 이번 시간에는 파이썬에 대해 알아보겠습니다. Python은 1991년 프로그래머인 귀도 반 로섬이 만든 언어입니다. 프로그래밍 언어는 우리가 영어, 중국어, 한국어 등 다양한 언어를 사람들이 사용하며 소통하고 있듯이 컴퓨터와 대화할 때도 C, C#, java, Visual Basic 등 다양한 언어가 있다고 이해하시면 됩니다. Python은 많은 언어들 중 사용자가 많으며, 사용하기 쉬워서 비전공자부터 인공지능 개발자까지 다양한 분야에서 여러 목적으로 사용하고 있습니다. 저도 기계공학과를 15년전에 졸업하고, 프로그래밍과 아무 관련이 없는 일을 하다가 작년에 호기심에 파이썬을 독학하게 되었습니다. 당연히 제 프로그래밍 실력은 좋은편은 아닙니다. 전문가가 보기에는 극히 초보적인 수준일 수도 있어요. 하지만.. 2021. 12. 1.
파이썬 퀀트투자 쉽게하기 - 4 프로그래밍 없이 백테스트 하기 이번 시간에는 프로그래밍을 하지 않고, 손쉽게 백테스트 하는 방법에 대해서 포스트 해 보겠습니다. 퀀트투자는 말 그대로 계량투자를 말합니다. 일정한 조건으로 종목을 선별해서 규칙적으로 사고, 팔고(리벨런싱)을 하면서 장기간 복리수익을 기대하는 투자법입니다. 계량 조건은 간단한 PER, PBR 부터 매출액, 영업이익률 등 투자자 성향에 따라 여러 요소가 될 수 있습니다. 중요한 점은 백테스트를 통해 장기간 수익률이 괜찮은 요소로 투자를 해야 한다는 것입니다. 지난 포스트에서도 말씀 드렸듯이 시중에 판매되는 프로그램을 사용하셔서 백테스트를 해도 되지만, 더욱 간단한 방법으로 직접 백테스트를 하는 방법이 있습니다. 일단 저 PBR 기준으로 20개 종목을 선정 후 1년 후 수익률을 확인하는 백테스트 방법에 대해.. 2021. 11. 29.
파이썬 퀀트투자 쉽게하기 - 3 현실적인 퀀트투자 방법 퀀트투자 책들을 읽어보면 대부분 어렵습니다. 최소한 제 경우는 그랬습니다. 설사 이해가 된다고 하더라도 구현하기가 상당히 어렵습니다. 조엘 그린블란트라는 유명한 펀트매니저가 쓴 "주식시장을 이기는 작은책"은 그나마 쉬운 편입니다. 높은 이익수익률과 높은 자본수익률을 내는 회사를 20 ~ 30개 쯤 사서 3년 보유하면 된다고 합니다. 이것을 마법의 공식이라고 저자가 불렀고, 1988년 ~ 2004년까지의 마법의 공식 평균 수익률은 30.8%가 된다고 책에 적혀 있습니다. 저는 책은 재미있게 읽었는데, 도통 어떻게 하라는지 이해가 가지 않더라구요. 그래서 책 맨 뒤에 적혀있는 "일반적인 선별 방법"을 시도해 보았습니다. 일반적인 선별방법은 높은 ROA와 낮은 PER을 순위를 매긴 후 더해서 낮은 순으로 20.. 2021. 11. 24.
파이썬 퀀트투자 쉽게하기 - 2 사람의 두뇌는 투자에 실패하도록 설계되었다. 사람의 두뇌가 투자에 적합하지 않다는 주제의 책들은 차고 넘쳐납니다. 혹시 모르실 분들을 위해 제 경험을 빗대어서 우리의 두뇌가 얼마나 투자에 부적합한지를 적어보려고 합니다. 1. 비일관성 광고 중에 "배고플 때 너는 네가 아니야" 라는 광고 대사가 있습니다. 사람들은 배고플때 올바른 판단을 하지 않는 경우가 있습니다. 허기가 질 때 외에도 시간이 촉박하거나, 정서적으로 안정되지 못 할때 올바른 판단을 내리기가 쉽지 않습니다. 투자를 할 때는 일관적인 방법으로 해야 합니다. 오늘 기분이 좋아서 주식을 사고, 내일은 기분이 나빠서 시장에 내다 판다면 만족할 만한 수익을 얻기란 힘이 듭니다. 2. 직관체계 행동경제학으로 노벨경제학상을 받은 데일 카너먼 교소는 우리뇌에 두 가지 시스템이 있다고 합니다. 하나는.. 2021. 11. 22.
파이썬 퀀트투자 쉽게하기 - 1. 들어가는 글 퀀트투자는 참으로 매력적인 투자방법입니다. 일정한 기준으로 종목을 선별해서 일정한 기간 후에 기계적으로 매도하고, 다시 같은 방법으로 매수합니다. 이런 작업을 계속해서 반복하다 보면 복리의 힘까지 더해져서 자산이 기하급수적으로 늘어나게 됩니다. 차트를 보고 투자를 하거나, 재무제표를 꼼꼼히 읽어가며 가치투자를 하거나 일반인들에겐 어렵기는 매 한 가지 입니다. 그리고 저조한 수익률도 피해갈 수 없습니다. 퀀트투자는 백테스트를 통해서 10년 이상의 데이터로 미리 연습을 해 보고 나서 투자를 하니, 아무래도 다른 투자법보다 성공할 확률이 높아집니다. 또한 통계와 확률의 영역이기에 주관적인 생각을 배제할 수 있습니다. 그래서 인간의 감정에 의한 실수를 획기적으로 줄일 수 있습니다. 위의 그림은 PBR과 배당을 .. 2021. 11. 21.
퀀트투자 백테스트 - 내가 찾은 전략 본 포스트는 퀀트투자를 위한 개인적인 백테스트 기록이며, 테스트 과정이 올바르게 진행되었다는 어떠한 증명도 할 수 없음을 알려드립니다. 본 포스트를 참고하셔서 투자를 하는 행위는 삼가하여 주시기 바랍니다. 지난번 PER X PBR 콤보전략 백테스트는 CAGR이 괜찮은 수준이었지만, 최대손실이 너무커서 현실적인 투자방법으로 무리가 있었다. 여러 조건으로 백테스트를 진행하다가 괜찮은 조건을 찾았다. 결과는 아래와 같다. 중간 과정에서 백테스트 한 결과를 일일이 포스트하기 너무 귀찮고, 시간낭비로 느껴져서 바로 결론 포스트를 작성했다. 17년간 투자시 78.76배의 누적수익률을 기대할 수 있는 방법을 찾았다. 최대 손실도 -1%이다. 나도 믿기지 않아서 검증하는 테스트를 수 없이 진행했다. 하지만, 아직 오류.. 2021. 11. 17.