def __init__(self, user, name, code, symbols=None, time_frame=None, start_time=None, end_time=None, data_generator=data_generator): self.__setting = { 'user': user, 'name': name, 'symbols': symbols, 'time_frame': time_frame, 'start_time': start_time, 'end_time': end_time } self.__strategy_engine = StrategyEngine(is_backtest=True) self.__strategy = Strategy(self.__strategy_engine, user, name, code, symbols, time_frame, start_time, end_time) self.__strategy_parameters = None self.__strategy_engine.add_strategy(self.__strategy) self.__data_generator = data_generator(self.__strategy_engine) self.__performance_manager = None self.__thread = None self.__is_alive = False
def init(self): if self.__initialized: return True assert isinstance(self._config, BfConfig) # 判断初始化前是否设置好了基本参数 self.__strategy_engine = StrategyEngine(parent=self) self.__strategy = Strategy(self.__strategy_engine, self.__code, parent=self) self.__strategy_engine.add_strategy(self.__strategy) self.__data_generator = TickDataGenerator(lambda x: self.__strategy_engine.put_event(x.to_event()), lambda: self.__strategy_engine.put_event(Event(EVENT_FINISH)), parent=self) if DEBUG: self.logger.setLevel(logging.DEBUG) else: self.logger.setLevel(logging.INFO) self.__initialized = True
def __init__(self, user, name, code, symbols=None, time_frame=None, start_time=None, end_time=None, data_generator=DataGeneratorMongoDB): self.__setting = { 'symbols': symbols, 'time_frame': time_frame, 'start_time': start_time, 'end_time': end_time } self.__strategy_engine = StrategyEngine(backtesting=True) self.__strategy = Strategy(self.__strategy_engine, user, name, code, symbols, time_frame, start_time, end_time) self.__strategy_parameters = None self.__strategy_engine.add_strategy(self.__strategy) self.__data_generator = data_generator(self.__strategy_engine) self.__performance_manager = None self.__performance = None