我有一个交易算法,我正在 zipline 上进行回测。我已经成功地从 csv 文件中提取了美国普通股捆绑包。展望未来,我想在每个交易日结束时对其进行连续回测。
因此,我想通过从 Interactive Brokers 下载每个美国股票的每日 OHLCV 价格附加到我现有的捆绑包中(我已经编写了一个执行此操作的 python 脚本)。
现在我的问题是:如何将每个资产的新一天数据行附加到我现有的滑索捆绑包中?
具体来说,我不想创建新的捆绑包。
我有一个交易算法,我正在 zipline 上进行回测。我已经成功地从 csv 文件中提取了美国普通股捆绑包。展望未来,我想在每个交易日结束时对其进行连续回测。
因此,我想通过从 Interactive Brokers 下载每个美国股票的每日 OHLCV 价格附加到我现有的捆绑包中(我已经编写了一个执行此操作的 python 脚本)。
现在我的问题是:如何将每个资产的新一天数据行附加到我现有的滑索捆绑包中?
具体来说,我不想创建新的捆绑包。
我碰巧自己也在调查这个问题,我的结论是这是不可能的。如果有任何zipline
开发者正在播出,如果我错了,请纠正我。
每次摄取基本上都会创建一个新的 SQLite 表,这些很容易在~/.zipline/data
.
假设您有三个不同的 CSV 用于三个不同的交换,您必须在三个不同的摄取中分别导入它们。
令人失望的是(显然,也许我们错过了假定的用法)是,在运行回测时,它被限制在一个单一的摄取宇宙中。如果我的交易品种列表是分散的——即不同交易所的产品——那么就不可能对这种算法进行回测。
如果您依赖默认quandle
空间,那么您不会遇到此问题,前提是您的注册具有足够的可见性(免费 API 密钥非常有限)。
一种解决方案是在一个通用交易日历下将所有 CSV 文件一起导入。这听起来是人为的,但对评估非日间策略的影响应该可以忽略不计。
因此,例如,如果您有三组 CSV ,AS
只需将它们作为通用导入到三个日历之一。详细过程在此处进行了说明。DE
MI
yahoo
谢谢,