본문 바로가기

데이터 사이언스 DataScience/Deep Learning 딥러닝

GPT와 함께하는 주가 예측 - 1 (python, prophet)

ChatGPT를 결제해 매월 구독료를 내고 있는데 

본전은 뽑아야지 않겠나라는 생각으로 주가 예측 코드를 짜보기로 했다.

 

당연히 실제로 주가를 예측하고 크게 수익을 얻겠다라는 기대가 있는건 아니고 

시계열 예측 라이브러리 몇가지를 사용해보고 튜닝해보겠다는 생각으로 GPT에게 질문을 던졌다.

 

프롬프트를 입력할때마다 GPT는 이런 경고 멘트는 잊지 않고 날려준다.

주의해야 할 점은 이 코드가 실제 주가 예측의 정확성을 보장하지 않으며,
투자 결정을 위한 직접적인 권고로 사용되어서는 안 된다는 것입니다. 

주가 예측은 매우 복잡하며, 다양한 외부 요인에 의해 영향을 받습니다.
따라서 이 예측 모델은 시작점으로 사용하고, 다양한 데이터 소스와 분석 방법을 함께 고려하는 것이 중요합니다.

 

 

 

5번 정도의 질문을 거치며 

Meta의 Prophet이라는 시계열 예측 라이브러리를 사용한 python 코드를 얻게 됐다.

 

1) Yahoo Finance에서 삼성전자의 2021년 1월부터 2024년 2월 7일까지의 가격을 가져와서

2) Prophet 모델에 맞는 데이터프레임으로 형태를 바꾸고

3) 피팅을 한 후 앞으로 30일의 가격을 예측하고

4) matplotlib를 통해 도식화해 파일로 저장

하는 코드이다.

 

import yfinance as yf
import pandas as pd
from prophet import Prophet
from matplotlib import pyplot as plt
from prophet.plot import plot_plotly, add_changepoints_to_plot


# 삼성전자의 주식 코드
stock_code = '005930.KS'

# yfinance를 사용하여 데이터 가져오기
data = yf.download(stock_code, start='2021-01-01', end='2024-02-07')

# 데이터 프레임 조정
df = data.reset_index()[['Date', 'Close']]
df.columns = ['ds', 'y']  # Prophet이 요구하는 컬럼명으로 변경

# Prophet 모델 초기화
model = Prophet()

# 모델에 데이터 피팅
model.fit(df)

# 미래 날짜 프레임 생성
future = model.make_future_dataframe(periods=30)  # 다음 30일 예측

# 예측 수행
forecast = model.predict(future)

# 예측 결과 플롯
fig = model.plot(forecast)

# 변화점을 플롯에 추가합니다 (선택적)
a = add_changepoints_to_plot(fig.gca(), model, forecast)

# 플롯을 파일로 저장합니다.
plt.savefig('/실제경로/forecast_plot.png')

 

아래 그림이 결과물로 나왔고 

앞으로의 추이를 보며 여러 모델과 변수들을 추가해 테스트해봐야겠다.

 

 

 

+ 15일 후 (2/23 시점) 주가 비교 추가

반응형