获取过去一年数据出现报错,请问是什么原因?


(eqsxin) #1

我的策略参数是这样的:
start_date = 2015=01-01
end_date = 2017-12-22

在运行过程中,获取过去一年(365天)的收盘价数据代码出错:

data.history(symbol(i), 'close', 365, '1d') # 其中,i='000002.SZA'

出错如下:

请问这是什么原因呢?


(iQuant) #2

你好,因为获取数据的代码在handle_data函数中,handle_data函数每天会调用一次。

如果运行到第一天,调用了一下handle_data函数,但是在该交易日我们并没有传入过去365个交易日的数据,平台目前默认传入了大约252个交易日的数据。

因此如果获取的交易日天数小于252,应该不会出错,如果大于的话就会有这个错误。

之所以这样默认处理,是因为大部分的策略可能不需要获取那么长一段时间的数据,如果大家有需求,比如就想在handle_data函数中获取过去500个交易日的数据,那么可以给我们反馈。

此外,你也可以使用D.history_data接口在handle_data函数之外获取数据进行处理,然后传入到handle_data函数里。

希望对你有所帮助!