Exemple #1
0
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)
Exemple #5
0
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)
Exemple #6
0
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)