def _assert_created_instances(instances_list, super_class, config): class_list = [instance.__class__ for instance in instances_list] for eval_class in AdvancedManager.create_advanced_evaluator_types_list(super_class, config): eval_instance = eval_class() eval_instance.set_config(config) if eval_instance.get_is_enabled(): assert eval_class in class_list
def create_real_time_ta_evals(config, exchange_inst, symbol, relevant_evaluators, dispatchers_list): real_time_ta_eval_list = [] for real_time_eval_class in AdvancedManager.create_advanced_evaluator_types_list( RealTimeEvaluator, config): try: real_time_eval_class_instance = EvaluatorCreator.instantiate_real_time_evaluator( real_time_eval_class, exchange_inst, symbol) real_time_eval_class_instance.set_config(config) if EvaluatorCreator.is_relevant_evaluator( real_time_eval_class_instance, relevant_evaluators): real_time_eval_class_instance.set_logger( get_logger(real_time_eval_class.get_name())) is_dispatcher_client, is_evaluator_to_be_used = \ DispatcherCreator.bind_to_dispatcher_if_necessary(real_time_eval_class_instance, dispatchers_list, symbol, True) # register refreshing task if not is_dispatcher_client: real_time_eval_class_instance.set_is_to_be_started_as_task( True) if is_evaluator_to_be_used: real_time_ta_eval_list.append( real_time_eval_class_instance) except Exception as e: EvaluatorCreator.get_logger().error( f"Error when creating evaluator {real_time_eval_class}: {e}" ) EvaluatorCreator.get_logger().exception(e) return real_time_ta_eval_list
def init_time_frames_from_strategies(config): time_frame_list = set() for strategies_eval_class in AdvancedManager.create_advanced_evaluator_types_list( StrategiesEvaluator, config): if strategies_eval_class.is_enabled(config, False): for time_frame in strategies_eval_class.get_required_time_frames( config): time_frame_list.add(time_frame) time_frame_list = TimeFrameManager.sort_time_frames(time_frame_list) config[CONFIG_TIME_FRAME] = time_frame_list
def get_relevant_TAs_for_strategy(strategy, config): ta_classes_list = [] relevant_evaluators = strategy.get_required_evaluators(config) for ta_eval_class in AdvancedManager.create_advanced_evaluator_types_list( TAEvaluator, config): ta_eval_class_instance = ta_eval_class() ta_eval_class_instance.set_config(config) if EvaluatorCreator.is_relevant_evaluator(ta_eval_class_instance, relevant_evaluators): ta_classes_list.append(ta_eval_class) return ta_classes_list
def get_relevant_evaluators_from_strategies(config): evaluator_list = set() for strategies_eval_class in AdvancedManager.create_advanced_evaluator_types_list( StrategiesEvaluator, config): if strategies_eval_class.is_enabled(config, False): required_evaluators = strategies_eval_class.get_required_evaluators( config) if required_evaluators == CONFIG_EVALUATORS_WILDCARD: return CONFIG_EVALUATORS_WILDCARD else: for evaluator in required_evaluators: evaluator_list.add(evaluator) return evaluator_list
def create_strategies_eval_list(config): strategies_eval_list = [] for strategies_eval_class in AdvancedManager.create_advanced_evaluator_types_list( StrategiesEvaluator, config): try: strategies_eval_class_instance = strategies_eval_class() strategies_eval_class_instance.set_config(config) if strategies_eval_class_instance.get_is_enabled(): strategies_eval_class_instance.set_logger( get_logger(strategies_eval_class_instance.get_name())) strategies_eval_list.append(strategies_eval_class_instance) except Exception as e: EvaluatorCreator.get_logger().error( f"Error when creating strategy {strategies_eval_class}: {e}" ) EvaluatorCreator.get_logger().exception(e) return strategies_eval_list
def create_ta_eval_list(evaluator, relevant_evaluators): ta_eval_instance_list = [] for ta_eval_class in AdvancedManager.create_advanced_evaluator_types_list( TAEvaluator, evaluator.get_config()): try: ta_eval_class_instance = ta_eval_class() ta_eval_class_instance.set_config(evaluator.config) if EvaluatorCreator.is_relevant_evaluator( ta_eval_class_instance, relevant_evaluators): ta_eval_class_instance.set_logger( get_logger(ta_eval_class.get_name())) ta_eval_class_instance.set_data(evaluator.data) ta_eval_class_instance.set_symbol(evaluator.get_symbol()) ta_eval_instance_list.append(ta_eval_class_instance) except Exception as e: EvaluatorCreator.get_logger().error( f"Error when creating evaluator {ta_eval_class}: {e}") EvaluatorCreator.get_logger().exception(e) return ta_eval_instance_list
def create_social_eval(config, symbol, dispatchers_list, relevant_evaluators): social_eval_list = [] for social_eval_class in AdvancedManager.create_advanced_evaluator_types_list( SocialEvaluator, config): try: social_eval_class_instance = social_eval_class() social_eval_class_instance.set_config(config) if EvaluatorCreator.is_relevant_evaluator( social_eval_class_instance, relevant_evaluators): is_evaluator_to_be_used = True social_eval_class_instance.set_logger( get_logger(social_eval_class.get_name())) social_eval_class_instance.set_symbol(symbol) social_eval_class_instance.prepare() is_dispatcher_client, is_evaluator_to_be_used = \ DispatcherCreator.bind_to_dispatcher_if_necessary(social_eval_class_instance, dispatchers_list, symbol, is_evaluator_to_be_used) # register refreshing task if the evaluator is not managed by a dispatcher if not is_dispatcher_client and \ is_evaluator_to_be_used and \ social_eval_class_instance.get_is_to_be_independently_tasked(): social_eval_class_instance.set_is_to_be_started_as_task( True) if is_evaluator_to_be_used: social_eval_list.append(social_eval_class_instance) except Exception as e: EvaluatorCreator.get_logger().error( f"Error when creating evaluator {social_eval_class}: {e}") EvaluatorCreator.get_logger().exception(e) return social_eval_list