The Relationship between news and stocks 8

2022. 7. 22. 23:13Project/뉴스기사로 인한 주가 등락 예측

728x90
반응형

회의록

- 뉴스기사 15만 개의 데이터를 가져와서 경제관련단어 감성 분류

- 뉴스기사와 주식데이터의 상관관계

- 뉴스기사의 어떤 키워드와 주식 등락에 어떠한? 영향을 끼치는지?

- 주식 등락에 뉴스기사 데이터를 쓰는 이유?

  • 프레임 이론
  • SNA 분석 방법
  • 시간, 비용 절약
  • 공간적 제약 X
  • 여러 형태의 분석가능

코드

시장 마감 15시 30분을 기준으로 이전은 당일 시가와 종가 비교, 이후는 당일 종가와 다음날 시가 비교

import datetime
from datetime import time
from datetime import timedelta


for i in tqdm(range(len(news))):
  if len(df.loc[(df["stock_id"] == news.loc[i][0]) & (df["date"] == news.loc[i][2].date())]) == 0:
    for j in range(1, 7):
      if len(df.loc[(df["stock_id"] == news.loc[i][0]) & (df["date"] == (news.loc[i][2] + timedelta(days=j)).date())]) == 0:
        continue
      news.loc[i, 'label'] = int(df.loc[(df["stock_id"] == news.loc[i][0]) & (df["date"] == (news.loc[i][2] + timedelta(days=j)).date())]['label2'])
    continue
  if news.loc[i][2].weekday() == 4 and news.loc[i][2].time() > datetime.time(15,30):
    for j in range(1, 7):
      if len(df.loc[(df["stock_id"] == news.loc[i][0]) & (df["date"] == (news.loc[i][2] + timedelta(days=j)).date())]) == 0:
        continue
      news.loc[i, 'label'] = int(df.loc[(df["stock_id"] == news.loc[i][0]) & (df["date"] == (news.loc[i][2] + timedelta(days=j)).date())]['label2'])
  elif news.loc[i][2].weekday() == 4 and news.loc[i][2].time() <= datetime.time(15,30):
    news.loc[i, 'label'] = int(df.loc[(df["stock_id"] == news.loc[i][0]) & (df["date"] == news.loc[i][2].date())]['label1'])
  else:
    if news.loc[i][2].time() > datetime.time(15,30):
      news.loc[i, 'label'] = int(df.loc[(df["stock_id"] == news.loc[i][0]) & (df["date"] == news.loc[i][2].date())]['label2'])
    elif news.loc[i][2].time() <= datetime.time(15,30):
      news.loc[i, 'label'] = int(df.loc[(df["stock_id"] == news.loc[i][0]) & (df["date"] == news.loc[i][2].date())]['label1'])

 

728x90
반응형