안녕하세요. 오늘은 월별 주가를 DB화해보겠습니다.
앞에서는 DART의 재무 제표 데이터를 올렸는데요, 월별 주가를 올려서 월별 주가도 같이 분석한다면 좀 더 좋은 종목을 찾는데 도움이 되기 때문입니다.
본격적인 설명에 앞서, 절대 어떤 종목을 추천하기 위한 글이 아니며, 본 글로 인해 투자한 종목의 손실에 대해서는 절대 누구도 책임지지 않는다는 것을 기억해주시기 바랍니다.
데이터의 정확성 역시 일차적으로는 검토했지만, 데이터 수집 시점이나 과정에서 발생한 실수로 부정확할수도 있으니 양해바랍니다.
오늘 올린 월별 주가 데이터는 2019년 1월부터 2021년 6월까지입니다. (2년 6개월치)
주의할 점은 일별주가가 아닌, 월별주가라는 점입니다.
일별주가 데이터의 경우 데이터 양이 많아 공유하고 DB화하는 과정이 쉽지 않습니다.
데이 트레이딩이나 단기 트레이딩이 아니라면 월별 주가 데이터로도 충분히 투자 종목 분석에 유용하게 사용할 수 있습니다.
월별주가의 특징부터 간단히 설명드리면, 일별 주가 데이터를 월별로 집계한 것입니다. '평생 필요한 데이터 분석' 책에서는 월별주가에 대해 아래와 같이 설명을 하고 있습니다. 참고하기 바랍니다.
여기서는 앞에서 생성한 DB_DTECH 데이터베이스에 HIST_YM이라는 신규 테이블을 만들어 월별 주가 데이터를 올릴 예정입니다. (평생 필요한 데이터 분석에서 월별주가 테이블은 HISTORY_YM입니다. 일부러 다른 테이블을 사용해 평생 필요한 데이터 분석의 연습 환경을 보존합니다.)
만약에 MySQL과 DB_DTECH라는 DB를 생성하지 않은 환경이라면 앞에 글을 참고해 환경을 먼저 만들어주세요.
https://sweetquant.tistory.com/263?category=1163308
SQL 툴로 DB_DTECH에 접속해 SQL 창을 열어 아래 SQL로 HIST_YM이라는 월별주가 테이블을 먼저 생성합니다. (여기서는 SQL툴로 DBeaver를 사용했습니다. DBeaver 설치 과정 역시 위의 링크된 블로그 글을 참고해주세요.)
CREATE TABLE DB_DTECH.HIST_YM (
STK_CD varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '종목코드',
YM varchar(6) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '년월',
O_PRC decimal(18,3) DEFAULT NULL COMMENT '시작가',
H_PRC decimal(18,3) DEFAULT NULL COMMENT '고가',
L_PRC decimal(18,3) DEFAULT NULL COMMENT '저가',
C_PRC decimal(18,3) DEFAULT NULL COMMENT '종가',
VOL decimal(18,3) DEFAULT NULL COMMENT '거래량',
PRIMARY KEY (STK_CD,YM),
KEY IX_HIST_YM_01 (STK_CD,YM,H_PRC,C_PRC)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='월별주가';
이제 테이블을 생성했으면, 월별주가 데이터를 올릴 차례입니다.
아래 압축 파일을 받으면, 2019년 1월부터 2021년 6월까지의 종목별 월별주가 데이터가 CSV 파일로 들어 있습니다.
위의 파일을 다운로드 한 후에 압축을 풀어주세요. 그 다음에는 DBeaver를 이용해 다운 받은 CSV 파일을 앞에서 만든 HIST_YM 테이블에 밀어 넣을 차례입니다.
DBeaver를 실행 한 후에, [그림 -2]와 같이 Database Navigator 창에서 새로 만든 HIST_YM 테이블을 찾아 마우스 우클릭 후에 데이터 가져오기 기능을 선택합니다.
[그림-3]과 같이 CSV를 선택한 후에 다음(N) 버튼을 클릭합니다.
아래 [그림-4]와 같이 테이블에 올릴 파일을 선택하는 창이 나오면 이 글에서 다운 받아 압축을 풀어놓은 파일을 선택해주세요.
아래 [그림-5]와 같은 창을 통해, Source(원본)가 YM_STK_202107060806.csv 파일이고 Target(대상)이 db_dtech.hist_ym인 것을 확인합니다 Source의 데이터를 Target으로 밀어 넣는다는 걸 알 수 있습니다.
컬럼 구분자가 콤마(,)로 되어 있는지도 확인해주세요. 문제 없다면, 다음을 클릭해서 넘어갑니다.
아래 [그림-6]과 같이 1번 부분을 확장해서 Source의 필드와 Target의 컬럼의 Mapping 상태를 확인합니다. 그림의 2번 부분과 같이 existing 상태면 문제 없습니다. 다음을 눌러주세요.
위 [그림-6]이후 나오는 화면에서는 다음(Next)이나 시작(Start) 버튼을 눌러서 계속 넘어가다 보면 업로드가 진행됩니다.
모든 업로드가 완료되었다면, DB_DTECH의 SQL창에서 아래와 같이 SQL을 실행해봅니다. 삼성전자(005930)의 월별주가 데이터를 조회하는 SQL입니다.
SELECT T1.*
FROM DB_DTECH.HIST_YM T1
WHERE T1.STK_CD = '005930';
[결과]
STK_CD YM O_PRC H_PRC L_PRC C_PRC VOL
======== ======== =========== =========== =========== =========== ===============
005930 201901 39400.000 47050.000 36850.000 46150.000 301783852.000
005930 201902 46650.000 47550.000 44250.000 45100.000 194923203.000
005930 201903 46000.000 47000.000 43100.000 44650.000 223260605.000
… 생략 …
오늘은 여기까지입니다. 다음 글에서는 월별주가 데이터를 분석해보도록 하겠습니다.
감사합니다.
위와 같이 주식 데이터를 마음대로 분석해볼 수 있는 SQL을 공부하고 싶다면 아래 책을 참고해주세요~!
※ 책 소개: https://sweetquant.tistory.com/243
※ 책 미리보기: https://sweetquant.tistory.com/257
※ 완전판 E-Book
▶ 유페이퍼: https://www.upaper.net/ryu1hwan/1142997
▶ 알라딘: https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=273701425
▶ Yes24: http://www.yes24.com/Product/Goods/102264444?OzSrank=1
'데이터분석 > D-Tech 데이터로 하는 재테크' 카테고리의 다른 글
10년에 한 번 온다는 기회! - 바닥은 어디? (0) | 2021.07.24 |
---|---|
지수ETF는 이평선을 타고? feat. 주식시장에서 살아남는 심리 투자 법칙 (0) | 2021.07.22 |
반전의 긴 아래 꼬리 음봉??? (0) | 2021.07.22 |
21년1분기 영업이익과 주가변화 (0) | 2021.07.06 |
상따의 확률은? (1) | 2021.07.01 |
2021년 1분기 영업이익률 Top종목 (0) | 2021.06.28 |
2021년 1분기 영업이익 증가 종목 찾기 (0) | 2021.06.25 |
2021년 1분기 DART 재무제표 데이터베이스화하기 (0) | 2021.06.23 |