2024 One Day Fintech 실습 프로젝트 모듈 1 - 미국 주식 데이터 분석

JI YEON KIM·2024년 9월 21일
0
post-thumbnail
conda install -c conda-forge ta-lib
pip install fsspec
pip install yfinance pandas numpy pandas-ta matplotlib yahoo_fin requests_html tqdm langchain langchain_openai langchain_experimental langchain-community tabulate seaborn mplfinance
!brew install ta-lib
!pip install -r requirement.txt -q

주식 데이터 가져와 저장하기

  • nasdaq의 주식을 모두 가져옴
  • 가져온 데이터는 data 폴더 내에 csv 별로 저장
  • dow도 가져오고 싶다면 dow=True로 설정
import sys
sys.path.append('./Downloads/dataloader.py')
from dataloader import TickerSaver
ts = TickerSaver(nasdaq=True, dow=False)
ts.save_all_tickers_data()

TickerSaver의 역할:
TickerSaver 클래스는 주로 특정 주식 시장(NASDAQ, Dow Jones 등)의 티커(symbol) 목록을 처리하고, 이 데이터를 가져와 저장하는 역할을 담당하는 것으로 보입니다. 이 클래스는 데이터를 수집하여 주식 데이터베이스 또는 파일로 저장하는 데 사용되며, NASDAQ이나 다우존스 등의 특정 시장을 대상으로 작업할 수 있습니다.

요약:
TickerSaver 클래스는 주식 시장 데이터(특정 티커 심볼들의 데이터)를 저장하는 클래스일 가능성이 큽니다.
save_all_tickers_data() 메서드는 선택한 주식 시장(NASDAQ)의 모든 티커 심볼에 대한 데이터를 저장하는 메서드입니다.
이 코드는 NASDAQ 주식 시장의 데이터를 수집하고 저장하지만, 다우존스(Dow Jones) 데이터는 무시하도록 설정된 코드입니다.
클래스에 대한 더 정확한 설명은 TickerSaver의 전체 코드나 문서를 확인해야 정확히 파악할 수 있습니다.

저장한 주식 데이터 가져오기

  • min_days을 사용하여 최소 며칠 이상의 데이터가 존재하는 종목만 가져오도록 설정
from dataloader import TickerLoader
tl = TickerLoader()
data = tl.get_data(min_days=2500)

ChatGPT를 이용한 데이터 분석

from langchain.agents.agent_types import AgentType
from langchain_openai import ChatOpenAI
from langchain_experimental.agents import create_pandas_dataframe_agent
import os
os.environ["OPENAI_API_KEY"] = ---
  • 사용할 수 있는 모델들: gpt-3.5-turbo, gpt-3.5-turbo-16k, gpt-4, gpt-4-32k 등이 있으며, 토큰 수가 더 많이 제공되는 gpt-3.5-turbo-16k와 gpt-4-32k 모델의 경우 답변이 길어져서 잘리는 경우가 생길 때 사용하면 좋습니다.
  • 모델 확인 링크 : https://platform.openai.com/docs/models
  • 데이터분석에서는 창의성보다는 정확성이 중요하므로 temperature를 0으로 설정.
model = ChatOpenAI(model="gpt-4o-mini", temperature=0)
agent = create_pandas_dataframe_agent(
    model, 
    data, 
    verbose=True,
    agent_type='openai-tools',
    allow_dangerous_code=True,
    max_iterations=10
    )
  • gpt에게 데이터 분석을 요청

query를 그대로 실행해도 동일한 결과로 노출된다.


  • 실습하던 친구가 랭체인을 통해 대화한 데이터를 갖고 있는 건지, 휘발되는 건지 물어봐서 '내가 알고있기론 저장이 안된다. 따로 DB를 생성해야 한다'고 알려줌

    LangChain을 통해 GPT API를 사용할 때, 대화 내용이 자동으로 저장되지는 않습니다. 대화 내용의 저장 여부는 어떻게 설정하느냐에 따라 달라집니다. 기본적으로, GPT API를 호출할 때 대화 기록은 OpenAI의 서버에 일시적으로 저장되어 서비스 품질 모니터링 및 개선을 위해 사용될 수 있으나, 사용자의 데이터를 장기적으로 저장하지는 않습니다. 대화 내용을 저장하려면 대화 내용을 저장하려면 별도의 데이터베이스(DB)나 파일 시스템에 대화를 저장하는 기능을 직접 구현해야 합니다. LangChain을 사용하여 GPT API를 호출하는 경우, 대화 내용을 원하는 방식으로 저장할 수 있습니다. 예를 들어, MongoDB, MySQL, 또는 파일 시스템을 이용하여 저장할 수 있습니다.

실습

시간이 부족해서 전처리 및 완성을 못 함

주제는 'NASDAQ 상위 10개 기업의 3년 데이터를 바탕으로 2024년 9월 23일 상승/하락 예측' 이었고 우리 조는 모두 주제 선정이 어려웠음
전처리가 부족했다..!!

https://faithful-basketball-9e9.notion.site/7-1082a9f3cb5c80f38707f44bcbd13d7f

profile
안녕하세요. 김지연입니다.

0개의 댓글