def main_financial_statistic_process(path): store_path = os.path.join(path,'statistic/') if not os.path.exists(store_path): os.makedirs(store_path) scu = SCU(path=path) stock_codes = scu.stock_codes_remove_no_stock_basic() FFC =financail_factor_statistic(path=path) sz50 = ts.get_sz50s() stock_codes = sz50['code'] stock_industry = ts.get_industry_classified() stock_codes = stock_industry[stock_industry['c_name'].isin(['房地产'])]['code'] #stock_codes = stock_codes.pop('000527') #stock_codes = ['000001','000002','000004'] statistic_stock_data = {} statistic_stock_min_len = 100 for stock_code in stock_codes: print("stock:",stock_code) FFC.FLS.load_all_financial_one_stock(stock_code) FFC.FLS.load_all_processed_stock_basic_one_stock([stock_code]) data_processed = FFC.financial_index_calc(stock_code) (row, colum) = data_processed.shape if(row<statistic_stock_min_len): statistic_stock_min_len = row statistic_stock_data[stock_code] = data_processed #plt.figure() #data_processed.plot.bar(data_processed.index) sum_data = statistic_stock_data[stock_codes[0]].iloc[-statistic_stock_min_len:,:] for stock_code in stock_codes[1:]: sum_data = sum_data + statistic_stock_data[stock_code].iloc[-statistic_stock_min_len:,:] pct_data = sum_data.pct_change(periods=4) pct_data.to_csv(store_path+'statistic_pct.csv'); sum_data.to_csv(store_path+'statistic_sum.csv');
def processed_all_stocks(): path_root = '../../../data/' scu = SCU(path=path_root) stock_codes = scu.stock_codes_remove_no_stock_basic() #stock_codes = ['001965'] #get_dates = ['2018/6/30'] SB = stock_basic(stock_codes, path_root) #SB.get_stocks_basic() SB.processed_stocks_basic() print('processed successfully')
def main_financial_data_process(path): scu = SCU(path=path) stock_codes = scu.stock_codes_remove_no_stock_basic() FFC =financail_factor_calc(path=path) #stock_codes = ['000001'] for stock_code in stock_codes: print("stock:",stock_code) FFC.FLS.load_all_financial_one_stock(stock_code) FFC.FLS.load_all_stock_basic_one_stock([stock_code]) data_processed = FFC.financial_index_calc(stock_code) FFC.FLS.store_process_financical_data(data_processed, stock_code)
def fetch_selected_factors(self, factors, dates): if not os.path.exists(self.path_factor_io): pd_factor_values = pd.DataFrame(dtype=float) list_columns = [] for factor in factors: print('processing factor is', factor) factor_value, column = self.fetch_one_factor(factor, dates) list_columns = list_columns + column pd_factor_values = pd.concat([pd_factor_values, factor_value], axis=1) pd_factor_values.columns = list_columns scu = SCU(path=self.path) pd_factor_values.index = scu.add_allstock_sh_sz(self.stock_codes) pd_factor_values.to_csv(self.path_factor_io, encoding='gbk') else: pd_factor_values = pd.read_csv(self.path_factor_io, index_col=0) return pd_factor_values
try: opts, args = getopt.getopt(sys.argv[1:],"f:",["filename="]) except getopt.GetoptError: print('test.py -o <outputfile>') sys.exit(2) for opt, arg in opts: if opt == '-h': print('test.py -o <outputfile>') elif opt in ("-f", "--filename"): filename = arg path = '../../../data/' path_rank = '../../../data/factor_rank' path_factor = '../../../data/factor_io' path_cluster = outputfile scu = SCU(path=path) stocks = scu.stock_codes_remove_no_stock_basic() #stocks = ['000001','000002','000004','000005','000006'] indexs = [ #earning capacity FID['roe'],\ FID['roa'],\ FID['profit_revenue'],\ FID['cash_incr_rate'],\ #FID['profit_cost'],\ #FID['equlity_incr_rate'],\ #grow capacity #FID['revenue_incr_rate'],\ #FID['profit_incr_rate'],\ #FID['cash_incr_rate'],\ #FID['asset_incr_rate'],\