Ejemplo n.º 1
0
 def get_required_time_frames(cls, config):
     if CONFIG_FORCED_TIME_FRAME in config:
         return TimeFrameManager.parse_time_frames(config[CONFIG_FORCED_TIME_FRAME])
     strategy_config = cls.get_specific_config()
     if STRATEGIES_REQUIRED_TIME_FRAME in strategy_config:
         return TimeFrameManager.parse_time_frames(strategy_config[STRATEGIES_REQUIRED_TIME_FRAME])
     else:
         raise Exception(f"'{STRATEGIES_REQUIRED_TIME_FRAME}' is missing in {cls.get_config_file_name()}")
Ejemplo n.º 2
0
 def get_required_time_frames(cls, config):
     if CONFIG_FORCED_TIME_FRAME in config:
         return TimeFrameManager.parse_time_frames(
             config[CONFIG_FORCED_TIME_FRAME])
     strategy_config = cls.get_evaluator_config()
     if STRATEGIES_REQUIRED_TIME_FRAME in strategy_config:
         return TimeFrameManager.parse_time_frames(
             strategy_config[STRATEGIES_REQUIRED_TIME_FRAME])
     else:
         raise Exception("'{0}' is missing in {1}".format(
             STRATEGIES_REQUIRED_TIME_FRAME, cls.get_config_file_name()))
def start_optimizer(strategy, time_frames, evaluators, risks):
    tools = get_bot().get_tools()
    tools[BOT_TOOLS_STRATEGY_OPTIMIZER] = StrategyOptimizer(
        get_bot().get_config(), strategy)
    optimizer = tools[BOT_TOOLS_STRATEGY_OPTIMIZER]
    backtester = tools[BOT_TOOLS_BACKTESTING]
    if optimizer.get_is_computing():
        return False, "Optimizer already running"
    elif backtester and backtester.get_is_computing():
        return False, "A backtesting is already running"
    else:
        formatted_time_frames = TimeFrameManager.parse_time_frames(time_frames)
        float_risks = [float(risk) for risk in risks]
        thread = threading.Thread(target=optimizer.find_optimal_configuration,
                                  args=(evaluators, formatted_time_frames,
                                        float_risks))
        thread.start()
        return True, "Optimizer started"