示例#1
0
    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
示例#2
0
文件: app.py 项目: stockServ/ctpbee
    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("错误的参数, 仅仅支持")
示例#3
0
    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
示例#4
0
文件: app.py 项目: stockServ/ctpbee
    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