일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- sklearn
- 이력서 첨삭
- 데이터 사이언스
- 하이퍼 파라미터 튜닝
- 파라미터 튜닝
- 주요 파라미터
- 데이터사이언스
- 데이터분석
- 데이터 사이언티스트
- 코딩테스트
- 자기소개서
- 머신러닝
- 퀀트
- 파이썬
- 주가데이터
- 사이킷런
- 판다스
- 주식데이터
- pandas
- 퀀트 투자 책
- 데이터사이언티스트
- 커리어전환
- 베이지안 최적화
- 경력 기술서
- 랜덤포레스트
- 데이터사이언스학과
- 하이퍼 파라미터
- 대학원
- 경력기술서 첨삭
- AutoML
- Today
- Total
목록퀀트 투자/실험 일지 (16)
GIL's LAB
안녕하세요. 이번 포스팅에서는 대표적인 캘린더 효과 중 하나인 요일 효과를 검증해보겠습니다. 요일 효과 요일 효과 혹은 주말 효과란 월요일의 주가가 낮고 금요일의 주가가 높은 현상을 말합니다. 이러한 현상은 주말동안 발생했던 부정적인 내용의 소식이 월요일 주가에 영향을 끼치기 때문이라고 알려져있습니다. 그래서 월요일에 매수해서 금요일에 매도하기만 하면 잃지는 않는다는 속설까지 생겼고, 또 관련 기사도 많습니다 (아래 기사 참고) https://biz.chosun.com/site/data/html_dir/2015/08/19/2015081904159.html 대상 종목 실험에 사용할 주가 데이터는 2016년 1월 1일 이전에 코스피와 코스닥에 상장된 모든 기업의 2016년 1월 1일부터 2021년 1월 1일..
안녕하세요. 이번 포스팅에서는 상승 반전형 단일 캔들 패턴이 발생한 다음 날 매수하여 n (n = 10, 20, 60) 영업일 동안 보유했다가 매도했을 때의 수익률을 비교해보겠습니다. 대상 캔들 패턴 여기서 실험하고자 하는 캔들 패턴은 망치형, 역망치형, 잠자리형 세 가지 패턴입니다. 망치형 매수 신호 패턴으로, 다음 그림과 같이 캔들 몸통 아래에만 꼬리가 생기는 패턴을 말합니다. 규칙 양봉 생성: 당일 종가 > 당일 시가 고가와 종가가 같음: 당일 고가 == 당일 종가. 파라미터 꼬리 길이: (당일 시가 - 당일 저가) / 당일 저가 * 100 몸통 길이: (당일 종가 - 당일 시가) / 당일 시가 * 100 역망치형 대표적인 매수 신호 패턴으로, 다음 그림과 같이 캔들 몸통 위에만 꼬리가 생기는 패턴..
개요 이번 실험에서는 낙폭이 심했던 주가는 다시 평균 수준으로 돌아온다는 전략인 평균 회귀 전략을 검증해보겠습니다. 이 그림에서 보듯이, 이 전략은 현 시점을 기준으로 n1 영업일 이전을 과거 시점, n2 영업일 이후를 미래 시점이라 했을 때, n1일 영업일동안 최대 m1(%) 하락한 주가는 n2일 영업일동안 최대 m2(%) 상승할 것이라는 가정에 기반한 전략입니다. 여기서 과거 시점과 미래 시점의 주가를 그대로 사용하는 것이 아니라, 그 기간 내에 최댓값을 사용하는 것에 주목해야 합니다. 다시 말해, 과거에 m1만큼 크게 하락했으면 비슷한 기간 내에 m1과 비슷한 수준으로 다시 오를 것이라 가정하는 것이고 만족할만큼 주가가 회복되면 바로 매도하는 것입니다. 데이터 준비 및 환경 설정 길이가 300이상인..
개요 이번 실험에서는 캔들 패턴을 분석하여 현재 시장에서 매수와 매도 세력 중 어느 세력이 더 강한지를 판단하여 투자하는 전략을 검증해보겠습니다. 굉장히 많은 종류의 캔들 패턴이 있지만, 상승장악형, 하락장악형, 적삼병, 흑삼병, 샛별형이라는 다섯 개의 캔들 패턴을 검증하고, 이번 실험에서는 상승장악형과 하락장악형만 검증해보겠습니다. 구체적으로 각 패턴이 등장했는지 여부를 확인하고, 등장일의 주가와 5, 20, 60, 120 영업일 이후 주가를 비교해보겠습니다. 데이터 준비 이번 실험에는 주가 데이터만 필요합니다. FinanceDataReader를 이용하여 2011년부터 2021년까지의 전 종목의 주가 데이터를 수집했습니다. 주가 데이터를 올리려고 했더니 파일 크기 제한이 있네요. 이제 데이터를 불러옵니..
개요 이번 실험에서는 골든크로스가 발생하면 주가가 상승하고, 데드크로스가 발생하면 주가가 하락하는지를 확인해보고자 한다. 먼저, 골든크로스와 데드크로스가 무엇인지 설명하자. 골든크로스와 데드크로스는 모두 이동평균선이 교차하는 지점이다. 골든크로스는 단기 이동 평균선이 올라가고 장기 이동 평균선이 내려가면서 두 이평선이 교차하는 것으로, 최근 주가가 과거보다 상승하고 있다는 신호로 알려져 있다. 반대로, 데드크로스는 장기 이동 평균선이 올라가고 단기 이동 평균선이 내려가면서 두 이평선이 교차하는 것으로, 최근 주가가 과거보다 하락하고 있다는 신호로 알려져있다. 이동평균선 혹은 이평선은 특정 기간동안의 평균 주가를 의미하며, 5일, 10일 이평선을 보통 단기 이동 평균선, 60일, 120일 이평선을 중장기 ..
개요 이번 실험에서는 증권사 리포트를 참고하여 투자했을 때 얻는 기대 수익을 계산해볼 것이다. 구체적으로 확인해보고자 하는 내용은 아래와 같다. 리포트의 평가 의견 분포 확인하기 리포트에 자주 등장하는 기업 확인하기 리포트의 의견에 따라 구매했을 때 얻게될 기대 수익 계산하기 리포트에서 언급하는 적정 주가를 도달하는데 소요되는 시간 계산하기 어느 증권사의 의견이 잘 맞는지 확인하기 실험 데이터 실험 데이터는 2016년 9월 1일부터 2021년 8월 31일까지의 코스피와 코스닥 종목의 주가 데이터 (수집 방법은 여기 참고)와 요약된 증권사 리포트 (수집 방법은 여기 참고)를 사용한다. 실험 내용 데이터 준비 및 전처리 먼저 실험에 필요한 모듈을 불러오고, 기본적인 세팅을 한다. # 모듈 불러오기 impor..
개요 이번 실험에서는 주가가 상승하기 전에 보이는 새로운 시계열 패턴을 찾아보고자 한다. 그러니까 대표적인 주가 상승 패턴 중 하나인 역헤드엔숄더 패턴처럼, 주가가 상승하기 전에 보이는 저런 패턴들을 찾는 것이 이번 실험의 목표이다. 즉, 주가가 크게 오르기 전의 주가 데이터와 그렇지 않은 주가 데이터를 가지고, 주가가 크게 오르기 전의 주가 데이터에서만 주로 발생하는 패턴을 찾으면 되는데, 이 패턴은 결국 시계열 분류에서 사용되는 쉐이플릿 개념과 동일하다. 쉐이플릿에 대한 설명은 여기를 참고하기 바란다. 실험 내용 실험 내용은 심플하다. 주가가 크게 오르기 전의 주가 데이터와 그렇지 않은 주가 데이터로 주가 데이터를 분할한 다음에, 쉐이플릿을 찾으면 된다. 말로 쓰니 내용이 어려우니, 코드를 보며 이해..
* 이번 실험부터는 실험 설계, 실험 코드, 실험 결과를 하나의 포스팅에 정리합니다. 따로따로 하다보니 가독성만 안 좋아지는 듯 하네요. 개요 일반적으로, EPS, ROE, 순이익률, 영업이익률은 높을수록 투자할 가치가 있고, PER, PBR은 낮을수록 투자할 가치가 있다고 알려져 있다. 그래서 이번 실험에서는 이전 포스팅에서 수집한 투자지표를 가지고 투표했을 때의 효과에 대해 분석한다. 단, 주의해야할 사항으로는 각 지표는 현재 분기가 끝난 다음에나 알 수 있다는 것이다. 예를 들어, 글을 쓰고 있는 시점이 2021년 4분기지만, 4분기 실적은 당연히도 4분기가 끝난 다음에 나온다. 그것도 바로 나오는 것이 아니고, 1-3분기 보고서는 +45일, 4분기는 +90일까지 제출을 하면 된다. 따라서 이번 실..
이번 포스팅에서는 세 번째 실험 결과를 해석하고, 이에 따른 백테스팅을 진행하도록 하자. 실험 설계를 보고 오면 이해가 좀 더 쉬울 듯 하다. 실험 결과 정리 먼저 실험 결과의 raw 데이터는 아래와 같다. MAE 분포를 히스토그램으로 먼저 확인하자. 코스피와 코스닥 종목 모두 MAE가 0 ~ 4 정도의 값에서 왔다갔다하고, 검정을 해보진 않았지만 평균 2 정도의 정규 분포를 따르는 것 같다. 라벨이 종목의 등락폭(%)이라는 것을 감안했을 때, 오차가 2라는 것은 등락 자체를 틀리게 맞추는 경우도 많다고 해석할 수 있을 듯 하다. 결국 단타 예측은 쉽지 않다는걸 다시 한 번 확인한다. lag의 분포도 확인해보자. 예상한대로 lag가 1인 경우가 대다수를 차지하는 것을 확인했다. 결국 전날 종가를 가지고 ..
이번 포스팅에서는 지난 포스팅에서 설계한 실험을 수행하기 위한 코드를 소개한다. 사실 실험 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 그리고 워닝을 무시하고, 데이터가 있는 경로로 설정한다. # 주가 데이터가 있는 ..