将 Pandas 数据直接传递到 zipline

问题描述

我目前正在寻找一种方法,可以将 Pandas 数据帧或 csv 文件直接传递到 zipline 以进行简单的回测而无需摄取数据包。原因是我计划在回测期间在现有包之外生成新数据,并且为每个 handle_data 调用摄取新包似乎效率很低。

我到处找这个,包括zipline的源代码。我发现旧版本的 zipline 在 run_algo 函数调用中有一个“数据”参数,您可以在其中直接传入 df,但目前我找不到那个旧版本。有人在尝试同样的事情吗?除了每次都在命令行中摄取数据包之外,还有其他方法吗?

解决方法

我使用的是 zipline 1.3.0,它实际上有一个数据参数。此评论来自 zipline 的 run_algo.py 文件:

data : pd.DataFrame,pd.Panel,or DataPortal,optional
    The ohlcv data to run the backtest with.
    This argument is mutually exclusive with:
    ``bundle``
    ``bundle_timestamp``

希望有帮助