def load_strategy(self): for name, path in G.config.STRATEGYS.items(): if os.path.exists(path): with open(path, 'r') as f: try: ext = dynamic_loading_api(f) bee_current_app.add_extension(ext) bee_current_app.suspend_extension( ext.extension_name) # 停止 # bee_current_app.suspend_extension(path) # 停止 except Exception as e: pass self.fill_table()
def add_strategy(name, text): """更新或添加策略""" if not name.endswith('.py'): name = name + '.py' with open(f"{path}/{name}", 'w') as f: f.write(text) with open(f"{path}/{name}", 'r') as f: try: ext = dynamic_loading_api(f) bee_current_app.add_extension(ext) return True except Exception as e: print("添加更新策略文件:", e) return str(e)
def add_strategy_slot(self): pattern = r"ext\s*=\s*\w*[(][\"\'](.*)[\"\'][)]" filename, _ = QFileDialog.getOpenFileName(self, '选择文件', '/', 'Python files(*.py)') if not filename: return with open(filename, 'r') as f: try: ext = dynamic_loading_api(f) bee_current_app.add_extension(ext) G.config.STRATEGYS.update({ext.extension_name: filename}) G.config.to_file() TipDialog("策略添加成功") self.fill_table() except Exception as e: QMessageBox.warning(self, 'ctpbee策略', str(e), QMessageBox.Ok, QMessageBox.Ok)