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