vn.py官网
开源量化社区
Member
avatar
加入于:
帖子: 11
声望: 0

我使用的是
(1)VPNY 2.5.4
(2)数据库使用mongodb
(3)为了加快读取速度,使用了每个标的保存至 指定的 Collection(一个股票保存到 一个Collection)
是根据帖子 https://www.vnpy.com/forum/topic/3131-vn-pyshe-qu-jing-xuan-19-fu-yin-shou-wei-mongodbfen-biao-shu-ju-du-qu
对VPNY进行了修改
请问,在实盘运行策略
如果策略中
def on_init(self):
self.write_log("策略初始化")
self.load_bar(120)

(1)self.load_bar(120) 是从 接口读取数据,并合成bar, 还是从数据库读取 ?

(2)如果mongodb数据库中,保存的数据是 bar 或者 是 tick ,策略读取的情况是怎么样的 ?

(3)如上面所述,对VNPY进行了修改,每个标的数据 保存至 指定的 Collection,是否影响实盘的数据读取,如果影响,如何进行修改 ?
谢谢

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

不好意思,网速慢,“发表主题”,按钮多按了几次

Member
avatar
加入于:
帖子: 3157
声望: 184
  1. 可以自己去vnpy.app,cta_strategy.template和vnpy.app,cta_strategy.engine下看源代码。CtaTemplate里给load_bar函数写了默认值(use_databse=False),然后这样engine.py里的load_bar函数会先去接口查询历史数据(不是合成,实盘启动策略之后才会用收到的tick合成成bar,推到on_bar函数中去,和load_bar没有关系),查不到的话会去rqdata找,如果rqdata找不到才会去数据库找(请注意,这个参数120是120天)。
  2. 读取bar就用load_bar,读取tick就用load_tick就行了吧。
  3. 可以自己测试一下看看。
© 2015-2019 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号-3

沪公网安备 31011502017034号