본문 바로가기
투자x개발/퀀트 투자

[주가 예측 모델링] #1. 주식 데이터 불러오기 (yfinance)

by didi0di 2023. 4. 5.
728x90

앞서 2차전지 섹터 종목 분석에서 선정한 종목인 에코프로비엠 주가 예측 모델을 만들려고 한다.

 

 

[이전글] - 2차전지 주요 종목 분석 with ChatGPT 

 

[국내주식] 2차전지 주요 종목 분석 with ChatGPT

2차전지 주요 종목 : 에코프로비엠, 에코프로, LG에너지솔루션, 삼성SDI 투자 전략 : 저 BPR + 고 GP/A 인 종목 선택! 할 수 있다, 퀀트 투자! 의 신마법공식 채택. 투자 개념 : BPR : 순자산/주가 GP/A = 매

didi-universe.tistory.com

주가 예측 모델을 만들기 위해 우선 주식 데이터를 불러와야 한다.

 

python으로 주식이나 지수 데이터를 불러오는 다양한 방법이 있는데,

이번에는 Yahoo Finance의 정보를 제공해 주는 pythion 오픈 소스인 yfinance 를 사용해 주가 데이터를 불러왔다.

 

https://pypi.org/project/yfinance/

 

yfinance

Download market data from Yahoo! Finance API

pypi.org

 

늘 그렇듯 패키지 인스톨하고 사용하면 된다.

!pip install yfinance

import yfinance as yf

 

Ticker 찾기

 

원하는 종목의 주가 데이터를 불러오기 위해서는 ticker 를 알아야 한다.

ticker란, 종목 별로 쉽게 구분할 수 있게 짧게 줄여진 이름, 즉 인덱스라고 생각하면 된다.

 

 yahoo finance 홈페이지에서 지수나 종목의 ticker를 찾을 수 있다.

영문으로 치거나 구글에 ticker를 쳐보고 나오는 숫자로 찾으면 된다. 

 

에코프로비엠을 검색을 해보면 ticker 가 247540.KQ 임을 알 수 있다. (참고로 KQ 는 코스닥, KS 는 코스피임)

 

내친김에 Summary도 한 번 봐주고.

 

 

데이터 로드

 

이제 ticker를 알아냈으니, 주가 데이터를 불러올 수 있는데

2가지 방법이 있다.

 

1) history  함수 사용

 

아까 알아낸 ticker로 ticker를 생성하고,

# 1) yf.Ticker.history 사용

name = '247540.KQ'
ticker = yf.Ticker(name)
df = ticker.history(period='5y')
df

>> 	Open	High	Low	Close	Volume	Dividends	Stock Splits
Date							
2023-04-04 00:00:00+09:00	232000.0	238500.0	221500.0	224500.0	1915939	0.0	0.0

2) download  함수 사용

 

이번에는 download 함수를 이용해서 데이터를 로드했다.

맨 앞의 인자로 ticker를 바로 넣어줘도 된다.

 

파라미터도 추가해줬는데, interval 은 조회 간격을, period 는 조회 기간을 지정하는 변수이다.

** interval='1h', period='1y'  은 1시간 간격으로 1년치 데이터를 조회하겠다는 의미.

# 2)yf.download 사용

echopro_bm = yf.download("247540.KQ", interval='1h', period='1y') # 1시간 간격으로 1년치 데이터 로드
echopro_bm.head(3)

>> 	Open	High	Low	Close	Adj Close	Volume
Datetime						
2022-04-05 09:00:00+09:00	394900.0	404400.0	392900.0	399500.0	399500.0	0
2022-04-05 10:00:00+09:00	399500.0	408100.0	398200.0	408000.0	408000.0	79004
2022-04-05 11:00:00+09:00	408000.0	412600.0	407100.0	411800.0	411800.0	71275

 

start와 end로 원하는 날짜 구간도 지정 가능함.

이 밖에도 다양한 파라미터가 있다.

자세한 내용은 yfinance 블로그 참조.

https://aroussi.com/post/python-yahoo-finance

 

Reliably download historical market data from Yahoo! Finance with Python

Ever since Yahoo! Finance decommissioned their historical data API, Python developers looked for a reliable workaround. As a result, my library, yfinance, gained momentum and was downloaded over 100,000 acording to PyPi.

aroussi.com

 

주가 데이터를 불러왔으니 다음엔 차트도 그려보고, 

예측 모델링도 해보자.

 

[다음글] #2. 주가 데이터 차트 그리기

 

[주가 예측 모델링] #2. 주가 데이터 차트 그리기 (matplotlib)

이전글에서 yfinance 라이브러리를 이용해 주가 데이터를 불러왔다. [이전글] #1. 주가 데이터 불러오기 (yfinance) [주가 예측 모델링] #1. 주식 데이터 불러오기 (yfinance) 앞서 2차전지 섹터 종목 분석

didi-universe.tistory.com

 

728x90

댓글