def run_console(): sas = stock_analysis_system.StockAnalysisSystem() sas.check_initialize() # update_special() # update_local([ # # 'Market.SecuritiesInfo', # # # # 'Market.NamingHistory', # # 'Market.TradeCalender', # # # # 'Finance.Audit', # # 'Finance.BalanceSheet', # # 'Finance.IncomeStatement', # # 'Finance.CashFlowStatement', # # # # 'Stockholder.PledgeStatus', # # 'Stockholder.PledgeHistory', # # 'Stockholder.Statistics', # # # # 'TradeData.Stock.Daily', # # # # 'Market.IndexInfo', # # 'TradeData.Index.Daily', # ], True) # run_strategy() run_calc_factor() exit(0)
def main(): app = QApplication(sys.argv) sas = stock_analysis_system.StockAnalysisSystem() data_hub = sas.get_data_hub_entry() data_center = data_hub.get_data_center() dlg = WrapperQDialog(DataHubUi(data_center)) dlg.exec()
def run_calc_factor(): sas = stock_analysis_system.StockAnalysisSystem() data_hub = sas.get_data_hub_entry() data_center = data_hub.get_data_center() # factor_center = sas.get_factor_center() # factor_center.reload_plugin() # df = factor_center.query('000021.SZSE', # ['货币资金/有息负债', '货币资金/短期负债', '流动比率', '速动比率'], # (default_since(), now()), {}, {}) # print(df) check_fields = [ '货币资金/有息负债', '货币资金/短期负债', '有息负债/资产总计', '有息负债/货币金融资产', '流动比率', '速动比率' ] df = data_center.query('Factor.Finance', '000021.SZSE', (default_since(), now()), fields=check_fields, readable=True) print(df) data_center.update_local_data('Factor.Finance', '000021.SZSE', (default_since(), now()), fields=check_fields) df = data_center.query('Factor.Finance', '000021.SZSE', (default_since(), now()), fields=check_fields, readable=True) print(df)
def test_entry() -> bool: ret = True sas = stock_analysis_system.StockAnalysisSystem() data_hub = sas.get_data_hub_entry() data_center = data_hub.get_data_center() df = data_center.query_from_plugin('Finance.BalanceSheet', '600000', (text2date('2010-01-01'), today()), test_flag=True) if df is None: ret = False print('Dump Finance.BalanceSheet Failed.') df = data_center.query_from_plugin('Finance.IncomeStatement', '600000', (text2date('2010-01-01'), today()), test_flag=True) if df is None: ret = False print('Dump Finance.IncomeStatement Failed.') df = data_center.query_from_plugin('Finance.CashFlowStatement', '600000', (text2date('2010-01-01'), today()), test_flag=True) if df is None: ret = False print('Dump Finance.CashFlowStatement Failed.') return ret
def main(): sas = stock_analysis_system.StockAnalysisSystem() sas.check_initialize() app = QApplication(sys.argv) main_wnd = main_ui.MainWindow() main_wnd.show() app.exec_()
def main(): sas = stock_analysis_system.StockAnalysisSystem() sas.check_initialize() # run_console() run_ui() # run_test() print('Process Quit.')
def run_test(): sas = stock_analysis_system.StockAnalysisSystem() data_hub = sas.get_data_hub_entry() data_center = data_hub.get_data_center() result = data_center.query('Finance.BalanceSheet', '600000.SSE', fields=['存货', '长期待摊费用', '拆出资金'], readable=True) assert '存货' in result.columns assert '拆出资金' in result.columns assert '长期待摊费用' in result.columns
def test_entry() -> bool: ret = True sas = stock_analysis_system.StockAnalysisSystem() if not sas.check_initialize(): print('StockAnalysisSystem init fail.') print(sas.get_log_errors()) return False data_hub = sas.get_data_hub_entry() se = sas.get_strategy_entry() # stock_list = data_hub.get_data_utility().get_stock_list() # stock_ids = [_id for _id, _name in stock_list] # stock_ids = ['600518.SSE'] stock_ids = ['000004.SZSE'] clock = Clock() result = se.run_strategy( stock_ids, [ # '7a2c2ce7-9060-4c1c-bca7-71ca12e92b09', # 'e639a8f1-f2f5-4d48-a348-ad12508b0dbb', # 'f39f14d6-b417-4a6e-bd2c-74824a154fc0', # '3b01999c-3837-11ea-b851-27d2aa2d4e7d', # '1fdee036-c7c1-4876-912a-8ce1d7dd978b', # 'b0e34011-c5bf-4ac3-b6a4-c15e5ea150a6', # 'd811ebd6-ee28-4d2f-b7e0-79ce0ecde7f7', # '2c05bb4c-935e-4be7-9c04-ae12720cd757', # 'e6ab71a9-0c9f-4500-b2db-d682af567f70', # '4ccedeea-b731-4b97-9681-d804838e351b', 'e515bd4b-db4f-49e2-ac55-1927a28d2a1c', ]) # Dummy analyzers for test # result = se.run_strategy(stock_ids, [ # '5d19927a-2ab1-11ea-aee4-eb8a702e7495', # 'bc74b6fa-2ab1-11ea-8b94-03e35eea3ca4', # '6b23435c-2ab1-11ea-99a8-3f957097f4c9', # 'd0b619ba-2ab1-11ea-ac32-43e650aafd4f', # '78ffae34-2ab1-11ea-88ff-634c407b44d3', # 'd905cdea-2ab1-11ea-9e79-ff65d4808d88', # ]) print('Analysis time spending: ' + str(clock.elapsed_s()) + ' s') passed_securities = pick_up_pass_securities(result, 50) print('Passed securities' + str(passed_securities)) clock.reset() name_dict = sas.get_strategy_entry().strategy_name_dict() generate_analysis_report(result, 'analysis_report.xlsx', name_dict) print('Generate report time spending: ' + str(clock.elapsed_s()) + ' s') return ret
def run_ui(): app = QApplication(sys.argv) sas = stock_analysis_system.StockAnalysisSystem() while not sas.is_initialized(): dlg = WrapperQDialog(config_ui.ConfigUi()) dlg.exec() sas.check_initialize() main_wnd = main_ui.MainWindow() main_wnd.show() sys.exit(app.exec())
def update_special(): sas = stock_analysis_system.StockAnalysisSystem() data_hub = sas.get_data_hub_entry() data_center = data_hub.get_data_center() data_utility = data_hub.get_data_utility() df1 = data_center.query_from_plugin('Finance.Audit', '000021.SZSE', force=True) df2 = data_center.query_from_plugin('Finance.BalanceSheet', '000021.SZSE', force=True) df3 = data_center.query_from_plugin('Finance.IncomeStatement', '000021.SZSE', force=True) df4 = data_center.query_from_plugin('Finance.CashFlowStatement', '000021.SZSE', force=True) print(df1) print(df2) print(df3) print(df4)
def update_local(update_list: [str], force: bool = False): sas = stock_analysis_system.StockAnalysisSystem() data_hub = sas.get_data_hub_entry() data_center = data_hub.get_data_center() data_utility = data_hub.get_data_utility() if 'Market.SecuritiesInfo' in update_list: print('Updating SecuritiesInfo...') data_center.update_local_data('Market.SecuritiesInfo', force=force) if 'Market.NamingHistory' in update_list: print('Updating Naming History...') data_center.update_local_data('Market.NamingHistory', force=force) if 'Market.TradeCalender' in update_list: print('Updating TradeCalender...') data_center.update_local_data('Market.TradeCalender', exchange='SSE', force=force) stock_list = data_utility.get_stock_list() start_total = time.time() print('Updating Finance Data for All A-SHARE Stock.') counter = 0 for stock_identity, name in stock_list: start_single = time.time() print('Updating Finance Data for ' + stock_identity + ' [' + name + ']') if 'Finance.Audit' in update_list: data_center.update_local_data('Finance.Audit', stock_identity, force=force) if 'Finance.BalanceSheet' in update_list: data_center.update_local_data('Finance.BalanceSheet', stock_identity, force=force) if 'Finance.IncomeStatement' in update_list: data_center.update_local_data('Finance.IncomeStatement', stock_identity, force=force) if 'Finance.CashFlowStatement' in update_list: data_center.update_local_data('Finance.CashFlowStatement', stock_identity, force=force) if 'Stockholder.PledgeStatus' in update_list: data_center.update_local_data('Stockholder.PledgeStatus', stock_identity, force=force) if 'Stockholder.PledgeHistory' in update_list: data_center.update_local_data('Stockholder.PledgeHistory', stock_identity, force=force) counter += 1 print('Done (%s / %s). Time Spending: %s s' % (counter, len(stock_list), time.time() - start_single)) # For the sake of: # 抱歉,您每分钟最多访问该接口80次,权限的具体详情访问:https://tushare.pro/document/1?doc_id=108 # time.sleep(1) print('Update Finance Data for All A-SHARE Stock Done. Time Spending: ' + str(time.time() - start_total) + 's')
def test_entry() -> bool: ret = True sas = stock_analysis_system.StockAnalysisSystem() data_hub = sas.get_data_hub_entry() data_center = data_hub.get_data_center() df = data_center.query_from_plugin('Market.SecuritiesInfo', '', test_flag=True) if df is None: ret = False print('Test Market.SecuritiesInfo Failed.') df = data_center.query_from_plugin('Market.TradeCalender', 'A-SHARE', (default_since(), today()), test_flag=True) if df is None: ret = False print('Test Market.SecuritiesInfo Failed.') return ret
def update_local(update_list: [str], force: bool = False): sas = stock_analysis_system.StockAnalysisSystem() data_hub = sas.get_data_hub_entry() data_center = data_hub.get_data_center() data_utility = data_hub.get_data_utility() if 'Market.SecuritiesInfo' in update_list: print('Updating SecuritiesInfo...') data_center.update_local_data('Market.SecuritiesInfo', force=force) if 'Market.NamingHistory' in update_list: print('Updating Naming History...') data_center.update_local_data('Market.NamingHistory', force=force) if 'Market.TradeCalender' in update_list: print('Updating TradeCalender...') data_center.update_local_data('Market.TradeCalender', exchange='SSE', force=force) stock_list = data_utility.get_stock_list() start_total = time.time() print('Updating Finance Data for All A-SHARE Stock.') counter = 0 for stock_identity, name in stock_list: start_single = time.time() print('Updating Finance Data for ' + stock_identity + ' [' + name + ']') if 'Finance.Audit' in update_list: data_center.update_local_data('Finance.Audit', stock_identity, force=force) if 'Finance.BalanceSheet' in update_list: data_center.update_local_data('Finance.BalanceSheet', stock_identity, force=force) if 'Finance.IncomeStatement' in update_list: data_center.update_local_data('Finance.IncomeStatement', stock_identity, force=force) if 'Finance.CashFlowStatement' in update_list: data_center.update_local_data('Finance.CashFlowStatement', stock_identity, force=force) if 'TradeData.Stock.Daily' in update_list: data_center.update_local_data('TradeData.Stock.Daily', stock_identity, force=force) if 'Stockholder.PledgeStatus' in update_list: data_center.update_local_data('Stockholder.PledgeStatus', stock_identity, force=force) if 'Stockholder.PledgeHistory' in update_list: data_center.update_local_data('Stockholder.PledgeHistory', stock_identity, force=force) if 'Stockholder.Statistics' in update_list: data_center.update_local_data('Stockholder.Statistics', stock_identity, force=force) counter += 1 print('Done (%s / %s). Time Spending: %s s' % (counter, len(stock_list), time.time() - start_single)) if 'Market.IndexInfo' in update_list: print('Updating IndexInfo...') data_center.update_local_data('Market.IndexInfo', force=force, dump_flag=True) from DataHub.DataHubEntry import DEPENDS_INDEX # index_list = data_utility.get_index_list() index_list = DEPENDS_INDEX print('Updating Index Data for All Support Market.') counter = 0 for index_identity, name in index_list: start_single = time.time() if 'TradeData.Index.Daily' in update_list: data_center.update_local_data('TradeData.Index.Daily', index_identity, force=force) counter += 1 print('Done (%s / %s). Time Spending: %s s' % (counter, len(index_list), time.time() - start_single)) print('Update Finance Data for All A-SHARE Stock Done. Time Spending: ' + str(time.time() - start_total) + 's')