vn.py量化社区
By Traders, For Traders.
Member
avatar
加入于:
帖子: 20
声望: 1

刚接触PYTHON,经过测试可用,如有不妥欢迎指正。
新增加了刷新策略按钮,按下后刷新策略文件并重新加载。

description

修改以下文件:
1:添加按钮和方法
vnpy\app\cta_strategy\ui\widget.py
在add_button.clicked.connect(self.add_strategy) 下方添加以下两行

description

reload_button = QtWidgets.QPushButton("刷新策略")
reload_button.clicked.connect(self.reload_class)

在hbox1.addWidget(add_button)下方添加以下一行

description

hbox1.addWidget(reload_button)

在 def update_class_combo(self): 上方添加

description

    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方法

description

在path1 = Path(file).parent.joinpath("strategies")上方添加

        for loadClass in self.classes:
            del loadClass
        self.classes.clear()

修改load_strategy_class_from_module方法

description

在module = importlib.import_module(module_name)的下方添加

module = importlib.reload(module)

这样可以在不重启vntrader的情况下,修改策略文件,并重新加载,方便调试。

Member
avatar
加入于:
帖子: 86
声望: 7

其实更关键的是。。。交易合约作为参数可以调整。省的每次删掉重设。

Member
avatar
加入于:
帖子: 27
声望: 0

赞👍一个!希望加到下个版本中

Member
avatar
加入于:
帖子: 72
声望: 0

kingmo888 wrote:

其实更关键的是。。。交易合约作为参数可以调整。省的每次删掉重设。
这句话是什么意思,该怎么做为参数??

Member
avatar
加入于:
帖子: 72
声望: 0

我找到了,

description

在代码这么改一下

description

这里的就会出现,不用每次都输入了,

© 2015-2019 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号-3

沪公网安备 31011502017034号