def _load_ext(self): """根据当前配置文件下的信息载入行情api和交易api,记住这个api的选项是可选的""" self.active = True if "CONNECT_INFO" in self.config.keys(): info = self.config.get("CONNECT_INFO") else: raise ConfigError(message="没有相应的登录信息", args=("没有发现登录信息",)) MdApi, TdApi = Interface.get_interface(self) if self.config.get("MD_FUNC"): self.market = MdApi(self.event_engine) self.market.connect(info) if self.config.get("TD_FUNC"): if self.config['INTERFACE'] == "looper": self.trader = TdApi(self.event_engine, self) else: self.trader = TdApi(self.event_engine) self.trader.connect(info) show_me = graphic_pattern(__version__, self.engine_method) print(show_me) if self.refresh: if self.r is not None: self.r_flag = False sleep(self.config['REFRESH_INTERVAL'] + 1.5) self.r = Thread(target=refresh_query, args=(self,),daemon=True) self.r.start() else: self.r = Thread(target=refresh_query, args=(self,), daemon=True) self.r.start() self.r_flag = True
def start(self, log_output=True, debug=False): """ 开启处理整个事件处理循环 Args: log_output(bool): 是否输出log信息 debug(bool): 是否开启调试模式 ----> 等待完成 """ if self.config.get("PATTERN") == "real": def running_timer(common_signal): while True: event = Event(type=EVENT_TIMER) common_signal.timer_signal.send(event) sleep(self.config['TIMER_INTERVAL']) self.timer = Thread(target=running_timer, args=(common_signals, )) self.timer.start() self.config["LOG_OUTPUT"] = log_output self._running(logout=log_output) elif self.config.get("PATTERN") == "looper": self.config["INTERFACE"] = "looper" show_me = graphic_pattern(__version__, self.engine_method) if log_output: print(show_me) self.init_interface() print(">>>> 回测接口载入成功") return self._start_looper() else: raise ValueError("错误的参数, 仅仅支持")
def _running(self, logout=True): """ 根据当前配置文件下的信息载入行情api和交易api 注意此函数同时会根据构造函数中的refresh参数决定开启定时线程, 向CtpBee里面提供定时查询账户持仓功能 """ self.active = True if "CONNECT_INFO" in self.config.keys(): info = self.config.get("CONNECT_INFO") else: raise ConfigError(message="没有相应的登录信息", args=("没有发现登录信息",)) show_me = graphic_pattern(__version__, self.engine_method) if logout: print(show_me) MdApi, TdApi = Interface.get_interface(self) if self.config.get("MD_FUNC"): self.market = MdApi(self.app_signal) self.market.connect(info) if self.config.get("TD_FUNC"): self.trader = TdApi(self.app_signal) self.trader.connect(info) if self.refresh: if self.r is not None: self.r_flag = False sleep(self.config['REFRESH_INTERVAL'] + 1.5) self.r = Thread(target=refresh_query, args=(self,), daemon=True) self.r.start() else: self.r = Thread(target=refresh_query, args=(self,), daemon=True) self.r.start() self.r_flag = True
def _running(self, logout=True): """ 根据当前配置文件下的信息载入行情api和交易api 注意此函数同时会根据构造函数中的refresh参数决定开启定时线程, 向CtpBee里面提供定时查询账户持仓功能 """ show_me = graphic_pattern(__version__, self.engine_method) if logout: print(show_me) self.init_interface() if self.refresh: if self.r is not None: self.r_flag = False sleep(self.config['REFRESH_INTERVAL'] + 1.5) self.r = Thread(target=refresh_query, args=(self, ), daemon=True) self.r.start() else: self.r = Thread(target=refresh_query, args=(self, ), daemon=True) self.r.start() self.r_flag = True