def QA_save_stock_day_pg(start_date='19901219'):
    t = time.localtime(time.time())
    if int(time.strftime('%H%M%S', t)) < 190000:  #晚上七点之后在更新当天数据,以免不及时
        t = time.localtime(time.time() - 3600 * 24)
        tS = time.strftime("%Y-%m-%d", t)
    else:
        tS = time.strftime("%Y-%m-%d", t)
    end_date = tS
    try:
        mes = 'select distinct trade_date from stock_day;'
        trade_data_pg = load_data_from_postgresql(mes=mes).trade_date.tolist()
        for i in range(len(trade_data_pg)):
            trade_data_pg[i] = trade_data_pg[i].strftime("%Y-%m-%d")
    except:  #第一次运行
        trade_data_pg = list()

    if isinstance(start_date, int):
        start_date = QA_util_date_int2str(start_date)
    elif len(start_date) == 8:
        start_date = start_date[0:4] + '-' + start_date[
            4:6] + '-' + start_date[6:8]

    trade_date = QA_util_get_trade_range(start_date, end_date)
    trade_date2 = list(set(trade_date) ^ set(trade_data_pg))
    trade_date2.sort()
    if len(trade_date2) == 0:
        QA_util_log_info(
            'Stock day is up to date and does not need to be updated')
    for i in trade_date2:
        pass
        try:
            t = time.time()
            df = download_day_data_from_tushare(i)
            #i=i[7:10].lower()+i[0:6]
            save_data_to_postgresql('stock_day', df, 'append')
            t1 = time.time()
            QA_util_log_info('save ' + i + ' stock day success,take ' +
                             str(round(t1 - t, 2)) + ' S')
        except Exception as e:
            print(e)
Exemple #2
0
 def trade_range(self):
     return QA_util_get_trade_range(self.start_date, self.end_date)