반응형

파이썬 주식 / yfinance를 이용하여 주가 일간 변동률 구하기

 

 

최근 삼성전자의 주가 일간 변동률이 어떤지 분석하는 주가 수익률에 대한 히스토그램을 표시해보도룩 하겠습니다.

 

주가 정보가져오는 부분은 아래 링크를 참조하시면 됩니다. 

https://zidarn87.tistory.com/36?category=416525

 

파이썬 주식 / yfinance를 이용하여 삼성전자 주식 정보 가져와 그래프로 표시하기

파이썬 주식 / yfinance를 이용하여 삼성전자 주식 정보 가져와 그래프로 표시하기 필요 라이브러리 먼저 주식 정보를 받아오기 위해 야후 파이낸스에서 제공하는 yfinace 라이브러리를 사용

zidarn87.tistory.com

일간 변동률

일간 변동률은 아래와 같은 식으로 계산하게 됩니다. 

오늘 변동률 = (오늘 종가 - 어제 종가)/어제 종가 * 100 

 

'DailyChange' 열을 만들어 오늘 종가에서 어제 종가를 뺀 값을 구합니다. 

'DailyChange_rate' 열을 만들어 오늘 변동률 값을 넣습니다. 

두 열의 첫번째 행의 값은 0으로 지정합니다. 

samsung['DailyChange'] = samsung['Close']- samsung['Close'].shift(1)
samsung['DailyChange_rate'] = (samsung['Close']- samsung['Close'].shift(1))/samsung['Close'].shift(1)*100

samsung['DailyChange'][0] = 0
samsung['DailyChange_rate'][0] = 0

print(samsung[['Close', 'DailyChange', 'DailyChange_rate']])

주가 일간 변동률이 1.0 이상인 일자를 구해보도록 하겠습니다. 

아래 코드는 조건을 지정해 그 조건에 해당하는 데이터를 출력하도록 하였습니다.

condition = (samsung['DailyChange_rate']>=1.0)
print(samsung[condition])

 

일간 변동률 히스토그램

우선 위에서 만들었던 주가 일간 변동률에 대한 정보를 보겠습니다. 

describe() 함수를 이용하면 표본, 평균값, 표준편차, 최소값, 25% 값, 50% 값, 75% 값, 최대값을 확인할 수 있습니다. 

아래 정보는 삼성전자의 주식의 주가 일간 변동률에 대한  '2020-07-01'부터 '2020-08-14'의 데이터 정보입니다. 

표본(데이터 수)는 33개, 평균 변동률값은 0.30, 표준편차는 1.62, 최소 변동률값은 -2.91, 최대 변동률값은 5.40입니다.  

 

이러한 내용을 히스토그램으로 표시하여, 변동률 분포를 보도록 하겠습니다. 

히스토그램을 보기위해 matplotlib.pyplot의 hist 함수를 이용합니다. 

전달인자는 bins는 관측한 데이터 특성을 잘 보여주도록 사용하는 값으로 기본값은 10입니다. 

print(samsung['DailyChange_rate'].describe())

plt.hist(samsung['DailyChange_rate'], bins=20)
plt.grid(True)
plt.show()

 

아래 히스토그램 분포도를 보면 변동률은 0.8 ~ 1.2% 대가 가장 많은 것을 볼 수 있습니다. 

반응형
반응형

파이썬 주식 / yfinance를 이용하여 삼성전자 주식 정보 가져와 그래프로 표시하기

필요 라이브러리

먼저 주식 정보를 받아오기 위해 야후 파이낸스에서 제공하는 yfinace 라이브러리를 사용합니다. 

받아온 정보를 데이터프레임으로 만들기 위해 panda_datareader 라이브러리를 사용합니다. 

그리고 그래프를 그려주기 위해 matplotlib.pyplot 라이브러리를 사용합니다 

from pandas_datareader import data as pdr
import yfinance as yf
import matplotlib.pyplot as plt

 

주식 시세 구하기

주식 시세를 구하기 위해 get_data_yahoo() 함수를 이용합니다. 

이 함수에는 주식 종목(코드)와 조회 기간을 전달인자로 넘겨주게 됩니다. 국내 주식은 주식 종목 코드가 보통 6자리 숫자 코드로 표현됩니다. 

get_data_yahoo(주식 종목(코드), 조회 기간)

 

아래는 삼성전자 코드인 '005930.KS'와 시작 날짜인 '2020-07-01'를 전달 인자로 넣어 가져온 데이터 입니다.

가져온 데이터를 분석해보면, index에는 시작 날짜부터 오늘 날짜까지의 날짜 정보가 저장됩니다. 

Columns에는 6가지의 데이터를 가져오게 됩니다. 

여기서 Close 열은 종가 데이터를 의미합니다. 

이 데이터를 가지고 그래프에 그려보겠습니다. 

 

간단하게, x 축은 index (날짜 정보)로 설정하고, y 축은 Close(종가 정보)로 설정하여, 그래프를 출력하도록 하였습니다.

plt.plot(samsung.index, samsung.Close, 'b', label='Samsung Electronics')
plt.show()

 

전체 코드

from pandas_datareader import data as pdr
import yfinance as yf
import matplotlib.pyplot as plt

yf.pdr_override()

samsung = pdr.get_data_yahoo('005930.KS', start='2020-07-01')
print(samsung)

print(samsung.index)
print(samsung.columns)

plt.plot(samsung.index, samsung.Close, 'b', label='Samsung Electronics')
plt.show()
반응형

+ Recent posts