본문 바로가기

Data Science/Data Collection

[03. API] 002. FinanceDataReader

728x90

FinanceDataReader는 한국, 미국 글로벌 시장의 금융상품 가격 데이터(주식, 지수, 환율, 선물 등)와 종목 리스팅 등 금융 데이터 수집과 분석을 위한 오픈소스 라이브러리이다. 설치는 아래와 같이 하면 된다.

 

pip install finance-datareader

 

1) 거래소별 상장 종목 리스트

- 한국: KRX(전체, KOSPI + KOSDAQ + KONEX), KOSPI, KOSDAQ KONEX, KRX-DELISTING(상장폐지)

- 미국: NASDAQ, NYSE, AMEX, S&P500

 

거래소별 상장 종목 리스트는 다음과 같이 작성한다.

 

import FinanceDataReader as fdr

if __name__ == '__main__':
    # 한국거래소 상장종목 전체
    krx = fdr.StockListing('KRX')
    print(krx)


결과 값
      Symbol  ...                                           Industry
0     155660  ...                                             합섬섬유로프
1     001250  ...  수출입업(시멘트,철강금속,전기전자,섬유,기계화학),상품중개,광업,채석업/하수처리 서...
2     082740  ...                                     대형선박용엔진,내연발전엔진
3     011070  ...                                        기타 전자부품 제조업
4     010120  ...  고압기기,저압기기,변압기,배전반,PLC,인버터,빌딩설비,공조기,건축배관,자동화기기 ...
...      ...  ...                                                ...
2350  234070  ...                                  건설현장용 알루미늄 거푸집 임대
2351  278380  ...                                        의료기기(창상피복재)
2352  299480  ...                                               면생리대
2353  189350  ...                                           광통신용 증폭기
2354  331660  ...                                     은나노스텝, 닥터오렌지 등

 

2) ETF 종목 리스트

- 한국: KR, 미국: US, 중국: CN, 홍콩: HK, 일본: JP, 영국: UK, 프랑스: FR

 

ETF 종목 리스트를 조회하는 코드는 다음과 같다.

 

import FinanceDataReader as fdr

if __name__ == '__main__':
    # 미국 ETF 종목 전체
    etf = fdr.EtfListing('US')
    print(etf)


결과 값
     Symbol                                Name
0      EEM                     iShares MSCI EM
1      SPY                        SPDR S&P 500
2      FXI        iShares Ftse/xinhua China 25
3      EWZ                    아이쉐어스 브라질 Index 
4      XOP  SPDR S&P Oil &Gas Explor & Product
..     ...                                 ...
995    BJK               VanEck Vectors Gaming
996    DGZ                       DB Gold Short
997   IBDK   iShares iBonds Dec 2019 Corporate
998    UNL  UnitedStates 12 M. Natural Gas Fu.
999    RJZ         Rogers Intl Commodity Metal

 

3) 가격 데이터

아래 거래소에 상장된 주식, ETF, 지수 등의 가격 데이터를 조회할 수 있다.

 

- 한국거래소: KRX, 한국거래소 상장폐지: KRX-DELISTING, 나스닥: NASDAQ, 뉴욕증권거래소: NYSE, 미국증권거래소: AMEX, 상해거래소: SSE, 심천거래소: SZSE, 홍콩거래소: HKEX, 도쿄거래소: TSE

 

코드는 다음과 같다.

 

import FinanceDataReader as fdr

if __name__ == '__main__':
    # 신라젠(215600), 2018년
    price = fdr.DataReader('215600', '2018-01-01', '2020-02-10', exchange='KRX')  # 2018-01-01 ~ 현재
    print(price)


결과 값
             Close     Open     High      Low       Volume  Change
Date                                                               
2018-01-02  2479.65  2474.86  2481.02  2465.94  262200000.0  0.0049
2018-01-03  2486.35  2484.63  2493.40  2481.91  331100000.0  0.0027
2018-01-04  2466.46  2502.50  2502.50  2466.45  333840000.0 -0.0080
2018-01-05  2497.52  2476.85  2497.52  2475.51  308770000.0  0.0126
2018-01-08  2513.28  2510.70  2515.37  2494.18  311430000.0  0.0063
...             ...      ...      ...      ...          ...     ...
2020-02-04  2157.90  2121.22  2162.32  2120.53     616270.0  0.0184
2020-02-05  2165.63  2177.26  2181.52  2154.88     563120.0  0.0036
2020-02-06  2227.94  2184.77  2229.99  2182.25     683230.0  0.0288
2020-02-07  2211.95  2221.49  2223.92  2198.14     766710.0 -0.0072
2020-02-10  2201.07  2185.63  2203.39  2180.51     600470.0 -0.0049

 

제공되는 지수 데이터를 조회하기 위해서는 아래 코드를 사용하면 된다.

 

국가 심볼 설명
한국 KS11 KOSPI 지수
한국 KQ11 KOSDAQ 지수
한국 KS50 KOSPI50 지수
한국 KS100 KOSPI100 지수
한국 KS200 KOSPI200 지수
한국 KRX100 KRX100 지수
미국 DJI 다우존스 지수
미국 IXIC 나스닥 지수
미국 US500 S&P500 지수
미국 VIX S&P500 VIX 지수
일본 JP225 NIKKEI225 지수
유럽 STOX50 유로스톡스50 지수
홍콩 HSI 항셍 지수
중국 CSI300 중국 CSI300 지수
중국 SSEC 상해 종합 지수
영국 UK100 영국 FTSE 지수
독일 DE30 독일 DAX30 지수
프랑스 FCHI 프랑스 CAC40 지수
[표 3.1] 지수코드

 

이외에도 환율, 상품선물, 채권, 암호화폐 등의 데이터도 제공한다. 추가적으로 자세한 내용을 알고 싶다면 공식 홈페이지를 방문해보자.

 

 

FinanceData/FinanceDataReader

Financial data reader. Contribute to FinanceData/FinanceDataReader development by creating an account on GitHub.

github.com

 

728x90