Example #1
0
 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()
Example #2
0
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)
Example #3
0
 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)