The Relationship between news and stocks 7

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

728x90
반응형

회의록

- 4가지로 라벨링 고민

  1. 전날 종가 다음날 고가
  2. 당일 시작가 종가
  3. 당일 시작가 고가 -> 이렇게 되면 무조건 상승이거나 유지 라벨만 나오게 됨
  4. 전날 종가 다음날 종가

코드

AWS 서버 MySQL에서 데이터 불러오기

import pandas as pd
import pymysql

conn = pymysql.connect(
                        user    = 'stocks',
                        passwd  = 'Stocks!',
                        host    = "-",
                        port    = 3306,
                        db      = 'Data',
                        charset = 'utf8'
        )

cur = conn.cursor()

cur.execute('''
SELECT DISTINCT * FROM Stock_Price
''')
result = cur.fetchall()

df = pd.DataFrame(result, columns=['stock_id', 'date', 'closing_price', 'market_price', 'high_price', 'low_price'])

df = df.sort_values(ascending=False, by=['stock_id', 'date']).reset_index(drop=True)

당일 시가와 당일 종가 비교

from tqdm import tqdm
import datetime
for i in tqdm(range(0,len(df),75)):
  for j in range(75):
    if df.loc[i+j][1] == datetime.date(2022,3,31):
      df.loc[i+j, 'label1'] = -1
      continue
    if df.loc[i+j][3] <= df.loc[i+j][2]:
      df.loc[i+j, 'label1'] = 1
    elif df.loc[i+j][3] > df.loc[i+j][2]:
      df.loc[i+j, 'label1'] = 0

전날 종가와 당일 시가 비교

from tqdm import tqdm
import datetime
for i in tqdm(range(0,len(df),75)):
  for j in range(75):
    if df.loc[i+j][1] == datetime.date(2022,3,31):
      df.loc[i+j, 'label2'] = -1
      continue
    if df.loc[i+j][3] < df.loc[i+j+1][2]:
      df.loc[i+j, 'label2'] = 0
    elif df.loc[i+j][3] >= df.loc[i+j+1][2]:
      df.loc[i+j, 'label2'] = 1

 

728x90
반응형