FinanceDataReader 사용자 안내서

FinanceDataReader 사용자 안내서

한국 주식 가격, 미국주식 가격, 지수, 환율, 암호화폐 가격, 종목 리스팅 등 금융 데이터 수집 라이브러리

2018 FinanceData.KR

개요

금융 데이터를 다루는데 가장 기본이 되는 데이터는 거래소별 전체 종목 코드와 가격 데이터 이다.

pandas-datareader 는 잘 구성된 시계열 데이터 수집 라이브러리로 사용이 간편하고 다양한 시계열 데이터를 수집할 수 있다는 장점이 있다. (현재 버전 : pandas_datareader 0.6.0) 하지만, 거래소별(KRX, NASDAQ, NYSE 등) 전체 종목 코드(ticker symbol)를 가져오는 기능이 없으며, 야후 파이낸스가 더 이상지원되지 않고(deprecated), 구글 파이낸스는 UNSTABLE_WARNING + RemoteDataError 를 낸다.

FinanceDataReader는 pandas-datareader 를 대체하기 보다 보완하기 위한 목적으로 만들어졌다. 주요한 기능은 다음과 같다.

  • 해외주식 가격 데이터: AAPL(애플), AMZN(아마존), GOOG(구글) 등
  • 국내주식 가격 데이터: 005930(삼성전자), 091990(셀트리온헬스케어) 등
  • 각종 지수: KS11(코스피지수), KQ11(코스닥지수), DJI(다우지수), IXIC(나스닥 지수), US500(S&P 5000)
  • 환율 데이터: USD/KRX (원달러 환율), USD/EUR(달러당 유로화 환율), CNY/KRW: 위엔화 원화 환율
  • 암호화폐 가격: BTC/USD (비트코인 달러 가격, Bitfinex), BTC/KRW (비트코인 원화 가격, 빗썸)
  • 거래소별 전체 종목 코드: KRX (KOSPI, KODAQ, KONEX), NASDAQ, NYSE, AMEX, S&P 500 종목

설치

pip install finance-datareader

사용

In [1]:
import FinanceDataReader as fdr
fdr.__version__
Out[1]:
'0.2.0'

해외주식 가격 데이터

In [2]:
# 애플(AAPL), 2018-01-01 ~ 2018-03-30

df = fdr.DataReader('AAPL', '2018-01-01', '2018-03-30')
df.tail()
Out[2]:
Close Open High Low Volume Change
Date
2018-03-23 164.94 168.39 169.92 164.94 41030000.0 -0.0232
2018-03-26 172.77 168.07 173.10 166.44 37540000.0 0.0475
2018-03-27 168.34 173.68 175.15 166.92 40920000.0 -0.0256
2018-03-28 166.48 167.25 170.02 165.19 41670000.0 -0.0110
2018-03-29 167.78 167.81 171.75 166.90 38400000.0 0.0078
In [6]:
#  차트 설정
%matplotlib inline
import matplotlib.pyplot as plt

plt.rcParams["font.family"] = 'nanummyeongjo'
plt.rcParams["figure.figsize"] = (14,4)
plt.rcParams['lines.linewidth'] = 2
plt.rcParams["axes.grid"] = True
In [7]:
# 애플(AAPL), 2017년

df = fdr.DataReader('AAPL', '2017')
df['Close'].plot()
Out[7]:
<matplotlib.axes._subplots.AxesSubplot at 0x7faf34d5cac8>
In [8]:
# 아마존(AMZN), 2010~현재

df = fdr.DataReader('AMZN', '2010')
df['Close'].plot()
Out[8]:
<matplotlib.axes._subplots.AxesSubplot at 0x7faf34c94a20>

국내주식 가격 데이터

  • 코스피 종목: 068270(셀트리온), 005380(현대차) 등
  • 코스닥 종목: 215600(신라젠), 151910(나노스) 등
In [9]:
# 신라젠, 2018년

df = fdr.DataReader('215600', '2018')
df.head(10)
Out[9]:
Close Open High Low Volume Change
Date
2018-01-01 93500 93500 93500 93500 0.0 0.0000
2018-01-02 102500 95900 104000 93300 6760000.0 0.0963
2018-01-03 103000 102600 104900 99500 4720000.0 0.0049
2018-01-04 92200 102600 104000 92200 6390000.0 -0.1049
2018-01-05 100000 85800 101200 85700 8250000.0 0.0846
2018-01-07 100000 100000 100000 100000 0.0 0.0000
2018-01-08 93800 98000 98400 92500 6280000.0 -0.0620
2018-01-09 109000 96500 119200 93800 12290000.0 0.1620
2018-01-10 98000 105000 107300 97800 6510000.0 -0.1009
2018-01-11 96700 97600 100600 95200 4040000.0 -0.0133
In [10]:
# 셀트리온, 2017년~현재

df = fdr.DataReader('068270', '2017')
df['Close'].plot()
Out[10]:
<matplotlib.axes._subplots.AxesSubplot at 0x7faf34c35ba8>

KOSPI, KOSDAQ 지수

  • KS11: KOSPI 지수
  • KQ11: KOSDAQ 지수
In [11]:
# KS11 (KOSPI 지수), 2015년~현재

df = fdr.DataReader('KS11', '2015')
df['Close'].plot()
Out[11]:
<matplotlib.axes._subplots.AxesSubplot at 0x7faf34c56128>

미국 3대 지수

  • DJI: 다우존스 지수
  • IXIC: 나스닥 지수
  • US500: S&P 500 지수
In [12]:
# 다우지수, 2015년~현재

df = fdr.DataReader('DJI', '2015')
df['Close'].plot()
Out[12]:
<matplotlib.axes._subplots.AxesSubplot at 0x7faf34dc47f0>

환율

  • USD/KRW: 달러당 원화 환율
  • USD/EUR: 달러당 유로화 환율
  • USD/JPY: 달러당 엔화 환율
  • CNY/KRW: 위엔화 원화 환율
In [13]:
# 원달러 환율, 1995년~현재

df = fdr.DataReader('USD/KRW', '1995')
df['Close'].plot()
Out[13]:
<matplotlib.axes._subplots.AxesSubplot at 0x7faf34c849e8>
In [14]:
# 위엔화 환율, 1995년~현재

df = fdr.DataReader('CNY/KRW', '1995')
df['Close'].plot()
Out[14]:
<matplotlib.axes._subplots.AxesSubplot at 0x7faf74719fd0>

암호화폐 가격

  • BTC/USD: 비트코인 달러 가격 (Bitfinex)
  • ETH/USD: 이더리움 달러 가격 (Bitfinex)
  • BTC/KRW: 비트코인 원화 가격 (빗썸)
  • ETH/KRW: 이더리움 달러 가격 (빗썸)
In [15]:
# 비트코인 원화 가격 (빗썸), 2016년~현재

df = fdr.DataReader('BTC/KRW', '2016')
df['Close'].plot()
Out[15]:
<matplotlib.axes._subplots.AxesSubplot at 0x7faf33f1ed68>

거래소별 전체 종목 코드

한국거래소

  • KRX (상장종목 전체)
  • KOSPI(유가증권)
  • KODAQ (코스닥)
  • KONEX (코넥스)

미국거래소

  • NASDAQ (나스닥 종목)
  • NYSE (뉴욕 증권거래소)
  • AMEX (아멕스)
  • SP500 (S&P 500)
In [23]:
# 한국거래소 상장종목 전체

df_krx = fdr.StockListing('KRX')
df_krx.head()
Out[23]:
Symbol Name Sector Industry
0 001460 BYC 봉제의복 제조업 메리야스,란제리 제조,도매/건축공사/부동산 임대,분양,공급
1 079160 CJ CGV 영화, 비디오물, 방송프로그램 제작 및 배급업 영화상영,영화관 운영
2 005830 DB손해보험 보험업 자동차보험,화재보험,해상보험,특종보험,장기보험
3 139130 DGB금융지주 기타 금융업 지주회사
4 069730 DSR제강 1차 철강 제조업 와이어로프,각종 경강선,철선제품,PC강선,아연도 강연선 제조
In [21]:
len(df_krx)
Out[21]:
2194
In [19]:
# S&P 500 종목 전체
df_spx = fdr.StockListing('S&P500')
df_spx.head()
Out[19]:
Symbol Name Sector Industry
0 MMM 3M Company Industrials Industrial Conglomerates
1 ABT Abbott Laboratories Health Care Health Care Equipment
2 ABBV AbbVie Inc. Health Care Pharmaceuticals
3 ACN Accenture plc Information Technology IT Consulting & Other Services
4 ATVI Activision Blizzard Information Technology Home Entertainment Software
In [22]:
len(df_spx)
Out[22]:
505

댓글