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

论坛里的大佬,你们好!
菜鸡我在研究阅读 vnpy_ctastrategy/engine.py 的 CtaEngine 类的 query_bar_from_datafeed() 函数时,
看到有这样的代码:
data = self.datafeed.query_history(req)

因为我有买 RQData,并且配置好了。
并且 CtpGateway 无法获得历史行情数据。
我的 trader/setting.py 的 "datafeed.name": "" 。

所以,这个 self.datafeed = vnpy_rqdata 。

但是为什么 vnpy_rqdata/rqdata_datafeed.py 里没有
def query_history(self, req: HistoryRequest) 函数呢?

这就会造成,我在 no_ui 的 run.py 中 运行 CatEngine.init_strategy(self, strategy_name: str) 函数
进一步调用 CatEngine.load_bar() 函数时,如下代码过不去。
data = self.datafeed.query_history(req)

我手动在 vnpy_rqdata/rqdata_datafeed.py 里添加如下函数后,用户策略正常在 simnow 跑了起来。
def query_history(self, req: HistoryRequest):
if req.interval == None:
return self.query_tick_history(req)
else:
return self.query_bar_history(req)

问题总结下:
我在尝试 VNPY 官方的 no_ui 的 run.py 时,
碰到 CtaEngine 类的 data = self.datafeed.query_history(req) ,找不到对应函数的问题。
我手动在 vnpy_rqdata/rqdata_datafeed.py 添加该函数后,用户策略正常运行。

想问,是不是,我调用的方式不对?

Member
avatar
加入于:
帖子: 4675
声望: 285

升级至最新版即可

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

沪公网安备 31011502017034号

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