コード例 #1
0
    def get_index_df(self, date):
        # 沪深大盘指数
        # 如果文件存在就读取已有的数据, 如果没有, 就缓存起来
        if self.stock_code.endswith('SH'):
            index_code = '000001.SH'
        else:
            index_code = '399001.SZ'

        file_name = saver.get_csv_name(date, index_code, self.start_date, self.end_date)
        if saver.check_file_existed(file_name):
            print('---- 读取csv数据 ----')
            df = saver.read_from_csv(file_name)
        else:
            if date == 'month':
                df = pro.index_monthly(ts_code=index_code, start_date=self.start_date, end_date=self.end_date,
                                       fields=self.fields)
            elif date == 'week':
                df = pro.index_weekly(ts_code=index_code, start_date=self.start_date, end_date=self.end_date,
                                      fields=self.fields)
            else:
                df = pro.index_daily(ts_code=index_code, start_date=self.start_date, end_date=self.end_date,
                                     fields=self.fields)
            print('---- 保存csv数据 ----')
            if len(df) != 0:
                saver.save_csv(df, file_name)
        return df
コード例 #2
0
    def get_filtered_stocks(self, pe=100, total_mv=1500000, turnover_rate=3):
        # 如果文件存在就读取已有的数据, 如果没有, 就缓存起来
        stock_name = saver.get_csv_data_name('stock_info',
                                             'recommended',
                                             end_date=self.last_bus_day)
        if saver.check_file_existed(stock_name):
            print('---- 读取csv数据 ----')
            df = saver.read_from_csv(stock_name)
        else:
            df = pro.daily_basic(
                ts_code='',
                trade_date=self.last_bus_day,
                fields='ts_code,trade_date,turnover_rate,pe,total_mv')
            # ---------------------------------------
            # 自定义过滤条件, pe 静态市盈率, total_mv 总市值, turnover_rate 换手率
            df = df.drop(df[(df['pe'] < 0) | (df['pe'] > pe) |
                            (df['total_mv'] < total_mv) |
                            (df['turnover_rate'] < turnover_rate)].index)
            # ---------------------------------------
            # 删除有空NaN的行
            df = df.dropna(axis=0, how='any')

            if len(df) != 0:
                saver.save_csv(df, stock_name)
        return df
コード例 #3
0
 def get_stock_list(self):
     # 股票列表
     file_name = saver.get_csv_data_name('stock_info', 'stock_list', self.end_date)
     if saver.check_file_existed(file_name):
         print('---- 读取csv数据 ----')
         df = saver.read_from_csv(file_name)
     else:
         df = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')
         print('---- 保存csv数据 ----')
         if len(df) != 0:
             saver.save_csv(df, file_name)
     return df
コード例 #4
0
 def get_stock_info_df(self):
     # 通用行情接口, 换手率tor,量比vr, 均线
     # 如果文件存在就读取已有的数据, 如果没有, 就缓存起来
     file_name = saver.get_csv_name('stock_info', self.stock_code, self.start_date, self.end_date)
     if saver.check_file_existed(file_name):
         print('---- 读取csv数据 ----')
         df = saver.read_from_csv(file_name)
     else:
         # 换手率tor,量比vr, 均线
         df = ts.pro_bar(ts_code=self.stock_code, start_date=self.start_date, end_date=self.end_date,
                         factors=['tor', 'vr'], ma=[5, 20, 60])
         print('---- 保存csv数据 ----')
         if len(df) != 0:
             saver.save_csv(df, file_name)
     return df
コード例 #5
0
 def get_all_stocks(self):
     # 如果文件存在就读取已有的数据, 如果没有, 就缓存起来
     stock_list_name = saver.get_csv_data_name('stocks',
                                               'all',
                                               end_date=self.last_bus_day)
     if saver.check_file_existed(stock_list_name):
         print('---- 读取csv数据 ----')
         data_list = saver.read_from_csv(stock_list_name)
     else:
         data_list = pro.stock_basic(
             exchange='',
             list_status='L',
             fields='ts_code,symbol,name,area,industry,list_date')
         if len(data_list) != 0:
             saver.save_csv(data_list, stock_list_name)
     return data_list
コード例 #6
0
 def get_stock_df(self, date):
     # 单个股票的数据
     # 如果文件存在就读取已有的数据, 如果没有, 就缓存起来
     file_name = saver.get_csv_name(date, self.stock_code, self.start_date, self.end_date)
     if saver.check_file_existed(file_name):
         print('---- 读取csv数据 ----')
         df = saver.read_from_csv(file_name)
     else:
         if date == 'month':
             df = pro.monthly(ts_code=self.stock_code, start_date=self.start_date, end_date=self.end_date,
                              fields=self.fields)
         elif date == 'week':
             df = pro.weekly(ts_code=self.stock_code, start_date=self.start_date, end_date=self.end_date,
                             fields=self.fields)
         else:
             df = pro.daily(ts_code=self.stock_code, start_date=self.start_date, end_date=self.end_date,
                            fields=self.fields)
         print('---- 保存csv数据 ----')
         if len(df) != 0:
             saver.save_csv(df, file_name)
     return df