'데이터' 태그의 글 목록
본문 바로가기

데이터27

KOSPI 와 환율 비교(With python) 지난번에 환율과 KOSPI를 비교하는 코드를 포스트에 적은 적이 있다. 2022.09.29 - [취미로 하는 파이썬/투자 실험실 with 파이썬] - 퀀트투자 - 환율데이터 DB에 저장하기, KOSPI와 상관관계 확인해 보기 그리고 사기꾼과 욕심에 관한 내 생각 퀀트투자 - 환율데이터 DB에 저장하기, KOSPI와 상관관계 확인해 보기 그리고 사기꾼과 욕심에 관 환율데이터를 받아서 DB에 저장했다. pykrx 모듈처럼 자동으로 불러 오는 방법을 찾아 봤지만, 엑셀로 받아서 DB에 저장했다. 매번 Data를 업데이트 할 필요도 없고, 한번 DB에 저장하면 그걸로 백테 dotsnlines.tistory.com 그 때는 환율을 크롤링하지 못해서 데이터를 DB에 저장하고 그래프를 그렸다. 매번 데이터를 가져오기.. 2022. 11. 9.
퀀트투자 - 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.
파이썬 마법의 공식 - 3. 모듈(라이브러리) 설치하기 지난 포스트에서도 설명을 드린것 처럼, 파이썬은 비교적 쉽습니다. (그러니 저같이 비전공, 비전문분야, 40대 컴맹아저씨가 파이썬 포스트를 쓰고 있습니다.) 왜 쉬우냐면 이미 다른사람이 만든 코드를 가져다 쓰기 쉬운 구조이기 때문입니다. 예를들어 마우스를 자동으로 제어하는 프로그램을 하나 만든다고 생각해 볼까요? 아마 모르긴 몰라도 다른 언어를 사용해서 만든다면, 1,000줄 이상 아주 어렵게 코딩을 해야 될 것 같은 기분이 드네요. 하지만, 남이 만든 모듈을 가져와서 사용한다면 5줄도 안되는 코드로 마우스를 제어할 수 있습니다. 이번 포스트는 이런 남이 만든 코드인 모듈(module)을 가져와서 사용하는 방법에 대해 알려드리겠습니다. ※ 모듈과 라이브러리는 같은 의미로 사용하겠습니다. 저도 독학으로 배.. 2022. 6. 23.
파이썬 퀀트투자 쉽게하기 - 4 프로그래밍 없이 백테스트 하기 이번 시간에는 프로그래밍을 하지 않고, 손쉽게 백테스트 하는 방법에 대해서 포스트 해 보겠습니다. 퀀트투자는 말 그대로 계량투자를 말합니다. 일정한 조건으로 종목을 선별해서 규칙적으로 사고, 팔고(리벨런싱)을 하면서 장기간 복리수익을 기대하는 투자법입니다. 계량 조건은 간단한 PER, PBR 부터 매출액, 영업이익률 등 투자자 성향에 따라 여러 요소가 될 수 있습니다. 중요한 점은 백테스트를 통해 장기간 수익률이 괜찮은 요소로 투자를 해야 한다는 것입니다. 지난 포스트에서도 말씀 드렸듯이 시중에 판매되는 프로그램을 사용하셔서 백테스트를 해도 되지만, 더욱 간단한 방법으로 직접 백테스트를 하는 방법이 있습니다. 일단 저 PBR 기준으로 20개 종목을 선정 후 1년 후 수익률을 확인하는 백테스트 방법에 대해.. 2021. 11. 29.
파이썬 퀀트투자 쉽게하기 - 3 현실적인 퀀트투자 방법 퀀트투자 책들을 읽어보면 대부분 어렵습니다. 최소한 제 경우는 그랬습니다. 설사 이해가 된다고 하더라도 구현하기가 상당히 어렵습니다. 조엘 그린블란트라는 유명한 펀트매니저가 쓴 "주식시장을 이기는 작은책"은 그나마 쉬운 편입니다. 높은 이익수익률과 높은 자본수익률을 내는 회사를 20 ~ 30개 쯤 사서 3년 보유하면 된다고 합니다. 이것을 마법의 공식이라고 저자가 불렀고, 1988년 ~ 2004년까지의 마법의 공식 평균 수익률은 30.8%가 된다고 책에 적혀 있습니다. 저는 책은 재미있게 읽었는데, 도통 어떻게 하라는지 이해가 가지 않더라구요. 그래서 책 맨 뒤에 적혀있는 "일반적인 선별 방법"을 시도해 보았습니다. 일반적인 선별방법은 높은 ROA와 낮은 PER을 순위를 매긴 후 더해서 낮은 순으로 20.. 2021. 11. 24.
퀀트투자 백테스트 - 현실적인 백테스트 방법 - 1 본 포스트는 퀀트투자를 위한 개인적인 백테스트 기록이며, 테스트 과정이 올바르게 진행되었다는 어떠한 증명도 할 수 없음을 알려드립니다. 본 포스트를 참고하셔서 투자를 하는 행위는 삼가하여 주시기 바랍니다. 퀀트투자 프로그램을 사용하지 않고, 보통 사람이 할 수 있는 가장 현실적인 퀀트투자 방법을 소개하려고 한다. 이런 내용은 퀀트책 몇 권만 보면 나온다. 내 경험까지 추가해서 누구나 할 수 있는 방법을 기록해 보겠다. 1. Python 프로그램을 못하고, 앞으로 할 계획이 없는 경우 IT 강국인 우리나라에는 'KRX' 사이트가 있다. 참으로 고마운 사이트이다. 여기에서는 날짜 별, 종목별로 종가, PBR, PER, PSR, DIV 등의 데이터를 무료로 제공받을 수 있다. 1) KRX에서 위의 그림에서 보.. 2021. 11. 3.
퀀트투자 백테스트 - 저 PBR 20종목 VS 30종목 승자는? 본 포스트는 퀀트투자를 위한 개인적인 백테스트 기록이며, 테스트 과정이 올바르게 진행되었다는 어떠한 증명도 할 수 없음을 알려드립니다. 본 포스트를 참고하셔서 투자를 하는 행위는 삼가하여 주시기 바랍니다. 퀀트투자 책을 보면 20개 또는 30개를 사서 매매하라고 한다. 저 PBR 같은 경우에는 20개 사는 것이 유리할까? 30개 사는 것이 유리할까? "17년치 X 월별 X 2가지 조건" 이런 경우의 수를 다 해 보면 알지 않을까? 하루에 하나씩 분석 한다면 약 1년 3개월이면 다 계산하고 분석할 수 있겠다. ...죄송하다. 헛소리 했다. 다행히 파이썬으로 코드를 다 만들었다. 20분이면 결과가 예쁘게 엑셀파일에 출력이 된다. 저 PBR 순으로 오름차순 정렬을 한 뒤 월 별 20개 종목만 선정을 했다. 월.. 2021. 10. 28.
퀀트투자 백테스트 - 저 PBR 투자 수익률 본 포스트는 퀀트투자를 위한 개인적인 백테스트 기록이며, 테스트 과정이 올바르게 진행되었다는 어떠한 증명도 할 수 없음을 알려드립니다. 본 포스트를 참고하셔서 투자를 하는 행위는 삼가하여 주시기 바랍니다. 재무데이터 구하기 너무 어렵다. 공짜로 얻으려고 하니 더욱 구하기가 어려운 것 같다. 네이버금융에서 크롤링을 해봤자 5년치 정도 밖에 안되고, DART는 그나마 2012년부터 제공이 되는것 같지만, 전 종목을 구하는데 시간도 오래걸리고 데이터 전처리도 필요할 것 같다. 시간이 날때 fnguide에 돈을 주고 다운로드 받을까 하는데, 예전에 가입해 논 비번을 까먹었다. 이메일도 어떤걸로 등록했는지 기억이 나질 않는다. 퀀트킹과 젠포트가 유명하던데 돈 주고 이용할까 생각도 했지만, 백테스는 작은 조건에 의.. 2021. 10. 26.
퀀트투자 백테스트를 한 번 해보기로 했다. 본 포스트는 퀀트투자를 위한 개인적인 백테스트 기록이며, 테스트 과정이 올바르게 진행되었다는 어떠한 증명도 할 수 없음을 알려드립니다. 본 포스트를 참고하셔서 투자를 하는 행위는 삼가하여 주시기 바랍니다. 책을 읽었다. 퀀트 투자 책이다. 2021.10.18 - [리뷰/책] - 할수있다 퀀트투자 - 독서후기 할수있다 퀀트투자 - 독서후기 이 책을 읽고나서 소크라테스의 "너 자신을 알라!!" 라는 문장이 떠올랐습니다. '투자'를 하든, 본인의 꿈을 이루든 성공확률을 높이는 방법은 본인의 재능과 장, 단점을 빠르게 파악하는게 아닐 dotsnlines.tistory.com 강환국이라는 분이 쓰신 책이다. 나보다 나이는 어리지만 이 책은 2016년도에 쓰셨고, 지금은 FIRE 족으로 경제적 자유를 누리고 있다고.. 2021. 10. 20.
python pandas - 판다스 기본(데이터프레임을 만드는 3가지 방법 ) 판다스는 여러번 봐도 항상 헷갈리네요. 특히, 기본적인 부분에서 많이 헷갈려서 구글링이 없으면 기본적인 코드도 작성할 수가 없네요. 이번 포스트는 가장 기본적인 데이이터프레임을 만드는 3가지 방법을 기록해 보겠습니다. 데이터프레임은 딕셔너리로 데이터프레임을 생성 리스트로 데이터프레임을 생성 리스트와 딕셔너리로 데이터프레임을 생성 이렇게 3가지 방법으로 생성할 수 있습니다.(아마 더 있겠지만, 저는 잘 모르겠습니다.) 우선 첫번째 방법(딕셔너리)으로 데이터프레임을 만들어 보겠습니다. 판다스 라이브러리를 불러옵니다. pd.DataFrame 함수로 {'col' : [컬럼에 있는 데이터 리스트]} 이런 형식으로 만듭니다. index=[리스트] 형태로 넣어주고, 설정을 안해도 자동으로 순차적으로 인덱스가 숫자로 .. 2021. 6. 2.
python pandas - 판다스 기본(특정 문자(숫자) 제외한 데이터만 가져오기 ) 판다스 데이터프레임에서 특정 문자/숫자를 제외한 데이터만 가져와야 할때가 있습니다. sort를 해야 하거나, 컬럼간에 계산을 해야 할때 문자가 나오면 에러가 나옵니다. N/A나 Null 데이타는 dropna(), 또는 dorpnull() 함수를 사용하면 되는데, 특정 문자나 숫자는 다른 방법으로 제외하고 데이터프레임을 가져올 수 있습니다. df = df[df['col'] != 0] 이런식으로 사용하면 됩니다. 생각해보면 간단한데, 막상 코딩을 하다보면 어떻게 해야할지 모를 경우가 많더라구요. 2021. 5. 31.
(업데이트) 파이썬으로 마법의 공식 구현하기 4 - 전체 코드 (파이썬 코드파일 공유) 지난 포스트까지 전체 종목코드와 PER을 가져오고, 에프엔가이드 사이트에서 ROA를 크롤링해서 데이터프레임을 만들고 마법의 공식을 구현하는 코드를 작성해 보았습니다.이전 포스트는 아래링크를 클릭하세요 ↓2021.05.26 - [취미로 하는 파이썬/Python Project] - 파이썬으로 마법의 공식 구현하기 1 - 종목 데이터, PER 가져오기 파이썬으로 마법의 공식 구현하기 1 - 종목 데이터, PER 가져오기조엘그린블란트의 마법의 공식은 상당히 유명합니다. PER과 ROA를 이용해서 종목을 골라내는 방법이죠.(엄밀히 말하면 실제 마법의 공식과 약간 다릅니다.) 우리나라에서는 맞지 않다고 하시는 dotsnlines.tistory.com2021.05.27 - [취미로 하는 파이썬/Python Proje.. 2021. 5. 29.
파이썬으로 마법의 공식 구현하기 3 - ROA, PER의 순위를 매겨서 최종순위 정렬하기 지난번 포스트까지 전 종목 코드와 PER을 가져오는 함수와 코드를 입력하면 ROA를 가져올 수 있는 함수를 만들었습니다. 지난번 포스트는 아래 링크를 참고하세요. ↓ 2021.05.27 - [파이썬/Python Project] - 파이썬으로 마법의 공식 구현하기 2 - ROE 가져오기 이번에는 이미 만들어진 함수를 가지고 데이터프레임을 만들고 각각 순위를 매겨서 최종 순위를 매기는 코드를 만들어 보겠습니다. # krx 데이터 '종목코드', '종목명', 'PER' 가져오기 codes = get_ticker_per(date) codes['종목코드'] = codes.index 종목코드와 PER을 가져와서 codes라는 변수의 데이터프레임에 담습니다. 종목코드는 인덱스로 되어있기 때문에 임의로 종목코드의 컬럼을.. 2021. 5. 28.
파이썬으로 마법의 공식 구현하기 2 - ROA, ROE 가져오기 지난번 포스트에 이어서 이번에는 ROA를 웹에서 가져오는 방법을 기록하겠습니다. 지난번 포스트는 아래 링크를 참고하세요 ↓ 2021.05.26 - [파이썬/Python Project] - 파이썬으로 마법의 공식 구현하기 1 - 종목 데이터, PER 가져오기 requests 모듈을 이용해서 에프엔가이드에서 제공하는 ROA를 가져오겠습니다. code 명과 가져올 시점(해당 분기 또는 사업보고시점)을 파라미터로 넣어주면 ROA를 가져오는 과정입니다. ROA를 가져오는 김에 ROE도 함께 불러오도록 하겠습니다. url = 'https://comp.fnguide.com/SVO2/ASP/SVD_FinanceRatio.asp?pGB=1&gicode=' + code + \ '&cID=&MenuYn=Y&ReportGB=.. 2021. 5. 27.
파이썬을 이용하여 10년치 재무제표 가져오기 - 5. 재무비율 추가하기 2021.05.16 - [분류 전체보기] - 파이썬을 이용하여 10년치 재무제표 가져오기 - 4. 코드 개선하기 파이썬을 이용하여 10년치 재무제표 가져오기 - 4. 코드 개선하기 지난번 포스트까지 DART(전자공시)에서 10년치 제무재표 데이터를 가져오는 파이썬 코드를 작성했습니다. 2021.05.15 - [파이썬/Python Project] - 파이썬을 이용하여 10년치 재무제표 가져오기 - 3. 손익계 dotsnlines.tistory.com 지난번 포스트에서는 재무제표를 좀 개선하는 내용을 다루었습니다. 이번 포스트는 가져온 재무제표 데이터를 이용해서 재무비율을 추가해 보도록 하겠습니다. 재무비율 추이를 보면, 해당 기업의 상황을 이해하는데 도움이 됩니다. 완전 코딩과 관련이 없는 사람이 이런걸 .. 2021. 5. 17.
파이썬을 이용하여 10년치 재무제표 가져오기 - 4. 코드 개선하기 지난번 포스트까지 DART(전자공시)에서 10년치 제무재표 데이터를 가져오는 파이썬 코드를 작성했습니다. 2021.05.15 - [파이썬/Python Project] - 파이썬을 이용하여 10년치 재무제표 가져오기 - 3. 손익계산서, 현금흐름표 가져오기 파이썬을 이용하여 10년치 재무제표 가져오기 - 3. 손익계산서, 현금흐름표 가져오기 지난 포스트에 이어서 손익계산서와 현금흐름까지 10년치 데이터를 가져와 보도록 하겠습니다. 2021.05.14 - [파이썬/Python Project] - 파이썬을 이용하여 10년치 재무제표 가져오기 - 2. 재무상태표 가 dotsnlines.tistory.com 그런데, 문제가 생겼습니다. DART에서 받은 데이터가 회사별로 양식이 다 다르네요... 삼성전자로 코드를.. 2021. 5. 16.
파이썬을 이용하여 10년치 재무제표 가져오기 - 2. 재무상태표 가져오기 지난 포스트에서 DART(전자공시시스템)의 API를 통해 10년치 재무제표 데이터를 가지고 왔습니다. 2021.05.13 - [파이썬/Python Project] - 파이썬을 이용하여 10년치 재무제표 가져오기 - 1. Dart(전자공시)에서 10년 재무제표 데이터 가져오기 파이썬을 이용하여 10년치 재무제표 가져오기 - 1. Dart(전자공시)에서 10년 재무제표 데이터 가져 주식투자를 하다보면 재무제표를 확인해야 하는 경우가 있습니다. 증권사에서 제공하는 데이터도 유용하지만, 좀 더 깊이있게 기업을 분석하기 위해서는 10년 정도의 데이터를 확인하는 것이 dotsnlines.tistory.com 가져온 데이터는 항목이 너무 많아서 분석이 어렵습니다. 분석을 할 수 있도록 필요한 항목만 빼내서 보기좋게 .. 2021. 5. 14.
파이썬을 이용하여 10년치 재무제표 가져오기 - 1. Dart(전자공시)에서 10년 재무제표 데이터 가져오기 주식투자를 하다보면 재무제표를 확인해야 하는 경우가 있습니다. 증권사에서 제공하는 데이터도 유용하지만, 좀 더 깊이있게 기업을 분석하기 위해서는 10년 정도의 데이터를 확인하는 것이 좋은것 같습니다. 유료로 제공하는 사이트도 있다고 하는데, 제가 워낙 돈 쓰는걸 싫어하는 성격이라 파이썬으로 만들어 보려구 합니다. 마침 Dart에서 API를 제공해 준다는 사실을 알았습니다. 그리고 'dart_fss'라는 모듈을 누가 친절히 만들어 주셨네요. 요롷게 이용하시면 됩니다. 아래 사이트를 참고하시면 좀 더 많은 정보를 찾을 수 있습니다. pypi.org/project/dart-fss/ dart-fss Web-scraping http://dart.fss.or.kr pypi.org 다음 포스트부터는 DART(전자공시.. 2021. 5. 13.
엑셀 VBA(매크로) - 엑셀 외부링크 자동 제거 방법 https://cafe.naver.com/111coding/44?tc=shared_link 파이썬을 10분만에 배우는 방법프로그램밍 언어를 공부하는 것은 외국어를 배우는 것과 상당히 흡사합니다. 우리는 대체로 초등학교 3년, 중학교 3년, 고등학교 3년 최소 9년은 영어를 배웁니다. 하지만,...cafe.naver.comVBA를 이용해서 자동으로 외부링크를 삭제할 수 있습니다. 엑셀을 사용하다 보면 데이터를 다른 파일에서 가져오는 경우가 있습니다. 메뉴에서 "데이터>>연결편집" 으로 가서 "연결 끊기(B)"를 클릭해서 연결을 제거할 수도 있지만, 연결 끊기가 안되거나 자동으로 연결을 제거해야 할 경우가 있습니다. VBA를 사용해서 외부연결을 끊는 방법입니다. 개발도구 메뉴에서 Visual Basic 메뉴.. 2021. 5. 4.