Пример #1
0
 def vote(self, code, day):
     features = []
     values = db_helper.select(self.query_kpi_fn, (code, day, 30, DMA))
     if len(values) < 30:
         return features
     values = np.array(values)[::-1]
     dma_values = np.array(list(map(lambda x:np.float(x.dma), values)))
     ama_values = np.array(list(map(lambda x:np.float(x.ama), values)))
     
     bt, l = zero_line.breakthrough(dma_values[-10:])
     if bt and l <= 3:
         features.append(self.BREAK_ZERO)
     
     if ins.match(dma_values[-3:], ama_values[-3:]) == 1:
         features.append(self.GOOD_CROSS)
     return features
Пример #2
0
 def vote(self, code, day):
     features = []
     values = db_helper.select(query_kpi_fn, (code, day, 30))
     if len(values) < 30:
         return features
     values = np.array(values)[::-1]
     pdi_lines = values[:, 1].astype(float)
     mdi_lines = values[:, 2].astype(float)
     adx_lines = values[:, 3].astype(float)
     adxr_lines = values[:, 4].astype(float)
     
     bt, l = zero_line.breakthrough(adx_lines[-10:], 30)
     if bt and l <= 3:
         features.append(self.BREAK_ZERO)
     
     if ins.match(pdi_lines[-6:], mdi_lines[-6:]) == 1 and ins.match(adx_lines[-3:], adxr_lines[-3:]) == 1:
         features.append(self.GOOD_CROSS)
     
     return features
Пример #3
0
    def vote(self, code, day):
        features = []
        values = db_helper.select(self.query_kpi_fn, (code, day, 30, BOLL))
        k_values = db_helper.select(self.query_kpi_fn,
                                    (code, day, 30, TradingDataDaily))
        if len(values) < 30 or len(k_values) < 30 or len(values) != len(
                k_values):
            return features
        values = np.array(values)[::-1]
        k_values = np.array(k_values)[::-1]
        md_values = np.array(list(map(lambda x: np.float(x.md), values)))
        close_values = np.array(
            list(map(lambda x: np.float(x.close), k_values)))

        bt, l = zero_line.breakthrough(close_values, md_values)
        if bt and l <= 3:
            features.append(self.BREAK_ZERO)

        return features
Пример #4
0
    def vote(self, code, day):
        features = []
        values = db_helper.select(self.query_kpi_fn, (code, day, 30, EMV))
        if len(values) < 30:
            return features
        values = np.array(values)[::-1]
        emv_values = np.array(list(map(lambda x: np.float(x.emv), values)))
        if trend.is_uptrend(emv_values[-10:]):
            k_values = db_helper.select(self.query_kpi_fn,
                                        (code, day, 10, TradingDataDaily))
            if len(k_values) == 10:
                k_values = np.array(k_values)[::-1]
                close_values = np.array(
                    list(map(lambda x: np.float(x.close), k_values)))
                if trend.is_downtrend(close_values):
                    features.append(self.BOTTOM_DEVIATION)

        bt, l = zero_line.breakthrough(emv_values[-10:])
        if bt and l <= 3:
            features.append(self.BREAK_ZERO)

        return features
Пример #5
0
 def vote(self, code, day):
     features = []
     values = db_helper.select(query_roc_fn, (code, day, 30))
     if len(values) < 30:
         return features
     values = np.array(values)[::-1]
     roc_values = values[:, 1].astype(float)
     rocma_values = values[:, 2].astype(float)
     if ins.match(roc_values[-3:], rocma_values[-3:]) == 1:
         features.append(self.GOOD_CROSS)
     
     if trend.is_uptrend(roc_values):
         k_values = db_helper.select(query_k_fn, (code, day, 30))
         if len(k_values) == 30:
             k_values = np.array(k_values)[::-1]
             close_values = k_values[:, 0].astype(float)
             if trend.is_downtrend(close_values):
                 features.append(self.BOTTOM_DEVIATION)
     
     bt, l = zero_line.breakthrough(roc_values, 0)
     if bt and l <= 3:
         features.append(self.BREAK_ZERO)
     return features