Ejemplo n.º 1
0
    def prepare_calculate(self, trade_date):
        self.trade_date = trade_date

        tp_price_return, temp_price_sets = self.get_basic_data(trade_date)
        # tp_price_return.set_index('symbol', inplace=True)
        # tp_price_return['symbol'] = tp_price_return.index
        # symbol_sets = list(set(tp_price_return['symbol']))
        # tp_price_return_list = pd.DataFrame()
        #
        # for symbol in symbol_sets:
        #     if len(tp_price_return[tp_price_return['symbol'] == symbol]) < 3:
        #         continue
        #     tp_price_return_list = tp_price_return_list.append(
        #         tp_price_return.loc[symbol].sort_values(by='trade_date', ascending=True))

        if len(tp_price_return) <= 0:
            print("%s has no data" % trade_date)
            return
        else:
            session = str(int(time.time() * 1000000 + datetime.now().microsecond))
            data = {
                'total_data': tp_price_return.to_json(orient='records'),
                'index_daily_price_sets': temp_price_sets.to_json(orient='records')
            }
            cache_data.set_cache(session, 'volatility' + str(trade_date),
                                 json.dumps(data))
            # cache_data.set_cache(session, 'volatility' + str(trade_date) + '_a',
            #                      tp_price_return_list.to_json(orient='records'))
            # cache_data.set_cache(session, 'volatility' + str(trade_date) + '_b',
            #                      temp_price_sets.to_json(orient='records'))
            factor_volatility_value_task.calculate.delay(factor_name='volatility' + str(trade_date), trade_date=trade_date,
                                  session=session)
Ejemplo n.º 2
0
 def remote_run(self, trade_date):
     total_data = self.loadon_data(trade_date)
     # 存储数据
     session = str(int(time.time() * 1000000 + datetime.now().microsecond))
     cache_data.set_cache(session, 'factor_earning_expectation',
                          total_data.to_json(orient='records'))
     distributed_factor.delay(session, trade_date,
                              json.dumps(self._methods), self._name)
Ejemplo n.º 3
0
def growth_calculate(trade_date):
    # cash flow
    ttm_factor_sets, balance_sets = get_basic_growth_data(trade_date)
    growth_sets = pd.merge(ttm_factor_sets, balance_sets, on='symbol')
    if len(growth_sets) <= 0:
        print("%s has no data" % trade_date)
        return
    else:
        tic = time.time()
        session = str(int(time.time() * 1000000 + datetime.now().microsecond))
        cache_data.set_cache(session + str(trade_date), trade_date,
                             growth_sets.to_json(orient='records'))
        factor_growth.factor_calculate.delay(date_index=trade_date,
                                             session=session)
        time1 = time.time()
        print('growth_cal_time:{}'.format(time1 - tic))
Ejemplo n.º 4
0
def cash_flow_calculate(trade_date):
    # cash flow
    tp_cash_flow, ttm_cash_flow_sets = get_basic_cash_flow(trade_date)
    if len(tp_cash_flow) <= 0 or len(ttm_cash_flow_sets) <= 0:
        print("%s has no data" % trade_date)
        return
    else:
        tic = time.time()
        session = str(int(time.time() * 1000000 + datetime.now().microsecond))
        cache_data.set_cache(session + str(trade_date) + "1", trade_date,
                             tp_cash_flow.to_json(orient='records'))
        cache_data.set_cache(session + str(trade_date) + "2", trade_date,
                             ttm_cash_flow_sets.to_json(orient='records'))
        factor_cash_flow.factor_calculate.delay(date_index=trade_date,
                                                session=session)
        time4 = time.time()
        print('cash_flow_cal_time:{}'.format(time4 - tic))
Ejemplo n.º 5
0
def constrain_calculate(trade_date):
    # cash flow
    balance_sets, ttm_factors_sets = get_basic_constrain(trade_date)
    if len(balance_sets) <= 0 or len(ttm_factors_sets) <= 0:
        print("%s has no data" % trade_date)
        return
    else:
        tic = time.time()
        session = str(int(time.time() * 1000000 + datetime.now().microsecond))

        cache_data.set_cache(session + str(trade_date) + '1', trade_date,
                             balance_sets.to_json(orient='records'))
        cache_data.set_cache(session + str(trade_date) + '2', trade_date,
                             ttm_factors_sets.to_json(orient='records'))
        factor_constrain.factor_calculate.delay(date_index=trade_date,
                                                session=session)
        time5 = time.time()
        print('constrain_cal_time:{}'.format(time5 - tic))
Ejemplo n.º 6
0
 def prepaer_calculate(self, trade_date):
     valuation_sets, ttm_factor_sets, income_sets, balance_set = self.get_basic_data(
         trade_date)
     # valuation_sets = pd.merge(valuation_sets, income_sets, on='symbol')
     valuation_sets = pd.merge(valuation_sets, ttm_factor_sets, on='symbol')
     valuation_sets = pd.merge(valuation_sets, balance_set, on='symbol')
     if len(valuation_sets) <= 0:
         print("%s has no data" % trade_date)
         return
     else:
         session = str(
             int(time.time() * 1000000 + datetime.now().microsecond))
         cache_data.set_cache(session, 'scale' + str(trade_date),
                              valuation_sets.to_json(orient='records'))
         factor_scale_value_task.calculate.delay(factor_name='scale' +
                                                 str(trade_date),
                                                 trade_date=trade_date,
                                                 session=session)
Ejemplo n.º 7
0
def historical_value_calculate(trade_date):
    # history_value
    valuation_sets, ttm_factor_sets, cash_flow_sets, income_sets = get_basic_history_value_data(
        trade_date)
    valuation_sets = pd.merge(valuation_sets, income_sets, on='symbol')
    valuation_sets = pd.merge(valuation_sets, ttm_factor_sets, on='symbol')
    valuation_sets = pd.merge(valuation_sets, cash_flow_sets, on='symbol')
    if len(valuation_sets) <= 0:
        print("%s has no data" % trade_date)
        return
    else:
        tic = time.time()
        session = str(int(time.time() * 1000000 + datetime.now().microsecond))
        cache_data.set_cache(session + str(trade_date), trade_date,
                             valuation_sets.to_json(orient='records'))
        historical_value.factor_calculate.delay(date_index=trade_date,
                                                session=session)
        time2 = time.time()
        print('history_cal_time:{}'.format(time2 - tic))
Ejemplo n.º 8
0
def prepare_calculate(trade_date):
    # per share indicators
    valuation_sets, ttm_factor_sets, cash_flow_sets, income_sets, balance_sets = get_basic_scale_data(
        trade_date)
    valuation_sets = pd.merge(valuation_sets, income_sets, on='symbol')
    valuation_sets = pd.merge(valuation_sets, ttm_factor_sets, on='symbol')
    valuation_sets = pd.merge(valuation_sets, cash_flow_sets, on='symbol')
    valuation_sets = pd.merge(valuation_sets, balance_sets, on='symbol')
    if len(valuation_sets) <= 0:
        print("%s has no data" % trade_date)
        return
    else:
        tic = time.time()
        session = str(int(time.time() * 1000000 + datetime.now().microsecond))
        cache_data.set_cache(session + str(trade_date), trade_date,
                             valuation_sets.to_json(orient='records'))
        factor_per_share_indicators.factor_calculate.delay(
            date_index=trade_date, session=session)
        time3 = time.time()
        print('per_share_cal_time:{}'.format(time3 - tic))
Ejemplo n.º 9
0
def earning_calculate(trade_date):
    # cash flow
    tp_earning, ttm_earning_5y, ttm_earning = get_basic_earning(trade_date)
    if len(tp_earning) <= 0 or len(ttm_earning_5y) <= 0 or len(
            ttm_earning) <= 0:
        print("%s has no data" % trade_date)
        return
    else:
        tic = time.time()
        session = str(int(time.time() * 1000000 + datetime.now().microsecond))
        cache_data.set_cache(session + str(trade_date) + "1", trade_date,
                             tp_earning.to_json(orient='records'))
        cache_data.set_cache(session + str(trade_date) + "2", trade_date,
                             ttm_earning_5y.to_json(orient='records'))
        cache_data.set_cache(session + str(trade_date) + "3", trade_date,
                             ttm_earning.to_json(orient='records'))
        factor_earning.factor_calculate.delay(date_index=trade_date,
                                              session=session)
        time6 = time.time()
        print('earning_cal_time:{}'.format(time6 - tic))