일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 이력서 첨삭
- 커리어전환
- 경력 기술서
- 데이터 사이언티스트
- 코딩테스트
- 자기소개서
- pandas
- 사이킷런
- 퀀트
- 파이썬
- 주식데이터
- 랜덤포레스트
- 주가데이터
- 퀀트 투자 책
- 베이지안 최적화
- 판다스
- 데이터사이언스
- 하이퍼 파라미터
- 데이터분석
- 하이퍼 파라미터 튜닝
- AutoML
- 주요 파라미터
- 경력기술서 첨삭
- 데이터 사이언스
- 파라미터 튜닝
- sklearn
- 데이터사이언티스트
- 머신러닝
- 대학원
- 데이터사이언스학과
- Today
- Total
목록퀀트 투자 (30)
GIL's LAB
개요 이번 포스팅 시리즈에서는 전자공시 시스템 (DART)에 등록되는 기업공시를 API를 이용하여 수집하는 방법을 소개하고, 모든 기업의 재무제표, 배당정보, 기업정보 등을 수집하겠습니다. 이번 포스팅 (1) 환경 설정에서는 관련 패키지인 OpenDartReader 설치와 인증키를 발급받는 방법에 대해서 알아보겠습니다. 이번 포스팅부터는 책에서 사용하는 논조와 맞추기 위해서, 가능하면 존댓말을 사용하겠습니다. API 인증키 발급 Open DART를 사용하려면 API 인증키를 발급받아야 합니다. 먼저, Open DART 홈페이지 (https://opendart.fss.or.kr/)에 접속합니다. 그러면 아래 그림과 같은 화면이 나오는데, 여기서 박스로 표시한 인증키 신청 버튼을 누릅니다. 인증키 신청을 누..
개요 이번 실험에서는 골든크로스가 발생하면 주가가 상승하고, 데드크로스가 발생하면 주가가 하락하는지를 확인해보고자 한다. 먼저, 골든크로스와 데드크로스가 무엇인지 설명하자. 골든크로스와 데드크로스는 모두 이동평균선이 교차하는 지점이다. 골든크로스는 단기 이동 평균선이 올라가고 장기 이동 평균선이 내려가면서 두 이평선이 교차하는 것으로, 최근 주가가 과거보다 상승하고 있다는 신호로 알려져 있다. 반대로, 데드크로스는 장기 이동 평균선이 올라가고 단기 이동 평균선이 내려가면서 두 이평선이 교차하는 것으로, 최근 주가가 과거보다 하락하고 있다는 신호로 알려져있다. 이동평균선 혹은 이평선은 특정 기간동안의 평균 주가를 의미하며, 5일, 10일 이평선을 보통 단기 이동 평균선, 60일, 120일 이평선을 중장기 ..
개요 이번 실험에서는 증권사 리포트를 참고하여 투자했을 때 얻는 기대 수익을 계산해볼 것이다. 구체적으로 확인해보고자 하는 내용은 아래와 같다. 리포트의 평가 의견 분포 확인하기 리포트에 자주 등장하는 기업 확인하기 리포트의 의견에 따라 구매했을 때 얻게될 기대 수익 계산하기 리포트에서 언급하는 적정 주가를 도달하는데 소요되는 시간 계산하기 어느 증권사의 의견이 잘 맞는지 확인하기 실험 데이터 실험 데이터는 2016년 9월 1일부터 2021년 8월 31일까지의 코스피와 코스닥 종목의 주가 데이터 (수집 방법은 여기 참고)와 요약된 증권사 리포트 (수집 방법은 여기 참고)를 사용한다. 실험 내용 데이터 준비 및 전처리 먼저 실험에 필요한 모듈을 불러오고, 기본적인 세팅을 한다. # 모듈 불러오기 impor..
이번 포스팅에서는 이전 포스팅에서 소개한 Cybos Plus를 가지고 분틱 코스피/코스닥 데이터를 수집하는 방법을 소개한다. 이 방법을 바탕으로 수집한 데이터는 다양한 퀀트 실험에 활용할 예정이다 (일별 데이터 수집 내용과 거의 중복되지만, 이전 포스팅을 보고 이해하고 이 포스팅을 보긴 힘들 것 같아서 복붙을 했다). 가장 먼저, Cybos Plus를 실행해서 로그인한다. 그리고나서 주피터를 32bit 환경에서 관리자권한으로 실행한다. 즉, 아나콘다 프롬프트를 관리자권한으로 실행한 뒤, 아래 명령어를 순차적으로 입력하여 주피터를 실행한다. set CONDA_FORCE_32BIT=1 conda activate py36_32 jupyter notebook 당연하지만, 이전 포스팅에서 py36_32 환경을 구..
개요 이번 실험에서는 주가가 상승하기 전에 보이는 새로운 시계열 패턴을 찾아보고자 한다. 그러니까 대표적인 주가 상승 패턴 중 하나인 역헤드엔숄더 패턴처럼, 주가가 상승하기 전에 보이는 저런 패턴들을 찾는 것이 이번 실험의 목표이다. 즉, 주가가 크게 오르기 전의 주가 데이터와 그렇지 않은 주가 데이터를 가지고, 주가가 크게 오르기 전의 주가 데이터에서만 주로 발생하는 패턴을 찾으면 되는데, 이 패턴은 결국 시계열 분류에서 사용되는 쉐이플릿 개념과 동일하다. 쉐이플릿에 대한 설명은 여기를 참고하기 바란다. 실험 내용 실험 내용은 심플하다. 주가가 크게 오르기 전의 주가 데이터와 그렇지 않은 주가 데이터로 주가 데이터를 분할한 다음에, 쉐이플릿을 찾으면 된다. 말로 쓰니 내용이 어려우니, 코드를 보며 이해..
* 이번 실험부터는 실험 설계, 실험 코드, 실험 결과를 하나의 포스팅에 정리합니다. 따로따로 하다보니 가독성만 안 좋아지는 듯 하네요. 개요 일반적으로, EPS, ROE, 순이익률, 영업이익률은 높을수록 투자할 가치가 있고, PER, PBR은 낮을수록 투자할 가치가 있다고 알려져 있다. 그래서 이번 실험에서는 이전 포스팅에서 수집한 투자지표를 가지고 투표했을 때의 효과에 대해 분석한다. 단, 주의해야할 사항으로는 각 지표는 현재 분기가 끝난 다음에나 알 수 있다는 것이다. 예를 들어, 글을 쓰고 있는 시점이 2021년 4분기지만, 4분기 실적은 당연히도 4분기가 끝난 다음에 나온다. 그것도 바로 나오는 것이 아니고, 1-3분기 보고서는 +45일, 4분기는 +90일까지 제출을 하면 된다. 따라서 이번 실..
이번 포스팅에서는 세 번째 실험 결과를 해석하고, 이에 따른 백테스팅을 진행하도록 하자. 실험 설계를 보고 오면 이해가 좀 더 쉬울 듯 하다. 실험 결과 정리 먼저 실험 결과의 raw 데이터는 아래와 같다. MAE 분포를 히스토그램으로 먼저 확인하자. 코스피와 코스닥 종목 모두 MAE가 0 ~ 4 정도의 값에서 왔다갔다하고, 검정을 해보진 않았지만 평균 2 정도의 정규 분포를 따르는 것 같다. 라벨이 종목의 등락폭(%)이라는 것을 감안했을 때, 오차가 2라는 것은 등락 자체를 틀리게 맞추는 경우도 많다고 해석할 수 있을 듯 하다. 결국 단타 예측은 쉽지 않다는걸 다시 한 번 확인한다. lag의 분포도 확인해보자. 예상한대로 lag가 1인 경우가 대다수를 차지하는 것을 확인했다. 결국 전날 종가를 가지고 ..
본 포스팅에서는 종목별로 현금흐름표에서 주요 지표를 뽑아내서 저장하도록 한다. 투자 시 현금흐름표에서 반드시 확인해야 할 사항은 세 가지이다. 영업활동 현금흐름: 기업의 영업활동으로 인한 현금흐름으로 양수여야 함 투자활동 현금흐름: 장비, 기계, 부동산 등을 구입하는 유무형 자산의 취득과 처분에 관련된 현금흐름으로, 정상적인 기업은 이 항목이 음수이지만, 회계상의 이유로 양수가 나오는 경우도 있음 재무활동 현금흐름: 금융 기관으로부터 돈을 빌리거나 갚은 것을 말하며, 음수는 돈을 갚은 것을 의미하고 양수는 돈을 빌린 것을 의미함 본 포스팅에서는 현금흐름표에서 저 세가지 항목을 파이썬을 이용하여 추출하도록 한다. 재무정보 다운로드 가장 먼저, Open Dart에 접속하여, 재무정보를 일괄다운로드하자. 링크..
본 포스팅에서는 투자시에 자주 참고하게 되는 EPS, PER, 영업이익률 등의 투자지표를 크롤링하는 방법을 소개한다. 먼저, 아이투자(http://www.itooza.com/)에 접속하자. 접속하면 아래와 같은 화면을 볼 수 있다. 빨간 박스로 표시한 검색창에 관심있는 종목명 혹은 종목코드를 검색해보도록 하자. 여기서는 예제로 SK하이닉스를 검색하였다. 검색하면 아래와 같은 화면을 볼 수 있다. 보다시피, SK하이닉스의 다양한 투자지표가 테이블 형태로 정리된 것을 볼 수 있다. 본 포스팅에서는 저 테이블을 크롤링할 것이다. 다만, 투자지표가 컬럼명으로 오는 것이 추후 분석에 편할 것 같아 전치를 시켜서 저장하도록 한다. 자, 그러면 이제 파이썬으로 저 테이블을 크롤링해보자. 먼저 필요한 모듈을 다음과 같..
이번 포스팅에서는 지난 포스팅에서 설계한 실험을 수행하기 위한 코드를 소개한다. 사실 실험 1의 코드와 매우 유사하기에 코드를 작성하고 구동하는데 매우 적은 시간이 소요되었다. 그러면 곧바로 코드 소개로 넘어가자. 먼저, 필요한 모듈을 임포트한다. 이전 코드와 다르게 MAE를 임포트하였고, 회귀모델만 임포트하였다. import os import pandas as pd import numpy as np from sklearn.metrics import mean_absolute_error as MAE from sklearn.linear_model import LinearRegression as LR import warnings 그리고 워닝을 무시하고, 데이터가 있는 경로로 설정한다. # 주가 데이터가 있는 ..