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'],\
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'))