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

7月20日有人提过类似问题,但没有最终解决,我的问题类似,即,无论我把策略放到哪里,vntrader都抓不到。。
我在所有的地方都放置了自己的策略demo_strategy.py,包括C:...\lenovo\strategies\下,C:...\lenovo.vntrader\strategies\下,github上下载的vnpy文件下的策略目录,site-package下vnpy下的策略目录,你能想到的,都放了。
惊奇的是,运行vnstation,点击VN trader Pro,加载vn trader,点击回测,仍然看不到自己的策略。。
这如何解决?

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

可能的解决方法之一:

  1. 你按作者的demo_strategy.py这个文件里面有错,所以无法加载,你用 python demo_strategy.py 如果没有报错,那应该就可以看到了
    我也是遇到这个问题,已经解决
Administrator
avatar
加入于:
帖子: 4550
声望: 325

策略代码有BUG就可能无法自动加载,照着楼上的方法检查

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

确实有个bug,改了之后就能加载了。
而且我发现 user/strategies/下的只能用vntrader加载,如果想直接跑run.py的加载话,需要把策略文件放在vnpy/app/.../strategies或者run.py同级目录的strategies/下。
感谢两位!!!

Member
avatar
加入于:
帖子: 63
声望: 1

你好 我跟你一样 几台电脑都试了 请问是哪里的bug啊。。。。

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

description

description

死活都找不到策略啊!管理员帮忙看看。谢谢!

Member
avatar
加入于:
帖子: 63
声望: 1

benefitall wrote:

description

description

死活都找不到策略啊!管理员帮忙看看。谢谢!
好像是那个策略里面编程有小bug。。。。。

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

description

description

description

description

我也出现了策略写好了之后vnstation读不出来的这个问题。

按照楼上说的,第一次检查时的确是代码有错误,于是修改了之后,再检查时显示没错了,但是依然读不出来。
于是在 C:\Users\Administrator\strategies 中 和 C:\vnstudio\Lib\site-packages\vnpy\app\cta_strategy\strategies 中,都放进去了文件,却还是读不出来。

我以为是自己的文件还存在错误,于是把课程中下载的代码复制了一份,然后把名字改了一下,重新放到了那两个文件夹内,结果还是读不出来。 而且这次再点回测时,还跳出来一个错误的提示,但是我没有动过其他的文件。

如果有同学遇到过这个问题,麻烦跟我说一下吧,我是真弄不出来了。

Administrator
avatar
加入于:
帖子: 4550
声望: 325

好运来 wrote:

description

description

description

description

我也出现了策略写好了之后vnstation读不出来的这个问题。

按照楼上说的,第一次检查时的确是代码有错误,于是修改了之后,再检查时显示没错了,但是依然读不出来。
于是在 C:\Users\Administrator\strategies 中 和 C:\vnstudio\Lib\site-packages\vnpy\app\cta_strategy\strategies 中,都放进去了文件,却还是读不出来。

我以为是自己的文件还存在错误,于是把课程中下载的代码复制了一份,然后把名字改了一下,重新放到了那两个文件夹内,结果还是读不出来。 而且这次再点回测时,还跳出来一个错误的提示,但是我没有动过其他的文件。

如果有同学遇到过这个问题,麻烦跟我说一下吧,我是真弄不出来了。

上面的报错是因为米筐RQData的试用期到了,请购买或者重新申请个新的吧

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

description

给跟我一样新的同学们参考:
排除策略代码本身存在错误、以及文件存储位置不对,导致的vntrader中没法读取策略之外,

还可以看一下是否是策略代码的文件名称和代码内部中的 class CtaTemplate(ABC):名称不一样所致。

以我为例,如图,我是因为新建的代码文件名称和策略中类的名称不一样,所以在vntrader中始终找不到 pp_kuazhouqi_test的策略,
可实际上,vntrader中已经读出来了,只是名字叫 Peng_5min_Test。

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

我也是,把案例中的代码复制改名,都看不到这策略呢?应该放在什么地方啊?

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

顶一下!好多新手都碰到过类似问题,第一步就被挡在外面。希望论坛能出面把这个问题彻底回答一下

LLM学员
avatar
加入于:
帖子: 5
声望: 0

用Python的交易员 wrote:

策略代码有BUG就可能无法自动加载,照着楼上的方法检查

仔细检查了两遍,找到两个bug,一个是typo,一个是self.加错地方了。教训深刻,即使跟着视频打代码都能犯这种虽说低级却可能也常见的错误,反省中。也希望大佬能在今后的视频或讲课中很简单地提及一下,告诉大家通过运行脚本检查代码确保能被加载的技巧,尤其针对我这样的编程门外汉。感谢。

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

好运来 wrote:

description

给跟我一样新的同学们参考:
排除策略代码本身存在错误、以及文件存储位置不对,导致的vntrader中没法读取策略之外,

还可以看一下是否是策略代码的文件名称和代码内部中的 class CtaTemplate(ABC):名称不一样所致。

以我为例,如图,我是因为新建的代码文件名称和策略中类的名称不一样,所以在vntrader中始终找不到 pp_kuazhouqi_test的策略,
可实际上,vntrader中已经读出来了,只是名字叫 Peng_5min_Test。

你这个办法有用!看了这么多类似问题的回答,我感觉要能加载要同时满足但不限于以下:
1, 策略里没bug
2,将代码内部中的 class CtaTemplate(ABC)改为与文件名一致
3,存放路径正确

Member
加入于:
帖子: 81
声望: 0

我自己找到一个方法。
在策略代码中加入
import sys
sys.path.append('C:/Users/XXXXX/strategies')
可以解决。但不知道是不是正确的解决方法

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

排查了很多可能,最后结果如下
1-策略里没bug(建议直接复制一个可用的模板)
2-存放路径正确(C:\Users\windows的用户名\strategies)
3-将代码内部中的 class CtaTemplate(ABC)改为与文件名一致,这个是最不容易发现的地方,例如
你的python文件名称叫: zonwer_test_strategy.py, 你的类名称必须叫: class zonwer_test_strategy(CtaTemplate): 这样才能识别

Member
avatar
加入于:
帖子: 5078
声望: 306

策略类名不用和文件名一致,不要和示例策略类名一致就好

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

沪公网安备 31011502017034号

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