def exchange_suspend_info(ref_date, force_update=False): start_date = ref_date if not force_update: start_date = (find_latest_date() + dt.timedelta(days=1)) end_date = ref_date date_range = pd.date_range(start_date, end_date) datas = [] for date in date_range: if isBizDay('china.sse', date): datas.append(suspend_info(date.strftime('%Y-%m-%d'))) spyder_logger.info('Scraping finished for date {0}'.format(date)) if not datas: spyder_logger.info('No data is available for {0}'.format(ref_date)) return total_table = pd.concat(datas) total_table.drop_duplicates(['停(复)牌时间', '证券代码'], inplace=True) if not total_table.empty: insert_table(total_table, ['effectiveDate', 'instrumentID', 'instrumentName', 'status', 'reason', 'stopTime'], 'suspend_info', exchange_db_settings)
def fund_holding_spyder(ref_date, force_update=False): start_date = ref_date if not force_update: start_date = (find_latest_date() + dt.timedelta(days=1)) end_date = dt.datetime.now() - dt.timedelta(days=60) total_table = load_fund_holding(start_date, end_date) if not total_table.empty: insert_table(total_table, [ 'howbuyCODE', 'fundName', 'publicationDate', 'holdingAmount', 'holdingPercentage', 'changeAmount', 'instrumentID', 'instrumentName' ], 'howbuy_fund_holding', hedge_fund_db_settings)
def exchange_announcement_info(ref_date): total_table = announcement_info(ref_date.strftime('%Y-%m-%d')) if total_table.empty: spyder_logger.info('No new data is available for {0}'.format(ref_date)) return total_table.drop_duplicates(['url'], inplace=True) if not total_table.empty: insert_table(total_table, [ 'reportDate', 'instrumentID', 'title', 'url', 'updateTime', 'exchangePlace' ], 'announcement_info', exchange_db_settings)
def fund_type_spyder(ref_date, force_update=False): ref_date = ref_date.strftime('%Y-%m-%d') if not force_update: latest_next_date = (find_latest_date() + dt.timedelta(days=1)).strftime('%Y-%m-%d') ref_date = latest_next_date total_table = load_howbuy_fund_type(ref_date) if not total_table.empty: insert_table(total_table, [ 'howbuyCODE', 'fundName', 'fundManagementComp', 'manager', 'setupDate', 'howbuyStrategy', 'adjPrice', 'priceDate' ], 'howbuy_fund_type', hedge_fund_db_settings)
def fund_style_return_spyder(ref_date, force_update=False): start_month = int(ref_date.strftime('%Y%m')) if not force_update: latest_date = find_latest_date() next_month_start = latest_date + dt.timedelta(days=31) latest_next_month = int(next_month_start.strftime('%Y%m')) start_month = latest_next_month total_table = load_howbuy_style_return(start_month) if not total_table.empty: total_table = format_table(total_table) insert_table(total_table, [ 'tradingDate', 'howbuyStrategy', 'max_ret', 'min_ret', 'median_ret', 'mean_ret' ], 'howbuy_style_ret', hedge_fund_db_settings)
def fund_index_spyder(ref_date, force_update=False): start_month = int(ref_date.strftime('%Y%m')) if not force_update: latest_date = find_latest_date() latest_next_month = int(latest_date.strftime('%Y%m')) + 1 start_month = latest_next_month total_table = load_fund_index(start_month=start_month) if not total_table.empty: total_table = format_table(total_table) insert_table(total_table, ['tradingDate', 'howbuyCode', 'indexName', 'indexLevel', 'indexLevelChg', 'adjustedHS300'], 'howbuy_fund_index', hedge_fund_db_settings)