def collect_stock_info():
    """
    存储股票最基本的信息
    """

    stock_data = get_pro_client().stock_basic(
        exchange='',
        list_status='L',
        fields='ts_code,symbol,name,area,industry,list_date')
    for i in range(len(stock_data)):
        stock = stock_data.iloc[i]
        cursor = StockInfo.objects(stock_number=stock.symbol)
        if cursor:
            stock_info = cursor[0]
        else:
            stock_info = StockInfo(stock_number=stock.symbol)

        stock_info.stock_name = stock['name']
        stock_info.area = stock.area
        stock_info.industry = stock.industry
        stock_info.list_date = stock.list_date

        try:
            stock_info.save()
        except Exception as e:
            logging.error("save base stock_info error, e = %s" % e)
示例#2
0
def start_collect_fundamentals():
    df_all_stock = ts.get_stock_basics()
    for i in range(len(df_all_stock)):
        df_stock = df_all_stock.iloc[i]
        if not int(df_stock['timeToMarket']):
            continue

        try:
            cursor = StockInfo.objects(stock_number=df_stock.name)
            if cursor:
                stock_info = cursor[0]
            else:
                stock_info = StockInfo()

            stock_info.update_time = datetime.datetime.now()
            stock_info.industry = df_stock['industry']
            stock_info.pe = float(df_stock['pe'])
            stock_info.liquid_assets = int(df_stock['liquidAssets'])
            stock_info.fixed_assets = int(df_stock['fixedAssets'])
            stock_info.reserved = int(df_stock['reserved'])
            stock_info.reserved_per_share = float(df_stock['reservedPerShare'])
            stock_info.esp = float(df_stock['esp'])
            stock_info.bvps = float(df_stock['bvps'])
            stock_info.pb = float(df_stock['pb'])
            stock_info.time_to_market = datetime.datetime.strptime(
                str(df_stock['timeToMarket']), '%Y%m%d')
            stock_info.undp = float(df_stock['undp'])
            stock_info.perundp = float(df_stock['perundp'])
            stock_info.rev = float(df_stock['rev'])
            stock_info.profit = float(df_stock['profit'])
            stock_info.gpr = float(df_stock['gpr'])
            stock_info.npr = float(df_stock['npr'])
            stock_info.holders = int(df_stock['holders'])

            stock_info.save()
        except Exception as e:
            logging.error(
                'Error when collect stock %s fundamentals from tushare:%s' %
                (df_stock.name, str(e)))