问题标签 [zipline]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1458 浏览

python - 将财务数据从 postgres 转换为 pandas 数据框以与 Zipline 一起使用

我是 Pandas 和 Zipline 的新手,我正在尝试学习如何使用它们(并将它们与我拥有的这些数据一起使用)。任何类型的提示,即使没有完整的解决方案,也将不胜感激。我已经尝试了很多事情,并且已经非常接近,但遇到了索引问题,Exception: Reindexing only valid with uniquely valued Index objects特别是。[熊猫 0.10.0,Python 2.7]

我正在尝试从以下形式转换我在 postgres 中拥有的数千只股票的月度回报数据:

例如

注意:报告的频率是每月一次,但这里会有相当多的 NaN 数据,因为并非我在这里拥有的 6000 多家公司都会同时出现。

…到下面描述的形式,这是 Zipline 运行其回测器所需要的。(我认为。Zipline 的回测器可以轻松地处理这样的月度数据吗?我知道可以,但是有什么技巧吗?)


下面是一个 DataFrame (时间序列?你怎么说?),我需要的格式:

> data

下面是一个时间序列,是我需要的格式。

> data.AAPL

注意,这里没有返回数据,而是价格。它们被调整(通过 Zipline 的load_from_yahoo——虽然,从阅读源代码,实际上是通过 pandas 中的函数)用于股息、拆分等,所以在它和我的返回数据之间存在同构(减去初始价格)(所以,这里没问题)。

(编辑:如果您希望我写下我拥有的东西,或者附上我的 iPython 笔记本或要点,请告诉我;我只是怀疑它是否会有所帮助,但如果需要,我绝对可以做到。)

0 投票
1 回答
948 浏览

python - Python:KeyError 'shift'

我是 Python 新手,并尝试修改我在这里找到的配对交易脚本: https ://github.com/quantopian/zipline/blob/master/zipline/examples/pairtrade.py

原始脚本旨在仅使用价格。我想使用回报来适应我的模型和投资数量的价格,但我不知道该怎么做。

我试过了:

  • 在 main 中定义返回的数据框并在运行中调用它
  • 将 main 中的返回数据框定义为全局对象,并在“处理数据”中需要时使用
  • 直接在句柄数据中定义一个retuns的数据框

我认为最后一个选项是最合适的,但是熊猫'shift'属性出现错误。

更具体地说,我尝试将“DataRegression”定义如下:

其中“数据”是一个数据框,其中包含全局定义的价格、库存 1、库存 2 和库存 3 列名称。句柄数据中的那些行返回错误:

有谁知道为什么以及如何正确地做到这一点?

非常感谢,文森特

0 投票
1 回答
6636 浏览

python - 将 pandas MultiIndex DataFrame 从行转换为列

我正在使用 zipline 和 pandas 并已使用该方法将 a 转换pandas.Panel为 a 。如您所见,这是多索引的结果:pandas.DataFrameto_frame()pandas.DataFrame

我需要将此框架转换为如下所示:

我已经尝试过 pivot 方法、stack/unstack 等,但这些方法不是我想要的。在这一点上我真的很困惑,任何帮助表示赞赏。

0 投票
10 回答
144330 浏览

python - pip install 给出错误:无法找到 vcvarsall.bat

pip install zipline在带有 Python 2.7 的 Windows 8 上使用会给我错误:

问题:如何解决错误?运行pip install zipline[all]给出了同样的错误......

0 投票
3 回答
1224 浏览

python - @ 符号在 iPython/Python 中有什么作用

我正在阅读的代码使用@batch_transform. 符号有什么作用@?它是 ipython 特定的吗?

0 投票
1 回答
322 浏览

python - IPython 集群和 PicklingError

我的问题似乎类似于This Thread但是,虽然我认为我正在遵循建议的方法,但我仍然收到 PicklingError。当我在本地运行我的进程而不发送到 IPython Cluster Engine 时,该函数工作正常。

我在 IPyhon 的 notebook 上使用 zipline,所以我首先创建了一个基于 zipline.TradingAlgorithm 的类

细胞 [ 1 ]

细胞 [ 2 ]

细胞 [ 3 ]

这是产生的错误:

如果我使用以下内容覆盖 zipline.TradingAlgorithm 中的 run() 方法:

尝试这样的事情...

导致相同的 PicklingError。

然后传递给引擎的工作,但显然没有执行测试的胆量。由于 run 是 zipline.TradingAlgorithm 内部的一种方法,我不知道它所做的一切,我将如何确保它通过?

0 投票
2 回答
377 浏览

pandas - Zipline 数据 msgpack 不与源算法交易一起分发

我正在尝试运行一个简单的滑索教程来测试 GOOG 中的交易算法,但无法使其正常工作。这就是问题:

返回以下内容:

我在为我的开发人员使用库(pandas、scikit-learn、numpy、seaborn、mcerp 等加上我自己的具有许多依赖项的库)方面“很重”,所以我不知道这是否与它。

除此之外,我还在一个 Ubuntu(虚拟盒)VM 中运行来自 Enthought 的 Python 2.7 中的所有内容。

有关如何解决此问题的任何帮助?

干杯

0 投票
2 回答
3804 浏览

hft - 使用非美国(欧洲)日内数据进行 zipline 回测

我正在尝试让 zipline 处理已加载到 pandas DataFrame 中的非美国盘中数据:

我在这里遵循移动平均线教程,将“AAPL”替换为我自己的符号代码,并将历史调用替换为“1m”数据而不是“1d”。

然后我使用 进行最后的调用algo_obj.run(DataFrameSource(mydf)),上面的数据框在哪里mydf

但是,与TradingEnvironment相关的各种问题都会出现。根据源代码:

但是,使用上下文似乎并不完全有效。我仍然收到错误,例如说我的时间戳是在市场开盘之前(实际上,看trading.environment.open_and_close时间是针对美国市场的。

我的问题是,是否有人设法将 zipline 用于非美国的日内数据?您能否指出我的资源和理想的示例代码如何做到这一点?

nb 我在 github 上看到了一些似乎与交易日历相关的测试(tradincalendar_lse.py、tradingcalendar_tse.py 等)——但这似乎只处理每日级别的数据。我需要修复:

  • 开/关时间
  • 基准的参考数据
  • 可能还有更多...
0 投票
0 回答
345 浏览

python - Pandas 列 A > B,使用 Zipline 执行交易

我在尝试回测 Zipline 的财务想法时遇到问题。

我得到的是第一列数据['SPY'] 中 SPY 的收盘价,以及一个“自制”信号数据['Signal']。该信号类似于移动平均线,低于或高于 data['SPY']。

现在交易逻辑不起作用,因为如果我理解正确,pandas 不会按行计算,而是一次计算整个数据集。

上面的非工作代码表达了我想要执行的逻辑——如果 SPY > Signal 然后买入,如果相反则卖出。我尝试了各种迭代,但无法使其工作。

任何人都可以帮助苦苦挣扎的业余交易者吗?

#

我设法走得更远。我需要做的是向我的数据框添加一个“转换”,在本例中为移动平均线。由于我不想实际使用移动平均线,因此我将天数设置为 1,这实际上应该意味着我使用原始数字。

上面的代码几乎完全按照我的意愿工作,唯一的怪癖是由于某种原因它没有做空头寸。但这至少是朝着正确方向迈出的一步,并且可能会帮助其他人。

下面的这两个链接帮助我弄清楚了这一点。

http://zipline.readthedocs.org/en/latest/zipline.transforms.html

http://nbviewer.ipython.org/github/twiecki/financial-analysis-python-tutorial/blob/master/3.%20Backtesting%20using%20Zipline.ipynb

0 投票
1 回答
3600 浏览

python - Zipline - csv 文件

我试图弄清楚如何在 Zipline 中使用我自己的 csv 数据文件(最初来自雅虎财经)。我知道您需要将 csv 文件加载到 pandas 数据框中。但我似乎无法阻止 Zipline 从雅虎下载数据。

我的 csv 文件格式:

我的算法文件:

我创建泡菜文件的命令行:

命令行输出:

我的泡菜文件已正确创建。但它似乎仍在使用 yahoo 而不是我的 csv,因为命令行输出谈论的是 yahoo 财务。除了“将 csv 加载到数据框”之外,Zipline 似乎没有关于如何执行此操作的文档。还有什么?

非常感谢。