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)
def collect_stock_info(): """ 存储股票最基本的信息 """ url = eastmoney_stock_api data = request_and_handle_data(url) stock_data = data['rank'] for i in stock_data: stock = i.split(',') stock_number = stock[1] stock_name = stock[2] total_value = 0 if stock[-2] == '-' else stock[-2] cursor = StockInfo.objects(stock_number=stock_number) if cursor: stock_info = cursor[0] stock_info.total_value = int(total_value) stock_info.update_time = datetime.datetime.now() else: stock_info = StockInfo(stock_number=stock_number, stock_name=stock_name, update_time=datetime.datetime.now(), total_value=int(total_value)) try: stock_info.save() except Exception as e: logging.error('Saving %s data failed: %s' % (stock_info.stock_number, e))
def collect_stock_info(): """ 存储股票最基本的信息 """ url = eastmoney_stock_api data = request_and_handle_data(url) stock_data = data['rank'] for i in stock_data: stock = i.split(',') stock_number = stock[1] stock_name = stock[2] stock_info = StockInfo(stock_number=stock_number, stock_name=stock_name, update_time=datetime.datetime.now()) if not check_duplicate(stock_info): try: stock_info.save() except Exception as e: logging.error('Saving %s data failed:' % (stock_info.stock_number, e))
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)))