Пример #1
0
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');
Пример #2
0
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')
Пример #3
0
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'],\