일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
목록분류 전체보기 (127)
GIL's LAB

넘파이의 가장 큰 장점으로 매우 빠른 배열 간 연산을 꼽을 수 있습니다. 배열 간 연산이란 크기가 같은 두 배열에 대해, 같은 위치에 있는 요소끼리의 수행하는 연산을 의미합니다. 예를 들어, 크기가 n인 두 배열 x = (x1, x2, ..., xn)와 y = (y1, y2, ..., yn)에 대해 임의의 연산자 ◇를 사용한 배열 연산은 다음과 같이 정의됩니다. x ◇ y = (x1 ◇ y1, x2 ◇ y2, ..., xn ◇ yn) 넘파이는 C로 작성되었기에, 파이썬의 반복문을 사용하는 것보다 훨씬 빠른 속도의 배열 연산을 자랑합니다. 이 포스팅에서는 넘파이의 배열 연산에 대해 알아보겠습니다. 유니버설 함수 유니버설 함수(universal functions, ufuncs)는 +, -, *, /, ** ..

개요 이번 실험에서는 낙폭이 심했던 주가는 다시 평균 수준으로 돌아온다는 전략인 평균 회귀 전략을 검증해보겠습니다. 이 그림에서 보듯이, 이 전략은 현 시점을 기준으로 n1 영업일 이전을 과거 시점, n2 영업일 이후를 미래 시점이라 했을 때, n1일 영업일동안 최대 m1(%) 하락한 주가는 n2일 영업일동안 최대 m2(%) 상승할 것이라는 가정에 기반한 전략입니다. 여기서 과거 시점과 미래 시점의 주가를 그대로 사용하는 것이 아니라, 그 기간 내에 최댓값을 사용하는 것에 주목해야 합니다. 다시 말해, 과거에 m1만큼 크게 하락했으면 비슷한 기간 내에 m1과 비슷한 수준으로 다시 오를 것이라 가정하는 것이고 만족할만큼 주가가 회복되면 바로 매도하는 것입니다. 데이터 준비 및 환경 설정 길이가 300이상인..

개요 이번 실험에서는 캔들 패턴을 분석하여 현재 시장에서 매수와 매도 세력 중 어느 세력이 더 강한지를 판단하여 투자하는 전략을 검증해보겠습니다. 굉장히 많은 종류의 캔들 패턴이 있지만, 상승장악형, 하락장악형, 적삼병, 흑삼병, 샛별형이라는 다섯 개의 캔들 패턴을 검증하고, 이번 실험에서는 상승장악형과 하락장악형만 검증해보겠습니다. 구체적으로 각 패턴이 등장했는지 여부를 확인하고, 등장일의 주가와 5, 20, 60, 120 영업일 이후 주가를 비교해보겠습니다. 데이터 준비 이번 실험에는 주가 데이터만 필요합니다. FinanceDataReader를 이용하여 2011년부터 2021년까지의 전 종목의 주가 데이터를 수집했습니다. 주가 데이터를 올리려고 했더니 파일 크기 제한이 있네요. 이제 데이터를 불러옵니..

회사 일과 집필로 바빠서 오랜만에 포스팅입니다. 오늘 포스팅에서는 현업에서 굉장히 자주 맞닥뜨리는 문제인데 교과서에서는 다룰 수 없는 문제에 대해 이야기해보겠습니다. 파라미터 최적화 문제 먼저, 파라미터 최적화 문제는 어떤 성능을 최대화할 수 있는 파라미터를 설정하는 문제입니다. 위 그림에서 x축이 파라미터이고 y축이 성능을 나타냅니다. 즉, 우리의 목표는 성능을 최대화하는 x*를 찾는 것입니다. 이 문제는 다음과 같은 간단한 수리 모형으로 표현할 수 있습니다. 제약이 없어서 함수 f가 어지간히 복잡하지 않는한 해를 구하기 어려운 문제가 아닙니다. 이러한 문제는 머신러닝의 하이퍼 파라미터 튜닝뿐만 아니라, 다양한 분야에서 발생합니다. 예를 들어, 제조 분야에서는 “수율을 최대화 혹은 불량을 최소화하는 생..

개요 이번 포스팅에서는 OpenDartReader를 이용하여 코스피/코스닥 기업의 주요 재무지표를 수집하고 가공하겠습니다. 구체적으로 수집 및 가공할 재무지표는 다음과 같습니다. 자산총계 부채총계 자본총계 매출액 영업이익 당기순이익 부채비율 영업이익증가율 매출액증가율 당기순이익 증가율 매출액 상태 영업이익 상태 당기순이익 상태 ROA ROE 관련 패키지 설치와 사용 방법은 이전 포스팅을 참고해주시기 바랍니다. finstate 메서드 finstate 메서드는 기업의 재무 정보를 가져오는데 사용하는 메서드로, 다음과 같이 사용합니다. finstate(corp, bsns_year, reprt_code) corp: 기업명 bsns_year: 사업연도 reprt_code: 보고서 유형 ('11011': 사업보고서..

개요 이번 포스팅에서는 OpenDartReader를 이용하여 코스피/코스닥 기업의 주당 배당금을 수집해보겠습니다. 주당 배당금이 높으면 그 자체로 투자할 가치가 있으며 (물론 배당금에 비해 주가 하락이 심한 경우에는 전혀 그렇지 않습니다), 배당금이 높은 기업일수록 주가 상승률이 높다라는 관계가 있다고 합니다 (역시 자세한 내용은 실험을 통해 검증하겠습니다). 관련 패키지 설치와 사용 방법은 이전 포스팅을 참고해주시기 바랍니다. report 메서드 OpenDartReader의 객체의 report 메서드는 사업보고서의 주요정보를 가져오며, 주요 인자는 다음과 같습니다. dart.report(corp, key_word, bsns_year, reprt_code) 여기서 dart는 임의의 OpenDartRead..

개요 이번 포스팅 시리즈에서는 전자공시 시스템 (DART)에 등록되는 기업공시를 API를 이용하여 수집하는 방법을 소개하고, 모든 기업의 재무제표, 배당정보, 기업정보 등을 수집하겠습니다. 이번 포스팅 (1) 환경 설정에서는 관련 패키지인 OpenDartReader 설치와 인증키를 발급받는 방법에 대해서 알아보겠습니다. 이번 포스팅부터는 책에서 사용하는 논조와 맞추기 위해서, 가능하면 존댓말을 사용하겠습니다. API 인증키 발급 Open DART를 사용하려면 API 인증키를 발급받아야 합니다. 먼저, Open DART 홈페이지 (https://opendart.fss.or.kr/)에 접속합니다. 그러면 아래 그림과 같은 화면이 나오는데, 여기서 박스로 표시한 인증키 신청 버튼을 누릅니다. 인증키 신청을 누..
운이 좋게도 블로그를 시작한지 약 한 달만에, 출판사로부터 블로그 내용을 정리해서 책으로 내보자는 연락을 받았다. 사실 주식 전문가가 아니고, 블로그도 재미있는 실험을 해보자는 취지였기 때문에 망설여졌지만, 책을 준비하면 내 브랜딩도 될 것 같고, 블로그에 넣을 내용도 더 열심히 준비할 것 같고, 인세도 크진 않겠지만 받을 수 있을 것 같아서 하기로 했다! "파이썬을 활용한 퀀트 투자 전략 검증 및 수립"이 책의 가제고, 책에서는 블로그에서와 마찬가지로 잘 알려진 개념들을 실제 데이터를 가지고 검증해보는 여러 프로젝트를 다룰 예정이다. 최종 목표는 책을 읽은 독자가 자신이 생각하는 퀀트 전략을 검증해볼 수 있게 하는 것이다. 학부때 수학강사와 과외, 그리고 박사과정때 했던 수 많은 머신러닝 강의 짬바(?..

개요 이번 실험에서는 골든크로스가 발생하면 주가가 상승하고, 데드크로스가 발생하면 주가가 하락하는지를 확인해보고자 한다. 먼저, 골든크로스와 데드크로스가 무엇인지 설명하자. 골든크로스와 데드크로스는 모두 이동평균선이 교차하는 지점이다. 골든크로스는 단기 이동 평균선이 올라가고 장기 이동 평균선이 내려가면서 두 이평선이 교차하는 것으로, 최근 주가가 과거보다 상승하고 있다는 신호로 알려져 있다. 반대로, 데드크로스는 장기 이동 평균선이 올라가고 단기 이동 평균선이 내려가면서 두 이평선이 교차하는 것으로, 최근 주가가 과거보다 하락하고 있다는 신호로 알려져있다. 이동평균선 혹은 이평선은 특정 기간동안의 평균 주가를 의미하며, 5일, 10일 이평선을 보통 단기 이동 평균선, 60일, 120일 이평선을 중장기 ..

이번 포스팅에서는 Pandas를 효율적으로 사용하는데 꼭 필요한 함수인 apply 메서드에 대해서 알아보도록 하자. 개요 공식 문서에서는 apply 메서드를 다음과 같이 소개하고 있다. pandas.DataFrame.apply DataFrame.apply(func, axis=0, raw=False, result_type=None, args=(), **kwargs) Apply a function along an axis of the DataFrame. Objects passed to the function are Series objects whose index is either the DataFrame’s index (axis=0) or the DataFrame’s columns (axis=1). By d..