VeighNa量化社区
你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 20
声望: 2

刚接触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
加入于:
帖子: 126
声望: 14

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

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

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

Member
avatar
加入于:
帖子: 93
声望: 14

kingmo888 wrote:

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

Member
avatar
加入于:
帖子: 93
声望: 14

我找到了,

description

在代码这么改一下

description

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

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

最新版的vnpy 找不到vnpy\app\cta_strategy\ui\widget.py
在add_button.clicked.connect(self.add_strategy) 下方添加以下两行

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

mark

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

mark

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

mark

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

666,强烈建议把这个代码合并到主版本

Member
avatar
加入于:
帖子: 70
声望: 3

记号,备用.

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

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】