def eval_impl(self) -> None: self.counter = 0 self.evaluation = 0 for rt in self.matrix[EvaluatorMatrixTypes.REAL_TIME]: if check_valid_eval_note( self.matrix[EvaluatorMatrixTypes.REAL_TIME][rt]): self.evaluation += self.matrix[ EvaluatorMatrixTypes.REAL_TIME][rt] self.counter += 1 for ta in self.matrix[EvaluatorMatrixTypes.TA]: if self.matrix[EvaluatorMatrixTypes.TA][ta]: for ta_time_frame in self.matrix[EvaluatorMatrixTypes.TA][ta]: if check_valid_eval_note(self.matrix[ EvaluatorMatrixTypes.TA][ta][ta_time_frame]): self.evaluation += self.matrix[ EvaluatorMatrixTypes.TA][ta][ta_time_frame] self.counter += 1 for social in self.matrix[EvaluatorMatrixTypes.SOCIAL]: if check_valid_eval_note( self.matrix[EvaluatorMatrixTypes.SOCIAL][social]): self.evaluation += self.matrix[ EvaluatorMatrixTypes.SOCIAL][social] self.counter += 1 self.finalize()
def calc_evaluator_divergence(self, matrix_type, evaluator_name, time_frame=None): if time_frame is not None: if check_valid_eval_note(self.matrix[matrix_type][evaluator_name][time_frame]): return self._calc_eval_note_divergence(self.matrix[matrix_type][evaluator_name][time_frame]) else: return START_PENDING_EVAL_NOTE elif isinstance(self.matrix[matrix_type][evaluator_name], dict): local_divergence_average = 0 local_divergence_counter = 0 for time_frame_iteration in self.matrix[matrix_type][evaluator_name]: if check_valid_eval_note(self.matrix[matrix_type][evaluator_name][time_frame_iteration]): result = self._calc_eval_note_divergence(self.matrix[matrix_type][evaluator_name] [time_frame_iteration]) if result is not START_PENDING_EVAL_NOTE: local_divergence_average += result local_divergence_counter += 1 if local_divergence_counter > 0: return local_divergence_average / local_divergence_counter else: return START_PENDING_EVAL_NOTE else: if check_valid_eval_note(self.matrix[matrix_type][evaluator_name]): return self._calc_eval_note_divergence(self.matrix[matrix_type][evaluator_name]) else: return START_PENDING_EVAL_NOTE
def eval_impl(self) -> None: self.social_counter = 0 self.instant_counter = 0 self.instant_evaluation = 0 self.social_evaluation = 0 # TODO : This is an example if InstantFluctuationsEvaluator.get_name() in self.matrix[EvaluatorMatrixTypes.REAL_TIME]: if check_valid_eval_note(self.matrix[EvaluatorMatrixTypes.REAL_TIME][ InstantFluctuationsEvaluator.get_name()]): self.instant_evaluation += self.matrix[EvaluatorMatrixTypes.REAL_TIME][ InstantFluctuationsEvaluator.get_name()] self.inc_instant_counter() if MediumNewsEvaluator.get_name() in self.matrix[EvaluatorMatrixTypes.SOCIAL]: if check_valid_eval_note(self.matrix[EvaluatorMatrixTypes.SOCIAL][ MediumNewsEvaluator.get_name()]): self.social_evaluation += self.matrix[EvaluatorMatrixTypes.SOCIAL][MediumNewsEvaluator.get_name()] self.inc_social_counter() if RedditForumEvaluator.get_name() in self.matrix[EvaluatorMatrixTypes.SOCIAL]: if check_valid_eval_note(self.matrix[EvaluatorMatrixTypes.SOCIAL][ RedditForumEvaluator.get_name()]): self.social_evaluation += \ self.matrix[EvaluatorMatrixTypes.SOCIAL][RedditForumEvaluator.get_name()] self.inc_social_counter() self.finalize()
async def eval_impl(self) -> None: self.social_counter = 0 self.instant_counter = 0 self.instant_evaluation = 0 self.social_evaluation = 0 # TODO : This is an example if InstantFluctuationsEvaluator.get_name() in self.matrix[ EvaluatorMatrixTypes.REAL_TIME]: if check_valid_eval_note( self.matrix[EvaluatorMatrixTypes.REAL_TIME][ InstantFluctuationsEvaluator.get_name()], self.evaluator_types_matrix.get_evaluator_eval_type( InstantFluctuationsEvaluator.get_name())): self.instant_evaluation += self.matrix[ EvaluatorMatrixTypes.REAL_TIME][ InstantFluctuationsEvaluator.get_name()] self.inc_instant_counter() if RedditForumEvaluator.get_name() in self.matrix[ EvaluatorMatrixTypes.SOCIAL]: if check_valid_eval_note( self.matrix[EvaluatorMatrixTypes.SOCIAL][ RedditForumEvaluator.get_name()], self.evaluator_types_matrix.get_evaluator_eval_type( RedditForumEvaluator.get_name())): self.social_evaluation += \ self.matrix[EvaluatorMatrixTypes.SOCIAL][RedditForumEvaluator.get_name()] self.inc_social_counter() self.finalize()
async def eval_impl(self) -> None: # TODO : temp counter without relevance self.social_counter = 0 self.rt_counter = 0 # relevance counters self.ta_relevance_counter = 0 # eval note total with relevance factor self.ta_evaluation = 0 self.social_evaluation = 0 self.rt_evaluation = 0 # example # if RSIMomentumEvaluator.get_name() in self.matrix[EvaluatorMatrixTypes.TA]: # self.divergence_evaluation = self.divergence_evaluator_analyser.calc_evaluator_divergence( # EvaluatorMatrixTypes.TA, # RSIMomentumEvaluator.get_name()) for rt in self.matrix[EvaluatorMatrixTypes.REAL_TIME]: if check_valid_eval_note( self.matrix[EvaluatorMatrixTypes.REAL_TIME][rt], self.evaluator_types_matrix.get_evaluator_eval_type(rt)): self.rt_evaluation += self.matrix[ EvaluatorMatrixTypes.REAL_TIME][rt] self.inc_rt_counter() for ta in self.matrix[EvaluatorMatrixTypes.TA]: if self.matrix[EvaluatorMatrixTypes.TA][ta]: for ta_time_frame in self.matrix[EvaluatorMatrixTypes.TA][ta]: if check_valid_eval_note( self.matrix[ EvaluatorMatrixTypes.TA][ta][ta_time_frame], self.evaluator_types_matrix. get_evaluator_eval_type(ta)): time_frame_relevance = TimeFramesRelevance[ ta_time_frame] self.ta_evaluation += self.matrix[ EvaluatorMatrixTypes. TA][ta][ta_time_frame] * time_frame_relevance self.inc_ta_counter(time_frame_relevance) for social in self.matrix[EvaluatorMatrixTypes.SOCIAL]: eval_note = self.matrix[EvaluatorMatrixTypes.SOCIAL][social] if check_valid_eval_note( eval_note, self.evaluator_types_matrix.get_evaluator_eval_type( social)): self.social_evaluation += eval_note self.inc_social_counter() self.finalize()
def get_eval_note(matrix, matrix_type, evaluator_name, time_frame=None): if matrix_type in matrix and evaluator_name in matrix[matrix_type]: if time_frame is not None: if isinstance(matrix[matrix_type][evaluator_name], dict) \ and time_frame in matrix[matrix_type][evaluator_name]: eval_note = matrix[matrix_type][evaluator_name][time_frame] if check_valid_eval_note(eval_note): return eval_note else: eval_note = matrix[matrix_type][evaluator_name] if check_valid_eval_note(eval_note): return eval_note return None
def get_eval_note(matrix: MatrixType, matrix_type: EvaluatorMatrixTypes, evaluator_name: str, time_frame: TimeFrames = None) -> MatrixValueType: if matrix_type in matrix and evaluator_name in matrix[matrix_type]: if time_frame is not None: if isinstance(matrix[matrix_type][evaluator_name], dict) \ and time_frame in matrix[matrix_type][evaluator_name]: eval_note = matrix[matrix_type][evaluator_name][time_frame] if check_valid_eval_note(eval_note): return eval_note else: eval_note = matrix[matrix_type][evaluator_name] if check_valid_eval_note(eval_note): return eval_note return None
def set_final_eval(self): strategy = self.trading_mode.get_strategy_instances_by_classes( self.symbol)[HighFrequencyStrategiesEvaluator] strategy_eval = strategy.get_eval_note() if check_valid_eval_note(strategy_eval): self.final_eval = strategy_eval
def _check_matrix_divergence(self): for matrix_type in self.matrix: for evaluator_name in self.matrix[matrix_type]: if isinstance(self.matrix[matrix_type][evaluator_name], dict): for time_frame in self.matrix[matrix_type][evaluator_name]: if check_valid_eval_note( self.matrix[matrix_type][evaluator_name][time_frame]): if self._calc_eval_note_divergence(self.matrix[matrix_type][evaluator_name][time_frame]) \ is not START_PENDING_EVAL_NOTE: self._log_divergence(matrix_type, evaluator_name, self.matrix[matrix_type][evaluator_name][time_frame], time_frame) else: if check_valid_eval_note(self.matrix[matrix_type][evaluator_name]): if self._calc_eval_note_divergence(self.matrix[matrix_type][evaluator_name]) \ is not START_PENDING_EVAL_NOTE: self._log_divergence(matrix_type, evaluator_name, self.matrix[matrix_type][evaluator_name])
def eval_impl(self) -> None: # TODO : temp counter without relevance self.social_counter = 0 self.rt_counter = 0 # relevance counters self.ta_relevance_counter = 0 # eval note total with relevance factor self.ta_evaluation = 0 self.social_evaluation = 0 self.rt_evaluation = 0 # example # if RSIMomentumEvaluator.get_name() in self.matrix[EvaluatorMatrixTypes.TA]: # self.divergence_evaluation = self.divergence_evaluator_analyser.calc_evaluator_divergence( # EvaluatorMatrixTypes.TA, # RSIMomentumEvaluator.get_name()) for rt in self.matrix[EvaluatorMatrixTypes.REAL_TIME]: if check_valid_eval_note(self.matrix[EvaluatorMatrixTypes.REAL_TIME][rt]): self.rt_evaluation += self.matrix[EvaluatorMatrixTypes.REAL_TIME][rt] self.inc_rt_counter() for ta in self.matrix[EvaluatorMatrixTypes.TA]: if self.matrix[EvaluatorMatrixTypes.TA][ta]: for ta_time_frame in self.matrix[EvaluatorMatrixTypes.TA][ta]: if check_valid_eval_note(self.matrix[EvaluatorMatrixTypes.TA][ta][ta_time_frame]): time_frame_relevance = TimeFramesRelevance[ta_time_frame] self.ta_evaluation += self.matrix[EvaluatorMatrixTypes.TA][ta][ ta_time_frame] * time_frame_relevance self.inc_ta_counter(time_frame_relevance) for social in self.matrix[EvaluatorMatrixTypes.SOCIAL]: eval_note = self.matrix[EvaluatorMatrixTypes.SOCIAL][social] if check_valid_eval_note(eval_note): self.social_evaluation += eval_note self.inc_social_counter() self.finalize()
def set_final_eval(self): strategies_analysis_note_counter = 0 # Strategies analysis for evaluated_strategies in self.symbol_evaluator.get_strategies_eval_list(self.exchange): strategy_eval = evaluated_strategies.get_eval_note() if check_valid_eval_note(strategy_eval): self.final_eval += strategy_eval * evaluated_strategies.get_pertinence() strategies_analysis_note_counter += evaluated_strategies.get_pertinence() if strategies_analysis_note_counter > 0: self.final_eval /= strategies_analysis_note_counter else: self.final_eval = INIT_EVAL_NOTE
def _prepare(self): strategies_analysis_note_counter = 0 # Strategies analysis for evaluated_strategies in self.symbol_evaluator.get_strategies_eval_list(self.exchange): strategy_eval = evaluated_strategies.get_eval_note() if check_valid_eval_note(strategy_eval): self.final_eval += strategy_eval * evaluated_strategies.get_pertinence() strategies_analysis_note_counter += evaluated_strategies.get_pertinence() if strategies_analysis_note_counter > 0: self.final_eval /= strategies_analysis_note_counter else: self.final_eval = INIT_EVAL_NOTE