'파이썬(Python)' 카테고리의 글 목록 (4 Page)
본문 바로가기

파이썬(Python)192

KOSPI 와 환율 비교(With python) 지난번에 환율과 KOSPI를 비교하는 코드를 포스트에 적은 적이 있다. 2022.09.29 - [취미로 하는 파이썬/투자 실험실 with 파이썬] - 퀀트투자 - 환율데이터 DB에 저장하기, KOSPI와 상관관계 확인해 보기 그리고 사기꾼과 욕심에 관한 내 생각 퀀트투자 - 환율데이터 DB에 저장하기, KOSPI와 상관관계 확인해 보기 그리고 사기꾼과 욕심에 관 환율데이터를 받아서 DB에 저장했다. pykrx 모듈처럼 자동으로 불러 오는 방법을 찾아 봤지만, 엑셀로 받아서 DB에 저장했다. 매번 Data를 업데이트 할 필요도 없고, 한번 DB에 저장하면 그걸로 백테 dotsnlines.tistory.com 그 때는 환율을 크롤링하지 못해서 데이터를 DB에 저장하고 그래프를 그렸다. 매번 데이터를 가져오기.. 2022. 11. 9.
배당수익률을 이용한 투자전략 백테스트 이전에 배당수익률을 이용해서 투자하는 전략을 파이썬으로 구현해 보았다. 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.
미국 장단기 금리차와 KOSPI 지수 비교 (With Python) 최근 뉴스에서 미국 장단기 금리차가 역전되었다는 소식을 들었다. FRED 사이트에서 10-2년 미국국채 금리차를 그래프로 제공해 준다. 중간에 선이 0이고, 그 아래는 장단기 금리가 역전되는 구간이다. 그리고 회색 부분은 경기침체 구간이다. 장단기 금리가 역전되면 항상 경기침체가 나타난 것으로 보인다. 다시 최근에 급격한 금리역전 현상이 나타났다. 22년 6월부터 금리가 역전된 것으로 보인다. 갑자기 US 장단기 국채금리 역전과 KOSPI가 어떤 관계가 있는지 궁금해졌다. 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 import pandas as pd from pandas_datareader impo.. 2022. 11. 6.
파이썬으로 주식 분석 프로그램 툴 만들기(시가배당률 이용) 주식은 싸게 사서 비싸게 팔면 된다. 아주 간단한 원리다. 하지만 싸다는 기준과 비싸다는 기준은 너무나 모호하다. 아무도 알려주지 않는다. 책에서 나름 똑똑하다는 사람이 여러 기준을 알려주었지만, 실제로 테스트를 해 보지 않아서 잘 모르겠다. 나는 개인적으로 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.
파이썬 마법의 공식 - 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.