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

假设我所有信号中最长的周期是20天,那么把AM的size设置为比20略大,比如25就应该能满足我所有信号计算的要求了。可是在进行回测发现,第一个交易日的日期是>=(回测初始日+load_bars天数)的。
看了下代码发现,回测引擎中,只有当把load_bars的天数全部走完,才会设置strategy.inited以及trategy.trading为true,然后才会进行订单的撮合。那么有几个问题想请教下:

  1. 这样的逻辑里,是否load_bars的天数和am size的天数同时进行检查,逻辑重合了呢?best practice是什么呢,把AM size和loadbars天数设置为一样吗?
  2. 我发现load_bars的日期是从回测期间的第一天作为开始日期的,而非之前理解的 回测起始日 - load_bars的日期(也就是说,加载回测起始日前x天作为信号生成)。这符合预期吗?
  3. 问题1只出现在回测吗,实盘是否也是一样的逻辑呢?
    提前感谢解答
Member
avatar
加入于:
帖子: 5285
声望: 318

回测时间很长,晚几天开始回测影响不大
实盘load_bar往前读数据,不影响当日的策略运行

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

xiaohe wrote:

回测时间很长,晚几天开始回测影响不大
实盘load_bar往前读数据,不影响当日的策略运行
请问下,

  1. 问题1里,am的size和load_bars天数这里是不是逻辑有些重合呢?是的话,我将二者设置为一样,会有什么问题吗;
  2. 实盘loadbar往前读数据,是否优先找本地db;没有的话再尝试datafeed拉取呢?
    谢谢
Member
avatar
加入于:
帖子: 5285
声望: 318

没有,不是一回事,确保am的size大于传进am里初始化的K线数量就好
默认先数据服务拉取再数据库查找。项目文档有介绍的https://www.vnpy.com/docs/cn/community/app/cta_strategy.html#id32

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

好的,谢谢

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

沪公网安备 31011502017034号

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