def save_stock_h_data_revote(stocks=None, start_date=None, end_date=None, autype='qfp', index=False):
    """获取B{所有}历史复权数据
    
    Args:
        stocks:list,股票代码 e.g. ['600848', '000001'], 为None, 则取stock_basic中所有的股票
        start_date:string,开始日期 format:YYYY-MM-DD 为空时取当前日期
        end_date:string,结束日期 format:YYYY-MM-DD 为空时取去年今日
        autype:string,复权类型,qfq-前复权 hfq-后复权 None-不复权,默认为qfq
        index:Boolean,是否是大盘指数,默认为False
    """
    log_save_type = 'all'
    is_delete = False

    if stocks:
        assert isinstance(stocks, list), 'stocks must be a list type.'
        log_save_type = 'select'
    else:
        is_delete = True
        d = today_line
        if end_date is not None:
            d = end_date
        stocks = [stock.code for stock in base_service.get_stocks(d)]
    last_stock_code = stocks[-1]
    logger.info('Last stock code is: %s' % last_stock_code)
    save_h_revote_data_thread = threading.Thread(name='save_h_revote_data_thread',
                                                 target=transaction_dal.save_h_revote_data)
    save_h_revote_data_thread.start()
    # threading.Timer(1, check_thread_alive, args=(save_h_revote_data_thread,)).start()
    if end_date is not None:
        assert start_date is not None, 'start_date must be not None, when end_date is not None.'
    if start_date is not None:
        if end_date is None:
            end_date = today_line
        logger.info('Begin save %s stocks history h revote data, start date is: %s, end date is: %s.' %
                    (log_save_type, start_date, end_date))
    else:
        logger.info('Begin save %s stocks history k data, all date.' % log_save_type)
    deleted = True
    if is_delete:
        if start_date is None:
            deleted = table_service.truncate_table(RevoteHistoryData)
        else:
            deleted = util_dal.delete_start_date_end_date_data(RevoteHistoryData, start_date, end_date)
    if deleted:
        for stock in stocks:
            transaction_dal.get_h_revote_data(stock, start_date, end_date, autype, index)
    if is_delete and not deleted:
        logger.error('删除表数据错误. Model is %s.' % RevoteHistoryData)
    if start_date is not None:
        logger.info('End save %s stocks history h revote data, start date is: %s, end date is: %s.' %
                    (log_save_type, start_date, end_date))
    else:
        logger.info('End save %s stocks history k data, all date.' % log_save_type)
    transaction_dal.h_revote_data_queue.put((last_stock_code, 'stop', 'stop', 'stop'))
Beispiel #2
0
def save_deposit_rate():
    """得到存款利率"""
    table_service.truncate_table(DepositsRate)
    data_dicts = macro_dal.get_deposit_rate()
    if data_dicts:
        util_dal.save_data(DepositsRate, data_dicts)
Beispiel #3
0
def save_ppi():
    """工业品出厂价格指数"""
    table_service.truncate_table(PPI)
    data_dicts = macro_dal.get_ppi()
    if data_dicts:
        util_dal.save_data(PPI, data_dicts)
Beispiel #4
0
def save_gdp_three_demands():
    """三大需求对GDP贡献"""
    table_service.truncate_table(GdpThreeDemands)
    data_dicts = macro_dal.get_gdp_three_demands()
    if data_dicts:
        util_dal.save_data(GdpThreeDemands, data_dicts)
Beispiel #5
0
def save_gdp_three_industry_contrib():
    """三大产业贡献率"""
    table_service.truncate_table(GdpThreeIndustryContrib)
    data_dicts = macro_dal.get_gdp_three_industry_contrib()
    if data_dicts:
        util_dal.save_data(GdpThreeIndustryContrib, data_dicts)
Beispiel #6
0
def save_money_supply():
    """得到货币供应量"""
    table_service.truncate_table(MoneySupply)
    data_dicts = macro_dal.get_money_supply()
    if data_dicts:
        util_dal.save_data(MoneySupply, data_dicts)
Beispiel #7
0
def save_gdp_year():
    """国内生产总值(年度)"""
    table_service.truncate_table(GrossDomesticProductYear)
    data_dicts = macro_dal.get_gdp_year()
    if data_dicts:
        util_dal.save_data(GrossDomesticProductYear, data_dicts)
Beispiel #8
0
def save_gem_classified():
    """获取创业板股票数据,即查找所有300开头的股票"""
    table_service.truncate_table(GemClassified)
    classification_dal.save_gem_classified()
Beispiel #9
0
def save_st_classified():
    """获取风险警示板股票数据,即查找所有st股票"""
    table_service.truncate_table(StClassified)
    classification_dal.save_st_classified()
Beispiel #10
0
def save_area_classified():
    """按地域对股票进行分类,即查找出哪些股票属于哪个省份。"""
    table_service.truncate_table(AreaClassified)
    classification_dal.save_area_classified()
Beispiel #11
0
def save_sme_classified():
    """获取中小板股票数据,即查找所有002开头的股票"""
    table_service.truncate_table(SmeClassified)
    classification_dal.save_sme_classified()
Beispiel #12
0
def save_concept_classified():
    """处理股票概念分类.现实的二级市场交易中,经常会以”概念”来炒作,在数据分析过程中,可根据概念分类监测资金等信息的变动情况。"""
    table_service.truncate_table(ConceptClassified)
    classification_dal.save_concept_classified()
Beispiel #13
0
def save_industry_classified():
    """处理行业分类"""
    logger.info('save_industry_classified')
    table_service.truncate_table(IndustryClassified)
    classification_dal.save_industry_classified()
def save_stocks_k_data(stocks=None, start_date=None, end_date=None, autype='qfq', index=False,
                       ktype=None):
    """获取k线数据的历史复权数据
    
    新接口融合了get_hist_data和get_h_data两个接口的功能,即能方便获取日周月的低频数据,
    也可以获取5、15、30和60分钟相对高频的数据。
    同时,上市以来的前后复权数据也能在一行代码中轻松获得,当然,您也可以选择不复权。
    
    Args:
        stocks:list,股票代码 e.g. ['600848', '000001'], 为None, 则取stock_basic中所有的股票
        start_date:string,开始日期 format:YYYY-MM-DD 为空时取当前日期
        end_date:string,结束日期 format:YYYY-MM-DD 为空时取去年今日
        autype:string,复权类型,qfq-前复权 hfq-后复权 None-不复权,默认为qfq
        index:Boolean,是否是大盘指数,默认为False
        ktype: 数据类型: D, W M, 默认为D
    """
    ktypes = ['D', 'W', 'M', '5', '15', '30', '60']
    log_save_type = 'all'
    is_delete = False
    if stocks:
        assert isinstance(stocks, list), 'stocks must be a list type.'
        log_save_type = 'select'
    else:
        is_delete = True
        d = today_line
        if end_date is not None:
            d = end_date
        stocks = [stock.code for stock in base_service.get_stocks(d)]
    last_stock_code = stocks[-1]
    logger.info('Last stock code is: %s' % last_stock_code)
    save_stock_k_data_thread = threading.Thread(name='save_stock_k_data_thread',
                                                target=transaction_dal.save_stock_k_data)
    save_stock_k_data_thread.start()
    # threading.Timer(1, check_thread_alive, args=(save_stock_k_data_thread,)).start()
    if end_date is not None:
        assert start_date is not None, 'start_date must be not None, when end_date is not None.'
    if start_date is not None:
        if end_date is None:
            end_date = today_line
        logger.info('Begin save %s stocks history k data, start date is: %s, end date is: %s, ktype is: %s.' %
                    (log_save_type, start_date, end_date, ktype))
    else:
        logger.info('Begin save %s stocks history k data, all date, ktype is: %s.' % (log_save_type, ktype))
    if ktype is not None:
        assert ktype in ktypes, 'ktype must be one of %s' % ktypes
        model = HistoryKDataD
        if ktype.upper() == 'D':
            model = HistoryKDataD
        elif ktype.upper() == 'W':
            model = HistoryKDataW
        elif ktype.upper() == 'M':
            model = HistoryKDataM
        elif ktype == '5':
            model = HistoryKData5
        elif ktype == '15':
            model = HistoryKData15
        elif ktype == '30':
            model = HistoryKData30
        elif ktype == '60':
            model = HistoryKData60
        else:
            pass
        deleted = True
        if is_delete:
            if start_date is None:
                deleted = table_service.truncate_table(model)
            else:
                deleted = util_dal.delete_start_date_end_date_data(model, start_date, end_date)
        if deleted:
            for stock in stocks:
                transaction_dal.get_stock_k_data(stock, start_date, end_date, autype, index, ktype)
        if is_delete and not deleted:
            logger.error('删除表数据错误. Model is %s.' % model)
    else:
        for _ktype in ktypes:
            if _ktype.upper() == 'D':
                model = HistoryKDataD
            elif _ktype.upper() == 'W':
                model = HistoryKDataW
            elif _ktype.upper() == 'M':
                model = HistoryKDataM
            elif _ktype == '5':
                model = HistoryKData5
            elif _ktype == '15':
                model = HistoryKData15
            elif _ktype == '30':
                model = HistoryKData30
            elif _ktype == '60':
                model = HistoryKData60
            else:
                pass
            deleted = True
            if is_delete:
                if start_date is None:
                    deleted = table_service.truncate_table(model)
                else:
                    deleted = util_dal.delete_start_date_end_date_data(model, start_date, end_date)
            if deleted:
                for stock in stocks:
                    transaction_dal.get_stock_k_data(stock, start_date, end_date, autype, index, _ktype)
            if is_delete and not deleted:
                logger.error('删除表数据错误. Model is %s.' % model)

    if start_date is not None:
        logger.info('End save %s stocks history k data, start date is: %s, end date is: %s, ktype is: %s.' %
                    (log_save_type, start_date, end_date, ktype))
    else:
        logger.info('End save %s stocks history k data, all date, ktype is: %s.' % (log_save_type, ktype))
    # for stop the save thread
    transaction_dal.stock_k_data_queue.put((last_stock_code, 'stop', 'stop', 'stop'))
Beispiel #15
0
def save_loan_rate():
    """得到贷款利率"""
    table_service.truncate_table(LoanRate)
    data_dicts = macro_dal.get_loan_rate()
    if data_dicts:
        util_dal.save_data(LoanRate, data_dicts)
Beispiel #16
0
def save_hs300s():
    """获取沪深300当前成份股及所占权重"""
    table_service.truncate_table(Hs300)
    classification_dal.save_hs300s()
Beispiel #17
0
def save_required_reserves_rate():
    """得到存款准备金率"""
    table_service.truncate_table(RequiredReservesRate)
    data_dicts = macro_dal.get_required_reserves_rate()
    if data_dicts:
        util_dal.save_data(RequiredReservesRate, data_dicts)
Beispiel #18
0
def save_sz50s():
    """上证50成分股"""
    table_service.truncate_table(Sz50)
    classification_dal.save_sz50s()
Beispiel #19
0
def save_money_supply_bal():
    """得到货币供应量(年底余额)"""
    table_service.truncate_table(MoneySupplyBal)
    data_dicts = macro_dal.get_money_supply_bal()
    if data_dicts:
        util_dal.save_data(MoneySupplyBal, data_dicts)
Beispiel #20
0
def save_zz500s():
    """中证500成分股"""
    table_service.truncate_table(Zz500)
    classification_dal.save_zz500s()
Beispiel #21
0
def save_gdp_quarter():
    """得到国内生产总值(季度)"""
    table_service.truncate_table(GrossDomesticProductQuarter)
    data_dicts = macro_dal.get_gdp_quarter()
    if data_dicts:
        util_dal.save_data(GrossDomesticProductQuarter, data_dicts)
Beispiel #22
0
def save_terminated():
    """获取已经被终止上市的股票列表,数据从上交所获取,目前只有在上海证券交易所交易被终止的股票。"""
    table_service.truncate_table(Terminated)
    classification_dal.save_terminated()
Beispiel #23
0
def save_gdp_three_industry_pull():
    """三大产业对GDP拉动"""
    table_service.truncate_table(GdpThreeIndustryPull)
    data_dicts = macro_dal.get_gdp_three_industry_pull()
    if data_dicts:
        util_dal.save_data(GdpThreeIndustryPull, data_dicts)
Beispiel #24
0
def save_suspend():
    """获取被暂停上市的股票列表,数据从上交所获取,目前只有在上海证券交易所交易被终止的股票。"""
    table_service.truncate_table(Suspend)
    classification_dal.save_suspend()
Beispiel #25
0
def save_cpi():
    """居民消费价格指数"""
    table_service.truncate_table(CPI)
    data_dicts = macro_dal.get_cpi()
    if data_dicts:
        util_dal.save_data(CPI, data_dicts)
def save_stocks_hist_data(stocks=None, start_date=None, end_date=None, ktype=None):
    """获取个股历史交易数据(包括均线数据),可以通过参数设置获取日k线、周k线、月k线数据。
    本接口只能获取近3年的日线数据
    """
    log_save_type = 'all'
    ktypes = ['D', 'W', 'M', '5', '15', '30', '60']
    is_delete = False
    if stocks:
        assert isinstance(stocks, list), 'stocks must be list.'
        log_save_type = 'select'
    else:
        is_delete = True
        d = today_line
        if end_date is not None:
            d = end_date
        stocks = [stock.code for stock in base_service.get_stocks(d)]
    last_stock_code = stocks[-1]
    logger.info('last_stock_code is: %s' % last_stock_code)
    save_his_data_thread = threading.Thread(name='save_his_data_thread',
                                            target=transaction_dal.save_his_data)
    save_his_data_thread.start()
    if end_date is not None:
        assert start_date is not None, 'start_date must be not None, when end_date is not None.'
    if start_date is not None:
        if end_date is None:
            end_date = today_line
        logger.info('Begin save %s stocks history data, start date is: %s, end date is: %s, ktype is: %s.'
                    % (log_save_type, start_date, end_date, ktype))
    else:
        logger.info('Begin save %s stocks history data, all date, ktype is: %s.'
                    % (log_save_type, ktype))

    if ktype is None:
        for _ktype in ktypes:
            if _ktype.upper() == 'D':
                model = HistoryDataD
            elif _ktype.upper() == 'W':
                model = HistoryDataW
            elif _ktype.upper() == 'M':
                model = HistoryDataM
            elif _ktype == '5':
                model = HistoryData5
            elif _ktype == '15':
                model = HistoryData15
            elif _ktype == '30':
                model = HistoryData30
            elif _ktype == '60':
                model = HistoryData60
            else:
                pass
            deleted = True
            if is_delete:
                if start_date is None:
                    deleted = table_service.truncate_table(model)
                else:
                    deleted = util_dal.delete_start_date_end_date_data(model, start_date, end_date)
            if deleted:
                for stock in stocks:
                        transaction_dal.get_his_data(stock, start_date=start_date, end_date=end_date, ktype=_ktype)
            if is_delete and not deleted:
                logger.error('删除表数据错误. Model is %s.' % model)
    else:
        assert ktype in ktypes, 'ktype must be one of %s' % ktypes
        model = HistoryDataD
        if ktype.upper() == 'D':
            model = HistoryDataD
        elif ktype.upper() == 'W':
            model = HistoryDataW
        elif ktype.upper() == 'M':
            model = HistoryDataM
        elif ktype == '5':
            model = HistoryData5
        elif ktype == '15':
            model = HistoryData15
        elif ktype == '30':
            model = HistoryData30
        elif ktype == '60':
            model = HistoryData60
        else:
            pass
        deleted = True
        if is_delete:
            if start_date is None:
                deleted = table_service.truncate_table(model)
            else:
                deleted = util_dal.delete_start_date_end_date_data(model, start_date, end_date)
        if deleted:
            for stock in stocks:
                transaction_dal.get_his_data(stock, start_date=start_date, end_date=end_date, ktype=ktype)
        if is_delete and not deleted:
            logger.error('删除表数据错误. Model is %s.' % model)

    if start_date is not None:
        logger.info('End save %s stocks history data, start date is: %s, end date is: %s, ktype is: %s.'
                    % (log_save_type, start_date, end_date, ktype))
    else:
        logger.info('End save %s stocks history data, all date, ktype is: %s.'
                    % (log_save_type, ktype))
    transaction_dal.his_data_queue.put((last_stock_code, 'stop', 'stop', 'stop'))