본문 바로가기
기업 가치 분석/기업가치분석기법

파이썬 활용 주가분석 _ FinanceData-Reader

by 보보트레인 2023. 9. 12.

목표 : FinanceData-Reader를 이용하여 구글(알파벳) 2017년 주가분석을 해보자.

사용 툴 : vscode / python3 / FinanceData-Reader api 


환경설정

더보기
pip install -U finance-datareader

vscode 상에  finance-datareader를 다운받고

실행해 보았는데 no module 오류가 뜬다.

오류 메시지를 보니 Python에서 사용하는 라이브러리인 BeautifulSoup4(bs4)가 설치되어 있지 않아서 발생하는 문제로 보인다.

BeautifulSoup는 HTML과 XML 파일에서 데이터를 추출하기 위한 Python 라이브러리입니다.

 

datareader가 내부적으로 BeautifulSoup4라는 라이브러리를 사용하기 때문에 이 역시 다운받아줘야,

원활한 실행이 가능하다.

더보기
pip install beautifulsoup4

기본 사용 코드 분석

df_sp500 = fdr.StockListing("SP500")

#print(df_sp500[:5])  
print(df_sp500.head())

#print(df_sp500[-5:])  
print(df_sp500.tail())

df_sp500은 s&p500의 상장정보를 가져와서 담은 변수로 이용할 계획이고, 

fdr에서 StockListing으로 "SP500"을 끌어와서 담아준다.

 

실제로 head()와 tail()메서드로 터미널에 결과값을 출력해보면

상위순서 5개/ 하위순서 5개가 출력된다.

s&p 500의 내용이 잘 출력된다.


그럼 다른 국가의 거래소 분석도 가능한가?

가능하다!

 

종목 데이터 전체를 얻기 위해 사용할 수 있는 거래소 심볼은 다음과 같다

한국

심볼거래소

KRX KRX 종목 전체
KOSPI KOSPI 종목
KOSDAQ KOSDAQ 종목
KONEX KONEX 종목

미국

심볼거래소

NASDAQ 나스닥 종목
NYSE 뉴욕 증권거래소 종목
AMEX AMEX 종목
SP500 S&P 500 종목

※ KRX는 KOSPI,KOSDAQ,KONEX 모두 포함

 

<실습>

import FinanceDataReader as fdr
# Retrieve list of stocks codes for KOSPI/KRX/NASDAQ/SP500/Korean ETFs.

#df_kospi = fdr.StockListing("KOSPI")
#df_krx = fdr.StockListing("KRX")
#df_nasdaq = fdr.StockListing("NASDAQ")
df_sp500 = fdr.StockListing("SP500")
#df_etf_kr = fdr.StockListing("ETF/KR")

#print(df_sp500[:20])

#print(df_sp500[:5])  
print(df_sp500.head())

#print(df_sp500[-5:])  
print(df_sp500.tail())

다음과 같이 ( 주석 내용 ) 각 국가의 심볼 코드를 이용해 무리없이 각 거래소의 정보를 가져올 수 있다.


특정주식 정보 끌어오기

삼성전자의 2022년 정보를 끌어와보자!

import FinanceDataReader as fdr


# 종목코드, 시작날짜, 종료날짜를 입력합니다.
# 여기서는 삼성전자(005930)의 2022년 1월 1일부터 2022년 12월 31일까지의 주가 데이터를 가져옵니다.
data = fdr.DataReader('005930', '2022-01-01', '2022-12-31')
print(data)

종목코드를 확인하여 fdr.DataReader의 메서드에 ( 종목코드 / 시작날짜 / 종료날짜) 순서대로 기입한다.

 

날짜별로 / 장초가 / 고가 / 저가 / 볼륨 / 주가변동수치등이 잘 나와있다.


구글의 2020년 1월 1일 ~ 2020년 1월 15일 까지의 정보를 끌어와보자!

#구글
#df = fdr.DataReader("AAPL", '2020')
df = fdr.DataReader('AAPL', '2020-01-01', '2020-01-15')
print(df)

 

결과

잘 출력된다!

+@ 추가적으로 암호화폐도 조회 가능하다고하니 알차게 이용해 보길 바랍니다!

반응형