[Python] FinanceDataReader로 주식데이터 가져오기
- Python/웹크롤링
- 2021. 8. 20.
FinanceDataReader라는 라이브러리가 있어서 소개겸 포스팅하려 합니다.
이 라이브러리를 쓰면 국내 주식, 미국 주식, 지수, 환율, 주요 암호화폐 가격 데이터를 가져올 수 있습니다.
제가 이 포스팅을 쓰는 이유는 자꾸 잊어버려서
코드를 저장하고자 쓰는 내용이라 원하는 내용이 없을 수도 있습니다.
그리고 라이브러리에서 코드를 바꿔버리거나 서비스를 중지하면 되지 않을 수 있으니
안 되시면 FinancedataReader 가이드 사이트나 Github에서 확인하시기 바랍니다.
Install
다음 코드를 파이썬 prompt나 파워쉘에서 입력해 설치를 합니다.
쥬피터에서는 맨 앞에 느낌표(!)를 붙입니다.
pip install finance-datareader
전체 종목 코드 가져오기
국내와 미국 주식 코드를 가져오려면 다음과 같이 합니다.
섹터, 업종, 대표에 대한 정보도 가져올 수 있습니다.
import FinanceDataReader as fdr
df_krx = fdr.StockListing('KRX')
국내 주식인 경우 파라미터에 표에 나온 심볼을 넣어서 원하는 데이터를 가져올 수 있습니다.
심볼 | |
KRX | KRX 전체 종목 |
KOSPI | KOSPI 종목 |
KOSDAQ | KOSDAQ 종목 |
KONEX | KONEX 종목 |
미국 주식의 심볼은 다음과 같습니다
심볼 | |
NASDAQ | 나스닥 종목 |
NYSE | 뉴욕 증권거래소 종목 |
AMEX | AMEX 종목 |
SP500 | S&P500 종목 |
개별 종목의 가격 데이터 가져오기
국내는 단축 코드를 미국은 티커로 가져올 수 있습니다.
국내 주식
파라미터에 코드와 일자를 넣어서 원하는 데이터를 가져옵니다.
df = fdr.DataReader('종목코드','시작일자','종료일자')
날짜는 필수로 입력하지 않아도 됩니다.
날짜를 입력하지 않으면 전체 날짜 데이터를 가져옵니다.
삼성전자(005930)로 예를 들면 다음과 같이 나옵니다.
df = fdr.DataReader('005930','2020')
df
위와 같이 시가, 고가, 저가, 종가, 거래량, 전일대비 데이터를 얻을 수 있습니다.
미국 주식
미국 주식은 티커로 합니다. 애플(AAPL)을 예를 들겠습니다.
df = fdr.DataReader('AAPL','2020')
df
지수 가져오기
지수도 개별 종목의 가격 데이터를 가져오는 방법과 같고 코드나 티커 대신에 심볼을 넣어서 데이터를 얻게 됩니다.
국내지수
심볼 | |
KS11 | KOSPI 지수 |
KQ11 | KOSDAQ 지수 |
KS50 | KOSPI 50 지수 |
KS100 | KOSPI 100 지수 |
KRX100 | KRX 100 지수 |
KS200 | KOSPI 200 지수 |
미국지수
심볼 | |
DJI | 다우존스 지수 |
IXIC | 나스닥 지수 |
US500 | S&P 500 지수 |
VIX | S&P 500 VIX |
국가별 주요 지수
심볼 | |
JP225 | 닛케이 225 선물 |
STOXX50E | Euro Stoxx 50 |
CSI300 | CSI 300(중국) |
HSI | 항생(홍콩) |
FTSE | 영국 FTSE |
DAX | 독일 DAX 30 |
CAC | 프랑스 CAC 40 |
ETF 데이터 가져오기
국내(KR),미국(US),일본(JP) ETF 데이터를 가져올 수 있는데 제 경험상으로 일부 종목의 가격이 다른 걸 알고 있는데 곧 고쳐지겠죠?
전체 종목 데이터를 가져오려면 다음과 같이 입력합니다.
df_etf = fdr.StockListing('ETF/KR')
괄호 안에 미국인 경우는 ETF/US, 일본은 ETF/JP를 입력하면 됩니다.
이렇게 심볼을 알게 되었으면 fdr.DataReader에 마찬가지로 입력해서 종목의 가격 데이터를 가져올 수 있습니다.
KODEX 200선물인버스2X를 예로 들겠습니다.
df_etf에서 심볼을 가져와서 해도 됩니다.
편의상 종목코드를 바로 입력하겠습니다.
df_inver = fdr.DataReader('252670')
이 외에도 환율, 암호화폐를 가져올 수 있습니다.
저는 잘 안 써서 여기서 포스팅을 마치도록 하겠습니다.
나머지는 가이드 사이트에서 확인하시기 바랍니다.
FinanceDataReader는 데이터프레임으로 데이터를 가져오니
데이터프레임 다루는 방법을 잘 모르시면 다음 포스팅을 참고해주시기 바랍니다.
관련 포스팅
[Python/웹크롤링] - [웹크롤링] 네이버증권에서 재무제표 가져오기
[Python/Pandas] - [Pandas]특정문자로 찾기 str.contains()
[Python/Pandas] - [Pandas] DataFrame 결측치(NaN) 처리
'Python > 웹크롤링' 카테고리의 다른 글
[파이썬] chrome-driver 설치 안하고 사용하기 (0) | 2022.08.31 |
---|---|
[python] dict형식의 string dict으로 변환(json 활용) (0) | 2022.04.21 |
[웹크롤링] 네이버증권에서 재무제표 가져오기 (13) | 2021.07.19 |
뉴스 크롤링하기 (0) | 2020.05.06 |
[Python] BeautifulSoup 간단 사용법 (0) | 2020.04.28 |