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, bollp2, bollm2) = lines.get_bollinger(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], bollp2[-WATCH_DAYS + i : i], bollm2[-WATCH_DAYS + i : i]], ) xs.append(ximage) return np.array(xs)
def _get_normal_lines(self, ol, hl, ll, cl, vl): # Ichimoku (tenkan, kijun, chikou, senko1, senko2) = lines.get_ichimoku(hl, ll, cl) normal_lines = {} normal_lines["tenkan"] = tenkan normal_lines["kijun"] = kijun normal_lines["chikou"] = chikou normal_lines["senko1"] = senko1 normal_lines["senko2"] = senko2 # Bollinger (avg, bollp2, bollm2) = lines.get_bollinger(cl) normal_lines["avg"] = avg normal_lines["bollp2"] = bollp2 normal_lines["bollm2"] = bollm2 self.normal_lines = normal_lines
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, bollp2, bollm2) = lines.get_bollinger(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: ylist = [0, 0, 1, 0, 0] if pnf_pmmask[i] == -2: ylist = [1, 0, 0, 0, 0] if pnf_pmmask[i] == -1: ylist = [0, 1, 0, 0, 0] if pnf_pmmask[i] == 1: ylist = [0, 0, 0, 1, 0] if pnf_pmmask[i] == 2: ylist = [0, 0, 0, 0, 1] 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], bollp2[jointi - WATCH_DAYS + 1 : jointi + 1], bollm2[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]