Example #1
0
class DaPanHangQing(object):
    def __init__(self):
        super(DaPanHangQing, self).__init__()

    def __call__(self, conns):
        self.base = Base()
        self.finacial_data = conns['financial_data']

        #清空表
        # self.finacial_data.dopost('TRUNCATE TABLE dapan_hangqing_date')
        # self.finacial_data.dopost('TRUNCATE TABLE dapan_code_name')

        # 实时行情
        hangqing = ts.get_index()
        today = self.base.gettoday()
        hangqing['date'] = today.replace('/', '-')
        #大盘指数每日行情数据
        self.base.batchwri(hangqing, 'dapan_hangqing_date', self.finacial_data)
        #大盘代码-名字对照表
        self.base.batchwri(hangqing[['code', 'name']], 'dapan_code_name',
                           self.finacial_data)

        #大盘代码-名字对照表去重
        duizhao = self.finacial_data.getdata('dapan_code_name')
        # print(duizhao.size)
        duizhao_qc = duizhao.drop_duplicates().sort_values(
            by='code').reset_index(drop=True)
        # print(df)
        self.finacial_data.dopost('TRUNCATE TABLE dapan_code_name')
        self.base.batchwri(duizhao_qc, 'dapan_code_name', self.finacial_data)
Example #2
0
class Shibor(object):
    def __init__(self):
        super(Shibor, self).__init__()

    def __call__(self, conns):
        self.base = Base()
        self.financial_data = conns['financial_data']
        year = self.base.gettoday()[:4]

        #Shibor拆放利率
        shibor_data = ts.shibor_data(year)
        print(shibor_data)
        self.base.batchwri(shibor_data, 'shibor_data', self.financial_data)

        #银行报价数据
        shibor_quote_date = ts.shibor_quote_data(year)
        self.base.batchwri(shibor_quote_date, 'shibor_quote_data',
                           self.financial_data)

        #Shibor均值数据
        shibor_ma_data = ts.shibor_ma_data(year)
        self.base.batchwri(shibor_ma_data, 'shibor_ma_data',
                           self.financial_data)

        #贷款基础利率(LPR)
        lpr_data = ts.lpr_data(year)
        self.base.batchwri(lpr_data, 'lpr_data', self.financial_data)

        #LPR均值数据
        lpr_ma_data = ts.lpr_ma_data(year)
        self.base.batchwri(lpr_ma_data, 'lpr_ma_data', self.financial_data)
class GeGuHangQing(object):
    def __init__(self):
        super(GeGuHangQing,self).__init__()
        self.close_res = []

    def __call__(self, conns, retry_num=3):
        '''
        抓取股票每日行情数据
        :param conns: 数据库连接
        :param retry_num: 重新获取数据的次数
        :return: 数据存储在数据库
        '''
        global hangqing
        self.base = Base()
        self.finacial_data = conns['financial_data']

        # self.finacial_data.dopost('TRUNCATE TABLE stock_hangqing_date')
        # self.finacial_data.dopost('TRUNCATE TABLE stock_code_name')

        #在股市收盘后,获取股票当日行情
        #出现"urllib.error.HTTPError: HTTP Error 456"的问题
        for i in range(retry_num+1):
            try:
                hangqing = ts.get_today_all()
                break
            except Exception as e:
                logger.warning('Retry get today stock data , the [%d] times, err %s' % (i, e.message))
                if i == retry_num:
                    logger.warning(traceback.format_exc())
                    raise e
                time.sleep(300)
        today = self.base.gettoday()
        hangqing['date'] = today.replace('/','-')
        #股市收盘后,trade现价就是股票的收盘价。
        hangqing.rename(columns={'trade': 'close'}, inplace=True)
        #去重
        hangqing_qc = hangqing.drop_duplicates().sort_values(by='code').reset_index(drop=True)
        # print(hangqing_qc)
        self.base.batchwri(hangqing_qc, 'stock_hangqing_date',self.finacial_data)
        self.base.batchwri(hangqing_qc[['code','name']], 'stock_code_name', self.finacial_data)

        #股票代码-名称对照表去重
        duizhao = self.finacial_data.getdata('stock_code_name')
        print(duizhao.size)
        duizhao_qc = duizhao.drop_duplicates().sort_values(by='code').reset_index(drop=True)
        # print(df)
        self.finacial_data.dopost('TRUNCATE TABLE stock_code_name')
        self.base.batchwri(duizhao_qc, 'stock_code_name', self.finacial_data)
Example #4
0
class LonghuBang(object):
    def __init__(self):
        super(LonghuBang,self).__init__()

    def __call__(self,conns):
        self.base=Base()
        self.financial_data=conns['financial_data']
        date=self.base.gettoday().replace('/','-')
        # print(date)

        # '''每日龙虎榜列表'''
        # for day in self.base.datelist('20180702','20180705'):
        #     day=day.replace('/','-')
        #     top_list=ts.top_list(day)
        #     self.base.batchwri(top_list,'top_list',self.financial_data)

        # '''
        # 名称:个股上榜统计
        # 参数说明:
        #         days:统计周期5、10、30和60日,默认为5日
        #         retry_count:当网络异常后重试次数,默认为3
        #         pause:重试时停顿秒数,默认为0'''
        # cap_tops=ts.cap_tops()
        # self.base.batchwri(cap_tops,'cap_tops',self.financial_data)

        # '''
        # 名称:营业部上榜统计
        # 参数说明:
        #         days:统计周期5、10、30和60日,默认为5日
        #         retry_count:当网络异常后重试次数,默认为3
        #         pause:重试时停顿秒数,默认为0'''
        # broker_tops=ts.broker_tops()
        # self.base.batchwri(broker_tops,'broker_tops',self.financial_data)

        # '''
        # 名称:机构席位追踪
        # 参数说明:
        #         days:统计周期5、10、30和60日,默认为5日
        #         retry_count:当网络异常后重试次数,默认为3
        #         pause:重试时停顿秒数,默认为0
        # '''
        # inst_tops=ts.inst_tops()
        # self.base.batchwri(inst_tops,'inst_tops',self.financial_data)

        '''机构成交明细'''
        inst_detail=ts.inst_detail()
        self.base.batchwri(inst_detail,'inst_detail',self.financial_data)