def recreate_stock_qfq_data(): start = MIN_START_DATE end = date_time_utils.Date().as_str() init_qfq_repo() print('START recreate QFQ data') code_list = SECURITY_DATA_READ_SERVICE.read_security_codes() execute_tasks(code_list, update_qfq_for_single_code, start, end) print('DONE recreate QFQ data')
def recreate_all_codes(self, codes, create_start_date, end): DB_CLIENT.remove_all_from(self.repo_name()) DB_CLIENT.create_index_for_collection_with_date_and_code( self.repo_name()) start = date_time_utils.Date.from_str(create_start_date) end = date_time_utils.Date.from_str(end) executor.execute_tasks(codes, self.update_for_single_code, start.as_str(), end.as_str())
def update_all_codes(self, codes): end = date_time_utils.Date() start = end.get_before(days=self.days_to_update()) executor.execute_tasks( codes, self.update_for_single_code, start.as_str(), end.as_str() )
def recreate_all_codes(self, start_date, end): DB_CLIENT.remove_all_from(self.repo_name_for_backtest()) DB_CLIENT.remove_all_from(self.repo_name_for_trade()) DB_CLIENT.create_index_for_collection_with_date_and_code(self.repo_name_for_backtest()) DB_CLIENT.create_index_for_collection_with_date_and_code(self.repo_name_for_trade()) code_list = SECURITY_DATA_READ_SERVICE.read_security_codes() start = date_time_utils.Date.from_str(start_date) end = date_time_utils.Date.from_str(end) executor.execute_tasks(code_list, self.update_for_single_code, start.as_str(), end.as_str())
def update_bars_by_dates(self, start, end, typ: SeType = SeType.Stock, freq: SeFreq = SeFreq.DAY, codes=None): DB_CLIENT.create_index(typ.repo_name(freq), freq.keys_to_index()) if codes is None: codes = self.read_security_codes(typ) executor.execute_tasks(codes, self.do_fetch_and_replace_by_dates, typ, start, end, freq) print("These codes failed to update: [" + ','.join(self.failed_codes) + "]")
def update_bars(self, typ: SeType = SeType.Stock, freq: SeFreq = SeFreq.DAY, codes=None, days_to_update=DAYS_TO_UPDATE): DB_CLIENT.create_index(typ.repo_name(freq), freq.keys_to_index()) if codes is None: codes = self.read_security_codes(typ) end = date_time_utils.Date() start = end.get_before(days_to_update) executor.execute_tasks(codes, self.do_fetch_and_save_bars, typ, start.as_str(), end.as_str(), freq) print("These codes failed to update: [" + ','.join(self.failed_codes) + "]")
def recreate_all_codes(self, codes, create_start_date=DEFAULT_MIN_START_DATE): if codes is None: if self.db_service.confirm_and_drop(): codes = SECURITY_DATA_READ_SERVICE.read_security_codes() else: return else: self.db_service.remove_all(codes) end = Date() start = Date.from_str(create_start_date) executor.execute_tasks(codes, self.update_for_single_code, start.as_str(), end.as_str())
def refetch_and_save_bars(self, typ: SeType, freq: SeFreq = SeFreq.DAY, codes=None): if codes is None: if self.__confirm_drop(): self.drop_bar_repo(typ, freq) print('删除完成。') codes = self.read_security_codes(typ) else: print("操作已取消。") return else: DB_CLIENT.remove_all_from(typ.repo_name(freq), query={'code': { '$in': codes }}) DB_CLIENT.create_index(typ.repo_name(freq), freq.keys_to_index()) end = date_time_utils.Date() start = date_time_utils.Date.from_str(MIN_START_TIME) executor.execute_tasks(codes, self.do_fetch_and_save_bars, typ, start.as_str(), end.as_str(), freq)
def verify_xian_backtest(): repo1 = 'xian_backtest' repo2 = 'xian_stock_day_long_fp' # codes = ['600158'] execute_tasks(codes, verifier.compare_basic_data_of_repos, start, end, repo1, repo2, ['open', 'close'])
def update_stock_qfq_data(): end = date_time_utils.Date() start = end.get_before(days=15) code_list = SECURITY_DATA_READ_SERVICE.read_security_codes() execute_tasks(code_list, update_qfq_for_single_code, start.as_str(), end.as_str())
def update_by_dates(self, codes, start, end): executor.execute_tasks(codes, self.do_update_by_dates_for_code, start, end)
def verify_chan_fp(): repo1 = 'indicator_chan_current_fp_1min' repo2 = 'indicator_chan_current_fp_1min_copy' # codes = ['600158'] execute_tasks(codes, verifier.compare_basic_data_of_repos, start, end, repo1, repo2, ['pFpTime', 'pFpType', 'pFpPrice'])
def verify_chan_zs(): repo1 = 'indicator_chan_current_zs_1min' repo2 = 'indicator_chan_current_zs_1min_copy' # codes = ['600158'] execute_tasks(codes, verifier.compare_basic_data_of_repos, start, end, repo1, repo2, ['xd_time', 'zs_time', 'zs_low', 'zs_high'])
def verify_fp_marks_data(): for fpd in [20, 50, 120]: repo1 = 'fp_marks_' + str(fpd) repo2 = 'indicator_fp_marks_' + str(fpd) + '_day' cols = ['fp_type', 'fp_around_' + str(fpd)] execute_tasks(codes, verifier.compare_basic_data_of_repos, start, end, repo1, repo2, cols)
def update_all_codes(self, days_to_update=60): code_list = SECURITY_DATA_READ_SERVICE.read_security_codes() end = date_time_utils.Date() start = end.get_before(days=int(days_to_update * 1.5)) executor.execute_tasks(code_list, self.update_for_single_code, start.as_str(), end.as_str())
def verify_qfq_data(): repo1 = 'stock_day_qfq' repo2 = 'stock_day_qfq_new_stock_day_with_old_xdxr' # codes = ['600158'] execute_tasks(codes, verifier.compare_basic_data_of_repos, start, end, repo1, repo2, BASIC_DATA_COLUMNS)
def recreate_for_codes(self, codes, start_date, end): DB_CLIENT.remove_by_codes_from(self.repo_name_for_backtest(), codes) DB_CLIENT.remove_by_codes_from(self.repo_name_for_trade(), codes) start = date_time_utils.Date.from_str(start_date) end = date_time_utils.Date.from_str(end) executor.execute_tasks(codes, self.update_for_single_code, start.as_str(), end.as_str())