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

在GUI模式下,按步骤正常登录VNPY,设置好dolphinDB数据库端口,打开vntrader和datarecorder以后,可以正常录制行情。

可是如果通过noui下面的run.py运行,就提示“找不到数据服务驱动vnpy,使用默认的RQData数据服务”,此时是不是vnpy-dolphinDB没有正常被启动?请问这是为何?应该如何解决?

启动CTA策略守护父进程
启动子进程
子进程启动成功
找不到数据服务驱动vnpy_,使用默认的RQData数据服务
2022-02-14 12:52:38,540 INFO: 主引擎创建成功
2022-02-14 12:52:38,546 INFO: 注册日志事件监听
2022-02-14 12:52:38,547 INFO: 连接CTP接口
2022-02-14 12:52:38,739 INFO: 行情服务器连接成功
2022-02-14 12:52:38,797 INFO: 行情服务器登录成功
2022-02-14 12:52:38,970 INFO: 交易服务器连接成功
2022-02-14 12:52:39,076 INFO: 交易服务器授权验证成功
2022-02-14 12:52:39,119 INFO: 交易服务器登录成功
2022-02-14 12:52:39,359 INFO: 结算信息确认成功
2022-02-14 12:52:40,894 INFO: 合约信息查询成功
2022-02-14 12:52:48,570 INFO: CTA策略引擎初始化成功
2022-02-14 12:52:48,570 INFO: CTA策略初始化完成
2022-02-14 12:53:48,575 INFO: CTA策略全部初始化
2022-02-14 12:53:48,576 INFO: CTA策略全部启动

Member
avatar
加入于:
帖子: 716
声望: 55

“找不到数据服务驱动vnpy”是在动态加载数据服务组件,你全局配置没有配置数据服务,所以找不到。找不到时默认会使用rqdata。
dolphindb是数据库和数据服务无关。
你这个脚本看日志是cta策略的noui。并不是行情录制noui。

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

CTA策略的noui,只涉及数据初始化的设置,以便进行指标计算和报单交易,不涉及行情录制模块。
谢谢,明白了。我再去看看行情录制的noui帖子。

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

再问一下,
VNPY的架构是只支持从datafeed读取数据进行初始化吗?
database模块只能是用来存储行情录制数据?
有没有从行情录制数据的database里面读取数据进行初始化的办法?
就是让database的数据,发挥datafeed的功能?

Member
avatar
加入于:
帖子: 716
声望: 55

load_bar函数有个use_database参数,设为True就会优先读取database数据

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

请问load_bar函数在哪个文件里面可以找到?

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

这个use_database默认是false,是不可以修改的对吗?(是在engine.py文件里?)

使用方法是在自己写的策略文件里,在调用load_bar函数的时候,直接加一行use_database=true,然后这个策略在启动时候(比如no_ui模式),就自动优先从本地database里面读取行情数据进行初始化了对吗?

我看了一下engine里面的loadbar和loadtick,loadtick函数好像没有use_database,是不是只有loadbar能这么用?tick数据不能从本地的database里面读取吗?

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

我在template文件里面看到load_bar的那个use_database了。这个问题搞明白了。

def load_bar(
self,
days: int,
interval: Interval = Interval.MINUTE,
callback: Callable = None,
use_database: bool = False
)

现在还有一个疑惑,就是load_tick这个函数,有没有use_database: bool = False or True的用法呢?

def load_tick(self, days: int):
    """
    Load historical tick data for initializing strategy.
    """
    self.cta_engine.load_tick(self.vt_symbol, days, self.on_tick)
Member
avatar
加入于:
帖子: 716
声望: 55

没有

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

沪公网安备 31011502017034号

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