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

파이썬으로 만든 것들81

배당률을 이용한 백테스트 결과 분석 지난번에 배당률을 이용한 백테스트를 진행했다. 2008년부터 테스트를 시작해서 과거 5년 동안 시가배당률이 가장 높았던 값의 90% 이상인 종목을 골라서 향후 3년동안 수익률을 구하는 목적으로 했다. 2022.11.08 - [취미로 하는 파이썬/투자 실험실 with 파이썬] - 배당수익률을 이용한 투자전략 백테스트 배당수익률을 이용한 투자전략 백테스트 이전에 배당수익률을 이용해서 투자하는 전략을 파이썬으로 구현해 보았다. 2022.10.25 - [취미로 하는 파이썬/투자 실험실 with 파이썬] - 파이썬으로 주식 분석 프로그램 툴 만들기(시가배당률 이 dotsnlines.tistory.com 수익률이 0% 부터 아주 다양하게 나왔다. 수익률과 각종 재무데이터와의 연관성을 찾으려고 노력했지만 결국 찾지 .. 2022. 11. 16.
주식투자 분석 툴 업데이트 2(With Python) 좀 더 필요한 기능을 추가했다. KOSPI 지수와 미국 채권 장단기 금리차를 추가했다. 그리고 DOW, NASDAQ, S&P500 지수도 추가했다. 추가된 기능은 HTS에서 볼 수 있다. 하지만, 그래프를 비교해가며 보기는 힘들 것이다. 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 79 80 81 82 83 84 85 86 87 88 89 90 91 9.. 2022. 11. 15.
주식투자 분석 툴 업데이트(With Python) 주식투자 분석툴을 업데이트 했다. 해야지, 해야지 하다가 최근 몇 주간 열심히 코딩을 해서 우선 현재까지 완성했다.(나중에 더 업데이트가 될 수도 있지만....) 예전에 만든 원하는 종목에 대한 배당분석은 변경된 건 없다. 연도별 배당금이 표시되고, 분석 기간동안의 최고가, 최저가, 최근주가, 최고, 최저, 최근 배당수익율이 표시된다. 그리고 Trend 를 볼 수 있도록 그래프도 만들어진다. 환율 및 코스피지수는 추가된 항목이다. 기준일과 KOSPI, 환율을 최근 기준으로 스크래핑해서 보여준다. 환율 VS 코스피지수도 트렌드를 보기위해 그래프가 나타난다. 주식투자를 하면서 느끼지만, 금리, 환율 이런것들이 상당히 중요하다. 갑자기 생각 난건데 금리, 유가 이런 것들도 업데이트해야겠다. 마지막으로 추가된 .. 2022. 11. 13.
배당수익률로 종목 선정하기 Update (With Python) 배당수익률로 종목을 선정하는 코드를 업데이트 했다. DB에서 마지막 행의 날짜와 최근 영업일을 비교해서 DB에 최근 Data가 없으면 자동으로 업데이트 하도록 했다. 주식을 분석하는 툴에 이 기능을 추가할 예정이기에 자동화 시킬 수 있는 부분은 최대한 자동화 시키려고 노력했다. 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 79 80 81 82 83 84.. 2022. 11. 11.
배당수익률을 이용한 투자전략 백테스트 이전에 배당수익률을 이용해서 투자하는 전략을 파이썬으로 구현해 보았다. 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.
파이썬으로 주식 분석 프로그램 툴 만들기(시가배당률 이용) 주식은 싸게 사서 비싸게 팔면 된다. 아주 간단한 원리다. 하지만 싸다는 기준과 비싸다는 기준은 너무나 모호하다. 아무도 알려주지 않는다. 책에서 나름 똑똑하다는 사람이 여러 기준을 알려주었지만, 실제로 테스트를 해 보지 않아서 잘 모르겠다. 나는 개인적으로 PER 밴드, PBR 밴드로 주가가 저가임을 판단한다. 하지만, 이것도 그렇게 완벽하지는 않은 것 같은 느낌이다.(아래는 파이썬으로 PER 밴드차트를 그려본 포스트다.) 2022.09.19 - [취미로 하는 파이썬/투자 실험실 with 파이썬] - 파이썬으로 PER 밴드 차트 그리기 3 - qt designer로 UI 만들기 파이썬으로 PER 밴드 차트 그리기 3 - qt designer로 UI 만들기 2022.09.07 - [취미로 하는 파이썬/투.. 2022. 10. 25.
퀀트투자 - 매년 초에 투자해서 매년 말까지 수익률 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.
퀀트투자 - DB에서 날짜 가져와서 PBR x DPS 조건으로 종목 고르기(SQL 특정 조건 가져오기) 여태까지 투자 실험을 한 내용을 요약해 보겠다. PBR x DPS를 기준으로 20 종목을 선정한 뒤 월별로 수익률을 분석했다.(물론 그 전에 여러 조건으로 수익률을 분석한 적이 있지만, 이런 세부적인 부분은 설명이 길어지니 생략하겠다.) pykrx 라이브러리를 사용해서 데이터를 가져오고, 백테스트를 하다보니 KRX 홈페이지에 차단되는 일이 발생했다. 그래서 데이터를 일일이 받아서 DB에 저장했다. 그리고 다시 백테스를 해 보려고 한다. df = pd.read_sql("SELECT * FROM ...", con) 로 전체 데이터를 다 가져오니 시간이 생각보다 오래걸렸다. sqlite3를 처음 사용해보고 SQL 사용법을 모르니 생각보다 쉽지 않았다. 그래도 내 친구 Google이 쉽게 방법을 알려주어서 이번.. 2022. 10. 1.
퀀트투자 - 환율데이터 DB에 저장하기, KOSPI와 상관관계 확인해 보기 그리고 사기꾼과 욕심에 관한 내 생각 환율데이터를 받아서 DB에 저장했다. pykrx 모듈처럼 자동으로 불러 오는 방법을 찾아 봤지만, 엑셀로 받아서 DB에 저장했다. 매번 Data를 업데이트 할 필요도 없고, 한번 DB에 저장하면 그걸로 백테스트만 하면 되니깐 굳이 힘들게 라이브러리를 찾을 필요가 없다고 판단했다. https://spot.wooribank.com/pot/Dream?withyou=FXXRT0014 기간별환율조회 - 우리은행 통화 USD(미국) JPY(일본(100)) EUR(유럽연합) AED(U.A.E) ARS(아르헨티나) AUD(호주) BDT(방글라데시) BHD(바레인) BND(브루나이) BRL(브라질) CAD(캐나다) CHF(스위스) CNY(중국) CZK(체코) DKK(덴마크) EGP(이집트) FJD( spot.woorib.. 2022. 9. 29.
퀀트투자 - KRX에서 KOSPI 지수, PER, PBR 다운로드 받아서 DB에 저장하기 퀀트투자 실험을 진행하면서 KOSPI 지수와 비교할 일이 있을 것 같아서 다운로드 받아서 DB에 저장했다. KOSPI 지수를 다운 받는건 생각보다 간단하다. 그리고 시간도 1초 정도 걸린다. 1 2 3 4 5 6 7 8 9 from pykrx import stock import sqlite3 df_kos = stock.get_index_fundamental('20030101', '20220831', '1001') con = sqlite3.connect('krx_data.db') df_kos.to_sql('kospi_index', con=con, if_exists='replace') print(df_kos) Colored by Color Scripter cs Data를 DB에 저장했다. 다운받는데 시간이 .. 2022. 9. 27.
퀀트투자 - KRX에서 재무 데이터 DB로 저장하기 지난 포스트에서 KRX에서 영업일을 다운받아 DB에 저장하는 과정을 기록했다. 이전 포스트(KRX에서 영업일 다운로드 받기) 이제 드디어 데이터를 다운 받았다. 다행히 차단되지 않고, 한 번에 받았지만 아주 오래 걸렸다. 미리 받은 영업일을 데이터프레임을 가져오고, 다시 List로 저장 했다. 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 from pykrx import stock from datetime import datetime, timedelta import pandas as p.. 2022. 9. 25.
퀀트투자 - KRX에서 영업일 다운로드 받기 퀀트투자 백테스트와 분석을 진행하면서 힘든 부분이 데이터를 구하는 것이다. 지난 포스트(퀀트투자 - 통계적인 관점에서 백테스트 수익률 분석) pykrx로 데이터를 가져왔지만 데이터 양이 많아지면 KRX 사이트에서 차단이 되어 버린다. 그래서 데이터를 다운 받아서 Local PC에 저장하기로 했다. 엑셀에 저장하려고 했지만, 데이터 양이 너무 많아서 불가능 하다는 사실을 알게되었다.(가능하다 해도 속도도 느려지고, 사용하기가 불편할 것이다.) 그래서 DB라는걸 이용하기로 했다. 예전에 읽은 책에서 Maria DB라는걸 알게 되어서 설치하고, 해 보려고 했지만 내가 머리가 나빠서 그런지 이해도 잘 안되고 어떻게 하는지 잘 모르겠다. 그러던 중 sqlite3 라는걸 검색해서 찾아냈다. 이건 상대적으로 할 수 .. 2022. 9. 23.
퀀트투자 - 통계적인 관점에서 백테스트 수익률 분석 예전에 저PBR 과 저DPS 조합으로 퀀트투자 백테스트를 한 적이 있다. 저PBR X 저DBS 조합 퀀트투자 백테스트 그 당시에는 모든 것이 완벽할 것이라고 생각하고 바로 실행해 보았다. 막상 실제로 투자를 해 보니 여러가지 문제에 부딪히게 되었다. 가장 큰 부분이 멘탈관리 적인 부분이다. 원래 11월 초에 사서 1년 보유 후 수익여부와 관계없이 되파는 것이었는데, 주가의 등락이 심해서 마음을 계속 졸였다. 특히나 손실이 발생하고 있는 시점이나, 어느정도 수익이 발생했을 때 어떻게 할 것인지에 대한 대비가 전혀 없었다. 다행인지 모르겠지만, 조금의 수익만 보고 전량 매도해 버렸다. 그리고 다시 백테스트를 하고 있다. 내 짧은 지식으로 어떻게 해야할지 몰라서 일단 생각나는 아이디어로 코드를 짜 보았다. 1.. 2022. 9. 21.
파이썬으로 PER 밴드 차트 그리기 3 - qt designer로 UI 만들기 2022.09.07 - [취미로 하는 파이썬/투자 실험실 with 파이썬] - 파이썬으로 PER 밴드 차트 그리기 2 - 수정주가 가져와서 선형으로 그래프 그리기 파이썬으로 PER 밴드 차트 그리기 2 - 수정주가 가져와서 선형으로 그래프 그리기 2022.09.05 - [취미로 하는 파이썬/투자 실험실 with 파이썬] - 파이썬으로 PER 밴드 만들기 1 파이썬으로 PER 밴드 만들기 1 파이썬으로 PER 밴드를 만들어 보았습니다. https://m.blog.naver.com/PostView.nave.. dotsnlines.tistory.com 지난번 포스트에서 얘기한 것 처럼 UI를 만드는 방법입니다. 컨센서스도 가져와서 미래 예측까지 보여주려고 했는데, 잘 안되네요. 이 부분은 나중에 여유가 생기면.. 2022. 9. 19.
파이썬으로 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.
파이썬으로 PER 밴드 만들기 1 파이썬으로 PER 밴드를 만들어 보았습니다. https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=kbomb2000&logNo=221295759491 PER band 그리기 해당 글에도 언급이 되어 있듯이 피터 린치는 주식의 고평가 기준을 '이익선' 을 기준으로 삼고 주가가 이... blog.naver.com 네이버를 검색하다가 엑셀로 PER 밴드를 그리는 포스트를 쓰신 분을 발견하게 되었습니다. (위에 링크) 파이썬으로 PER을 그리면 훨씬 편리할 것 같은데, 그런 포스트는 검색을 해도 찾을 수가 없었습니다. 그래서 간단히 한 번 만들어 보았습니다. 기본 개념은 간단합니다. 저도 PER 밴드를 만드는 원리를 파이썬으로 구현하면서 알게 .. 2022. 9. 5.
퀀트투자 분할매수 백테스트(파이썬) 저의 취미 중 하나가 프로그래밍입니다. 또 다른 취미는 주식투자 입니다. 투자관련 서적들을 보면 여러가지 투자 방법들을 알 수 있는데, 실제로 수익이 나는지 증명해 보고 싶을때가 있습니다. 작년에 저PBR x 저DPS로 백테스를 해 본적이 있습니다. 아래 링크는 제가 백테스트 한 내용을 적은 포스트입니다. 2021.12.14 - [인생발자국/처음부터 다시 쓰는 투자일기] - 퀀트투자 백테스트 코드 (저PBR X 저DPS) 퀀트투자 백테스트 코드 (저PBR X 저DPS) 강환국 님의 '할수있다 퀀트투자'를 읽고나서 파이썬으로 만들어 보았다. 여러 조건을 백테스트 해 보았고, 이 조건이 가장 괜찮았다. 2003년부터 매월 11월 4일 즈음에 매수를 하고, 1년 후 매도 dotsnlines.tistory.co.. 2022. 8. 31.
파이썬 마법의 공식 - 7. PER, ROA 순위를 매겨서 투자 종목 선정하기 이번 포스트는 지난번에 만든 PER, ROA를 가져오는 함수를 이용해서 전 종목의 PER과 ROA의 순위를 매긴다음 조엘그린블란트의 마법의 공식과 비슷하게 20개 종목을 고르는 코드를 작성해 보겠습니다. 지난 포스트는 아래 링크를 참고하세요. 2022.07.25 - [집구석 강의/파이썬으로 마법의 공식 구현하기] - 파이썬 마법의 공식 - 6. ROA 가져오기 파이썬 마법의 공식 - 6. ROA 가져오기 지난번까지 전체 종목을 가져와서 PER까지 가져오는 방법을 알아보았습니다. 지난번 포스트는 아래 링크를 참고하세요. 2022.07.13 - [집구석 강의/파이썬으로 마법의 공식 구현하기] - 파이썬 마법 dotsnlines.tistory.com def make_magic_df(year, date): # .. 2022. 8. 15.
파이썬 마법의 공식 - 6. ROA 가져오기 지난번까지 전체 종목을 가져와서 PER까지 가져오는 방법을 알아보았습니다. 지난번 포스트는 아래 링크를 참고하세요. 2022.07.13 - [집구석 강의/파이썬으로 마법의 공식 구현하기] - 파이썬 마법의 공식 - 5. PER 가져오기 파이썬 마법의 공식 - 5. PER 가져오기 2022.06.28 - [집구석 강의/파이썬으로 마법의 공식 구현하기] - 파이썬 마법의 공식 - 4. 모든 종목번호, 종목명 가져오기 파이썬 마법의 공식 - 4. 모든 종목번호, 종목명 가져오기 조엘 그린블란트 dotsnlines.tistory.com 이번 포스트는 ROA를 가져오는 방법을 알아보도록 하겠습니다. ROA는 크롤링을 해야 합니다. 우선 인터넷 브라우저 주소입력창에 "https://comp.fnguide.com" .. 2022. 7. 25.