Exemplo n.º 1
0
 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)
Exemplo n.º 2
0
 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]
Exemplo n.º 3
0
 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)
Exemplo n.º 4
0
 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]
Exemplo n.º 5
0
 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]