问题标签 [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.
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 笔记本或要点,请告诉我;我只是怀疑它是否会有所帮助,但如果需要,我绝对可以做到。)
python - Python:KeyError 'shift'
我是 Python 新手,并尝试修改我在这里找到的配对交易脚本: https ://github.com/quantopian/zipline/blob/master/zipline/examples/pairtrade.py
原始脚本旨在仅使用价格。我想使用回报来适应我的模型和投资数量的价格,但我不知道该怎么做。
我试过了:
- 在 main 中定义返回的数据框并在运行中调用它
- 将 main 中的返回数据框定义为全局对象,并在“处理数据”中需要时使用
- 直接在句柄数据中定义一个retuns的数据框
我认为最后一个选项是最合适的,但是熊猫'shift'属性出现错误。
更具体地说,我尝试将“DataRegression”定义如下:
其中“数据”是一个数据框,其中包含全局定义的价格、库存 1、库存 2 和库存 3 列名称。句柄数据中的那些行返回错误:
有谁知道为什么以及如何正确地做到这一点?
非常感谢,文森特
python - 将 pandas MultiIndex DataFrame 从行转换为列
我正在使用 zipline 和 pandas 并已使用该方法将 a 转换pandas.Panel
为 a 。如您所见,这是多索引的结果:pandas.DataFrame
to_frame()
pandas.DataFrame
我需要将此框架转换为如下所示:
我已经尝试过 pivot 方法、stack/unstack 等,但这些方法不是我想要的。在这一点上我真的很困惑,任何帮助表示赞赏。
python - pip install 给出错误:无法找到 vcvarsall.bat
pip install zipline
在带有 Python 2.7 的 Windows 8 上使用会给我错误:
问题:如何解决错误?运行pip install zipline[all]
给出了同样的错误......
python - @ 符号在 iPython/Python 中有什么作用
我正在阅读的代码使用@batch_transform
. 符号有什么作用@
?它是 ipython 特定的吗?
python - IPython 集群和 PicklingError
我的问题似乎类似于This Thread但是,虽然我认为我正在遵循建议的方法,但我仍然收到 PicklingError。当我在本地运行我的进程而不发送到 IPython Cluster Engine 时,该函数工作正常。
我在 IPyhon 的 notebook 上使用 zipline,所以我首先创建了一个基于 zipline.TradingAlgorithm 的类
细胞 [ 1 ]
细胞 [ 2 ]
细胞 [ 3 ]
这是产生的错误:
如果我使用以下内容覆盖 zipline.TradingAlgorithm 中的 run() 方法:
尝试这样的事情...
导致相同的 PicklingError。
然后传递给引擎的工作,但显然没有执行测试的胆量。由于 run 是 zipline.TradingAlgorithm 内部的一种方法,我不知道它所做的一切,我将如何确保它通过?
pandas - Zipline 数据 msgpack 不与源算法交易一起分发
我正在尝试运行一个简单的滑索教程来测试 GOOG 中的交易算法,但无法使其正常工作。这就是问题:
返回以下内容:
我在为我的开发人员使用库(pandas、scikit-learn、numpy、seaborn、mcerp 等加上我自己的具有许多依赖项的库)方面“很重”,所以我不知道这是否与它。
除此之外,我还在一个 Ubuntu(虚拟盒)VM 中运行来自 Enthought 的 Python 2.7 中的所有内容。
有关如何解决此问题的任何帮助?
干杯
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 等)——但这似乎只处理每日级别的数据。我需要修复:
- 开/关时间
- 基准的参考数据
- 可能还有更多...
python - Pandas 列 A > B,使用 Zipline 执行交易
我在尝试回测 Zipline 的财务想法时遇到问题。
我得到的是第一列数据['SPY'] 中 SPY 的收盘价,以及一个“自制”信号数据['Signal']。该信号类似于移动平均线,低于或高于 data['SPY']。
现在交易逻辑不起作用,因为如果我理解正确,pandas 不会按行计算,而是一次计算整个数据集。
上面的非工作代码表达了我想要执行的逻辑——如果 SPY > Signal 然后买入,如果相反则卖出。我尝试了各种迭代,但无法使其工作。
任何人都可以帮助苦苦挣扎的业余交易者吗?
#我设法走得更远。我需要做的是向我的数据框添加一个“转换”,在本例中为移动平均线。由于我不想实际使用移动平均线,因此我将天数设置为 1,这实际上应该意味着我使用原始数字。
上面的代码几乎完全按照我的意愿工作,唯一的怪癖是由于某种原因它没有做空头寸。但这至少是朝着正确方向迈出的一步,并且可能会帮助其他人。
下面的这两个链接帮助我弄清楚了这一点。
http://zipline.readthedocs.org/en/latest/zipline.transforms.html
python - Zipline - csv 文件
我试图弄清楚如何在 Zipline 中使用我自己的 csv 数据文件(最初来自雅虎财经)。我知道您需要将 csv 文件加载到 pandas 数据框中。但我似乎无法阻止 Zipline 从雅虎下载数据。
我的 csv 文件格式:
我的算法文件:
我创建泡菜文件的命令行:
命令行输出:
我的泡菜文件已正确创建。但它似乎仍在使用 yahoo 而不是我的 csv,因为命令行输出谈论的是 yahoo 财务。除了“将 csv 加载到数据框”之外,Zipline 似乎没有关于如何执行此操作的文档。还有什么?
非常感谢。