刚接触PYTHON,经过测试可用,如有不妥欢迎指正。
新增加了刷新策略按钮,按下后刷新策略文件并重新加载。
修改以下文件:
1:添加按钮和方法
vnpy\app\cta_strategy\ui\widget.py
在add_button.clicked.connect(self.add_strategy) 下方添加以下两行
reload_button = QtWidgets.QPushButton("刷新策略")
reload_button.clicked.connect(self.reload_class)
在hbox1.addWidget(add_button)下方添加以下一行
hbox1.addWidget(reload_button)
在 def update_class_combo(self): 上方添加
def reload_class(self):
self.cta_engine.load_strategy_class()
self.class_combo.clear()
self.update_class_combo()
2:修改加载逻辑
vnpy\app\cta_strategy\engine.py
修改load_strategy_class方法
在path1 = Path(file).parent.joinpath("strategies")上方添加
for loadClass in self.classes:
del loadClass
self.classes.clear()
修改load_strategy_class_from_module方法
在module = importlib.import_module(module_name)的下方添加
module = importlib.reload(module)
这样可以在不重启vntrader的情况下,修改策略文件,并重新加载,方便调试。