from keras import optimizers from keras.models import Sequential from keras.layers import Dense from keras.utils import np_utils import pandas as pd import numpy as np from sklearn.utils import shuffle import matplotlib.pyplot as plt from MyUtil import YahooData, FeatureSet # Yahoo site로부터 삼성전자 주가 데이터를 수집한다 # sam = YahooData.getStockData('005930.KS', '2007-01-01') sam = YahooData.getStockDataYahoo('^KS11', '2007-01-01') # 저장된 파일을 읽어온다 #sam = pd.read_pickle('StockData/005930.KS') # 주가 데이터 (OHLCV)로부터 기술적분석 지표들을 추출한다 # u = 0.8 : 수익률 표준편차의 0.8 배 이상이면 주가 상승 (class = 2) # d = -0.8 : 수익률 표준편차의 -0.8배 이하이면 주가 하락 (class = 1) # 아니면 주가 횡보 (classs = 0) # ft = FeatureSet.getFeatureSet(sam, u=0.8, d=-0.7, period=20) ft = FeatureSet.getFeatureSet(sam, u=0.6, d=-0.6, period=20) # 분석할 데이터를 읽어와서 적당히 섞은 후 80%는 학습데이터로, 20%는 시험 데이터로 사용한다 ft = shuffle(ft) nLen = len(ft) n = int(nLen * 0.8) - 1 trainX = ft.iloc[0:n, 0:6].values trainY = np_utils.to_categorical(ft.iloc[0:n, 6].values) testX = ft.iloc[n:(nLen - 1), 0:6].values testY = np_utils.to_categorical(ft.iloc[n:(nLen - 1), 6].values)
def getStockData(stockCode=stockCode, start='2007-01-01'): YahooData.getStockDataYahoo(stockCode + '.KS', start=start)
def getData(stockList=stocks, start='2007-01-01'): YahooData.getStockDataList(stockList, start=start)