def get_daily_legs(self, jointi, open, high, low, close, volume): avg05 = lines.get_ma(close, 5) avg25 = lines.get_ma(close, 25) o = open[jointi-WATCH_DAYS+1:jointi+1] h = high[jointi-WATCH_DAYS+1:jointi+1] l = low[jointi-WATCH_DAYS+1:jointi+1] c = close[jointi-WATCH_DAYS+1:jointi+1] v = volume[jointi-WATCH_DAYS+1:jointi+1] ot = olines=[avg05[jointi-WATCH_DAYS+1:jointi+1], avg25[jointi-WATCH_DAYS+1:jointi+1]] return (o, h, l, c, v, ot)
def get_line_data(self): xbatch = [] ybatch = [] data = self.data meigaras = data.keys() random.shuffle(meigaras) for code in meigaras[:BATCH_SIZE]: (indexes, dates, open, high, low, close, volume) = data[code] (pnf_joints, pnf_indexes, pnf_pmmask) = lines.get_pnf(high, low, close) avg05 = lines.get_ma(close, 5) avg25 = lines.get_ma(close, 25) (pnf_indexes, pnf_pmmask) = self.add_mid_joints(pnf_indexes, pnf_pmmask) idxs = range(1, len(pnf_indexes)) random.shuffle(idxs) for i in idxs[:BATCH_SIZE]: jointi = pnf_indexes[i] if jointi >= INVALID_DAYS+WATCH_DAYS: ylist = [0, 1, 0] if pnf_pmmask[i] == -1: ylist = [1, 0, 0] if pnf_pmmask[i] == 1: ylist = [0, 0, 1] if self.mode == "DAILY": (o, h, l, c, v, ot) = self.get_daily_legs(jointi, open, high, low, close, volume) elif self.mode == "WEEKLY": (o, h, l, c, v) = self.get_monthly_legs(jointi, open, high, low, close, volume) ot = [] else: raise Exception("mode is not correctly set") xlist = self.lines2image(o, h, l, c, v, ot) ylist = np.array(ylist) if len(xbatch) == 0: xbatch = np.array([xlist]) ybatch = np.array([ylist]) else: xbatch = np.append(xbatch, [xlist], axis=0) ybatch = np.append(ybatch, [ylist], axis=0) return [xbatch, ybatch]
def get_xs(self, code, data, starti, endi): #(indexes, dates, open, high, low, close, volume) = kf.get_kabuka([code], "", endd, True) (indexes, dates, open, high, low, close, volume) = data avg = lines.get_ma(close) xs = [] for i in range(starti, endi+1): ximage = self.lines2image(open[-WATCH_DAYS+i:i], high[-WATCH_DAYS+i:i], low[-WATCH_DAYS+i:i], close[-WATCH_DAYS+i:i], [avg[-WATCH_DAYS+i:i]]) xs.append(ximage) return np.array(xs)
def get_line_data(self, meigaras=[]): data = kf.get_kabuka(meigaras, self.startd, self.endd, True) xbatch = [] ybatch = [] for code in data.keys(): (indexes, dates, open, high, low, close, volume) = data[code] (pnf_joints, pnf_indexes, pnf_pmmask) = lines.get_pnf(high, low, close) avg = lines.get_ma(close) (pnf_indexes, pnf_pmmask) = self.add_mid_joints(pnf_indexes, pnf_pmmask) for i in range(1, len(pnf_indexes)): jointi = pnf_indexes[i] if jointi >= MA_DAYS+WATCH_DAYS: #xlist = open[jointi-5+1:jointi+1] #xlist += high[jointi-5+1:jointi+1] #xlist += low[jointi-5+1:jointi+1] #xlist += close[jointi-5+1:jointi+1] ylist = [0, 1, 0] if pnf_pmmask[i] == -1: ylist = [1, 0, 0] if pnf_pmmask[i] == 1: ylist = [0, 0, 1] #xlist = self.normalize(np.array(xlist)) #xlist = np.append(xlist, self.normalize_volume(volume[jointi-5+1:jointi+1])) #xlist = np.append(xlist, np.zeros(XSIZE-len(xlist))) xlist = self.lines2image( open[jointi-WATCH_DAYS+1:jointi+1], high[jointi-WATCH_DAYS+1:jointi+1], low[jointi-WATCH_DAYS+1:jointi+1], close[jointi-WATCH_DAYS+1:jointi+1], olines=[avg[jointi-WATCH_DAYS+1:jointi+1]]) ylist = np.array(ylist) if len(xbatch) == 0: xbatch = np.array([xlist]) ybatch = np.array([ylist]) else: xbatch = np.append(xbatch, [xlist], axis=0) ybatch = np.append(ybatch, [ylist], axis=0) return [xbatch, ybatch]
def get_line_data(self): xbatch = [] ybatch = [] data = self.data meigaras = data.keys() random.shuffle(meigaras) for code in meigaras[:BATCH_SIZE]: (indexes, dates, open, high, low, close, volume) = data[code] (pnf_joints, pnf_indexes, pnf_pmmask) = lines.get_pnf(high, low, close) avg05 = lines.get_ma(close, 5) #avg25 = lines.get_ma(close, 25) (pnf_indexes, pnf_pmmask) = self.add_mid_joints(pnf_indexes, pnf_pmmask) idxs = range(1, len(pnf_indexes)) random.shuffle(idxs) for i in idxs[:BATCH_SIZE]: jointi = pnf_indexes[i] if jointi >= INVALID_DAYS+WATCH_DAYS: if i >= len(pnf_indexes)-1: continue ylist = [0, 1, 0] if pnf_indexes[i+1]-pnf_indexes[i]<MIN_LEG_LEN: ylist = [0, 0, 0] else: if pnf_pmmask[i] == -1: ylist = [1, 0, 0] if pnf_pmmask[i] == 1: ylist = [0, 0, 1] (o, h, l, c, v, ot) = self.get_daily_legs(jointi, open, high, low, close, volume) xlist = self.lines2image(o, h, l, c, v, ot) ylist = np.array(ylist) if len(xbatch) == 0: xbatch = np.array([xlist]) ybatch = np.array([ylist]) else: xbatch = np.append(xbatch, [xlist], axis=0) ybatch = np.append(ybatch, [ylist], axis=0) return [xbatch, ybatch]