Exemplo n.º 1
0
    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()
Exemplo n.º 4
0
    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()
Exemplo n.º 5
0
    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()
Exemplo n.º 6
0
 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
Exemplo n.º 7
0
 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
Exemplo n.º 8
0
    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()
Exemplo n.º 11
0
    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
Exemplo n.º 12
0
    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