일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 주식데이터
- 데이터사이언스학과
- 주요 파라미터
- 데이터사이언티스트
- 데이터분석
- 경력 기술서
- 경력기술서 첨삭
- 커리어전환
- AutoML
- 대학원
- 데이터 사이언스
- sklearn
- 퀀트 투자 책
- 판다스
- 파라미터 튜닝
- 코딩테스트
- 데이터사이언스
- 하이퍼 파라미터
- 데이터 사이언티스트
- 사이킷런
- 하이퍼 파라미터 튜닝
- 베이지안 최적화
- pandas
- 자기소개서
- 퀀트
- 파이썬
- 랜덤포레스트
- 이력서 첨삭
- 머신러닝
- 주가데이터
- Today
- Total
목록퀀트 투자 (30)
GIL's LAB
이번 포스팅에서는 이전 포스팅에서 설명한 이전 종가를 가지고 미래 종가를 예측하는 파이썬 코드를 설명한다. 실험 결과는 다음 포스팅에서 정리하도록 한다. 먼저, 실험에 필요한 모듈을 불러오고 워닝을 무시한다. import os import pandas as pd import warnings import itertools from statsmodels.tsa.stattools import adfuller from statsmodels.tsa.stattools import grangercausalitytests as GCT os.chdir(r"C:\Users\Gilseung\Desktop\Jupyter\GILLAB\QUANT_DATA\201609~202108\주가") warnings.filterwarning..
개요 이번 실험에서는 지난 실험 실패를 교훈삼아 종가를 사용하는대신 종가의 등락폭을 사용하여 실험을 진행하고자 한다. 실험 구성은 실험 1과 거의 유사하지만, 해석을 위해서 또 어차피 회귀모델 성능이 좋을 것이라 예상되니 회귀모델만 사용하도록 한다. 또한, 이번에는 실험 결과를 바탕으로 다양한 백테스트를 추가할 예정이다. 백테스트는 (4) 백테스트라는 제목으로 추후에 포스팅하겠다. 준비물 코스피/코스닥 종목별 종가의 등락폭 데이터 (기간: 2016년 9월 1일 ~ 2021년 8월 31일) 실험 목표 이전 종가의 등락폭으로 미래 종가의 등락폭 예측이 어느정도 가능해보이는 종목을 파악한다. 종목별로 적절한 예측 모델이 무엇인지 파악한다. 종목별로 적절한 lag를 파악한다. lag는 결국 아래 그림과 같이 입..
드디어 첫 번째 실험이 끝났고, 실험 결과를 보자마자 뭔가 잘못되었다는 걸 알았습니다. 등락이 심하지 않은 종목의 경우에는 당연히 다음날 종가를 오늘의 종가로 예측하더라도 퍼센트 오차가 크기 어렵다는걸 생각을 못했네요. 그래서 원래 생각했던 것에 비해 MAPE가 매우 작았고, 코스피 종목까지만 실험을 진행했습니다. 다음 실험에서는 등락폭을 예측하도록 모델링을 해야겠네요. 좋은 것을 배웠다고 생각하고, 실험 결과를 정리해보겠습니다. 망한 실험도 실험이니까요...ㅜㅜ 실험 결과 정리 첫 번째 실험 결과 raw 데이터는 아래와 같습니다. 이제 몇 가지를 확인해볼게요. 먼저, 가장 우수한 성능을 보였던 모델과 lag의 분포를 확인해보겠습니다. 모델은 신경망과 선형회귀가 각각 1, 2등을 했습니다. 바로 이전 시..
본 포스팅에서는 한국경제신문에서 제공하는 한경컨센선스에 업로드된 2016년 9월 1일부터 2021년 8월 31일까지의 증권사 리포트를 크롤링하는 방법을 소개한다. 정확히는 리포트 파일이 아니고, 리포트 요약 자료를 크롤링하는 방법을 소개한다. 한경컨센선스 (http://consensus.hankyung.com/)에 먼저 접속하면 아래와 같은 페이지를 볼 수 있다. 기업 리포트, 산업 리포트, 시장 리포트 등 다양한 리포트를 볼 수 있다. 본 포스팅에서는 기업 리포트에 초점을 두도록 한다. 기업 REPORT 아이콘을 클릭한 뒤, 상단에 날짜를 2016년 9월 1일부터 2021년 8월 31일까지로 바꾸면 아래와 같은 화면을 보게 된다. 먼저 예시로서 지금보는 페이지를 크롤링해서 저장하도록 하자. 가져올 부분..
두 번째 실험에서는 종목 간 선후행 관계가 존재하는지를 확인하고자 한다. 가령, 한 종목의 주가가 올라가면 다른 종목의 주가가 뒤따라서 올라가는 그러한 관계를 확인하고자 한다. 그럼 실험 대상과 방법에 대해 알아보자. 실험 대상 종목: 2016년 9월 1일부터 2021년 8월 31일까지 주가 데이터가 있는 코스피 종목 (즉, 2016년 9월 1일 이전에 상장해서 현재까지 상장폐지되지 않은 종목) 구간: 2016년 9월 1일 ~ 2021년 8월 31일 (이하 전구간) / 2020년 9월 1일 ~ 2021년 8월 31일 (이하 최신구간) 실험 이해를 위한 배경 지식 시계열의 정상성 (stationarity)이란 시계열의 확률적인 성질들이 시간의 흐름에 따라 변하지 않는다는 것을 의미하며, 정상 시계열은 정상..
본 포스팅에서는 금융 데이터를 수집하는데 많이 사용되는 파이썬 패키지인 FinanceDataReader를 이용하여, 주식 및 다양한 경제 지표 데이터를 수집하는 방법을 소개한다. API나 크롤링을 사용하는 것에 비해, 굉장히 손쉽게 수집할 수 있어, 일별 데이터만 수집한다면 이 패키지를 사용하는 것을 추천한다 (추후에 반드시 API를 이용하여 분/틱 데이터 수집하는 것을 공유해야겠다..) 패키지 설치 Anaconda prompt를 실행하여 pip install finance-datareader를 입력하여 아래와 같이 패키지를 설치한다. 환율 데이터 수집 환율 데이터는 fdr.DataReader(환율, 시작날짜, 종료날짜)를 입력하여 수집할 수 있다. 단, 종료날짜를 입력하지 않으면 시작날짜부터 현재날짜까..
이번 포스팅에서는 이전 포스팅에서 설명한 이전 종가를 가지고 미래 종가를 예측하는 파이썬 코드를 설명한다. 실험 결과 및 백테스팅 결과는 다음 포스팅에서 정리하도록 한다. 먼저 실험에 필요한 모듈을 다음과 같이 임포트한다. import os import pandas as pd import numpy as np from sklearn.metrics import mean_absolute_percentage_error as MAPE from sklearn.tree import DecisionTreeRegressor as DTR from sklearn.linear_model import LinearRegression as LR from sklearn.ensemble import RandomForestRegres..
개요 이번 실험에서는 모든 코스피 종목에 대해, 이전 종가를 가지고 미래 종가를 예측했을 때의 오차를 측정한다. 애초에 좋은 결과를 기대하는 실험이 아니기에 오히려 더 기대된다. 준비물 종목별 종가 데이터 (기간: 2016년 9월 1일 ~ 2021년 8월 31일): 실험 목표 이전 종가로 미래 종가 예측이 어느정도 가능해보이는 종목을 파악한다. 종목별로 적절한 예측 모델이 무엇인지 파악한다. 종목별로 적절한 lag를 파악한다. lag는 결국 아래 그림과 같이 입력 변수를 몇 개로 할 것인지와 직결된다. 비교 대상 lag (L): {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} model (f) - 모든 하이퍼파라미터는 sklearn의 default를 사용 Linear Regressor Decis..
이번 포스팅에서는 이전 포스팅에서 소개한 Cybos Plus를 가지고 일별 코스피/코스닥 데이터를 수집하는 방법을 소개한다. 이 방법을 바탕으로 수집한 데이터는 다양한 퀀트 실험에 활용할 예정이다. 가장 먼저, Cybos Plus를 실행해서 로그인한다. 그리고나서 주피터를 32bit 환경에서 관리자권한으로 실행한다. 즉, 아나콘다 프롬프트를 관리자권한으로 실행한 뒤, 아래 명령어를 순차적으로 입력하여 주피터를 실행한다. set CONDA_FORCE_32BIT=1 conda activate py36_32 jupyter notebook 당연하지만, 이전 포스팅에서 py36_32 환경을 구축하고 그 환경에 주피터 노트북을 설치해야만 위 명령어가 정상적으로 작동한다. 이제 본격적으로 Cybos Plus를 사용해..
이 포스팅에서는 "대신증권"이라는 증권사에서 제공하는 오픈 API인 CybosPlus를 이용하여 주식 데이터를 수집하기 위한 환경 설정 방법을 설명한다. 이전에는 네이버 금융에서 크롤링해서 사용했었는데, 네이버에서 크롤링을 차단하는 바람에 퀀트 투자를 위해서는 증권 API를 사용하는 것이 강제되었다. 증권 API를 사용하는 것이 데이터 수집은 더 쉬우나, 사용하기까지 절차가 조금 복잡하다. 실제로 필자도 수 많은 try & error를 거쳐서 성공했고, 그 과정에서 파이썬 재설치를 몇번은 했다. Step 1. 대신증권 계좌, ID, 공동인증서 만들기 당연하지만, 대신증권 계좌가 없으면 해당 오픈 API를 사용할 수 없다. 요즘에는 휴대폰으로 비대면 계좌개설이 워낙 잘되어 있기 때문에, 계좌 만드는게 어렵..