vn.py量化社区
By Traders, For Traders.
Member
加入于:
帖子: 78
声望: 0

我在做回测的时候发现,所有的的交易都从导入的历史数据的第二天开始。我用的是分钟线。这是我的代码:
def on_bar(self, bar: BarData):
self.cancel_all()

    am = self.am
    am.update_bar(bar)

    self.buy(bar.close_price, 1)

查看交易记录都是从第二天开始的,然后后面每分钟都正常买入了。为什么第一天不能成功开仓呢?

Administrator
avatar
加入于:
帖子: 4028
声望: 221

因为回测的时候,load_bar函数需要指定用来初始化的数据日期长度,你可能数据长度正好第二天就初始化完毕了

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

我在on_init下面写的self.load_bar(0),而且我试过,这个self.load_bar()里面写n,成交时间就往后移n+1天。但是我明明用的是分钟线啊。

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

这个load_bar()最少也要载入一个交易日的历史数据:就是填入0。回测的时候问题是不大,问题是如果模拟或者实盘的时候是否也要等一个交易日才能启动交易呢?如果我需要马上进行交易怎么处理呢?

Administrator
avatar
加入于:
帖子: 4028
声望: 221

load_bar的这个参数是日期,不是多少根K线

实盘是点击启动后,立即进入交易,当然如果你数据容器ArrayManager不够的话也没法交易。

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