프로젝트 / / 2022. 10. 4. 10:42

Python - fbprophet을 이용한 한국주식 예측 하기

-스크랩은 제 블로그 링크 적어주세요! 

 

한국 주가 데이터를 가져오기 위해 여러 방법이 있습니다. 

 

-야후 파이낸스를 이용하여 주가 데이터를 가져오겠습니다 

 

-우선, IMPORT를 해줍니다. 

 

만약 파이낸스 , prophet가 안깔려있다면, pip install

import yfinance as yf
import matplotlib.pyplot as plt
from fbprophet import Prophet
from datetime import datetime,timedelta

주가데이터를 가져옵니다. 저는 현재 날짜 -200일로 하였습니다.

 

#오늘 날짜 -200일 부터 데이터 가져오기 
starttime = datetime.now() - timedelta(days=200)
endtime =datetime.now()
#주식 코드 input문 이용 하기
stockcode = input('한국주식 코드를 입력해주세요')

stockinfo = yf.download(stockcode+'.KS',start = starttime, end=endtime)
#현재 가격 불러오기 
stock_now_price = stockinfo['Close'][-1]
#x, y축 설정
stockinfo['y'] = stockinfo['Close']
stockinfo['ds'] = stockinfo.index

prophet는 시계열 예측이기 때문에 index(날짜 데이터) ,y (종가 데이터)를 이용합니다. 

 

모델 적용

# PROPHET
df_pb = Prophet(옵션추가
)
df_pb.fit(stockinfo)
#20일 미래 예측
periodsdate=  20

#데이터 프레임 (과거 데이터 포함)
df_future = df_pb.make_future_dataframe(periods=periodsdate, freq='D',include_history = True)
#모델 적용 확인
print(df_future.tail(10))
data_forecast = df_pb.predict(df_future)

#예측 결과 확인하기 ! 아래부터 20개
print(data_forecast[['ds','yhat']].tail(20))
#'yhat' 예측 가격 데이터 변수저장
closeDf_ = data_forecast[data_forecast['ds'] == data_forecast.iloc[-1]['ds']]
predictprice = closeDf_['yhat'].values[0]

 

만약 이상치가 나오지 않는다면, 그래프로 확인 해봅니다.

fig = plt.figure(figsize=(5,5))
#현재 가격 그래프 
fig.plot = stockinfo['y'].plot(title='NOW PRICE',marker='o',markerfacecolor='blue',markersize=5, color='blue',linewidth=2)
#예측 가격 그래프
df_pb.plot(data_forecast, xlabel='DATE_TIME' , ylabel='Stock Price')
plt.show()
#소수점 없애기
int_nowprice = int(stock_now_price)
int_price = int(predictprice)

print("현재 가격 :" ,str(int_nowprice) + '원 입니다')
print('20일 뒤 주가 예측: '+str(int_price) + '원 입니다')

 

 

 

  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유