コード例 #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)
コード例 #4
0
 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
コード例 #5
0
 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'],\
コード例 #6
0
import pandas as pd
from datetime import datetime
sys.path.append('C:/Users/ll/Desktop/rqalpha')
sys.path.append('../stock_get_finance_data')
import rqalpha as rqa
from stock_codes_utility import stock_codes_utility as SCU
from rqalpha.data.base_data_source import BaseDataSource
from rqalpha.data.instrument_mixin import InstrumentMixin
#from rqalpha.data.instrument_store import instrument_store

path = '../../../data/'
path_market = os.path.join(path, 'trade_market')
if not os.path.exists(path_market):
    os.makedirs(path_market)

scu = SCU(path=path)
stocks = scu.stock_codes_remove_no_stock_basic()
stocks = scu.add_allstock_xshg_xshe(stocks)

#rqa.update_bundle()
rqalpha_path = "~/.rqalpha"
data_bundle_path = os.path.join(os.path.expanduser(rqalpha_path), "bundle")
data = BaseDataSource(data_bundle_path)

Instru = InstrumentMixin(data._instruments._instruments)
for stock_code in stocks:
    print('procesing...', stock_code)
    stock_data = pd.DataFrame(
        data._all_day_bars_of(Instru.instruments(stock_code)))
    stock_data.datetime = stock_data.datetime.apply(
        lambda x: datetime.strptime(str(x)[:-6], '%Y%m%d'))