标签: zipline

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

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

Downloading/unpacking six (from python-dateutil==2.1->delorean->zipline[all])
  Running setup.py egg_info for package six

Installing collected packages: blist, pytz, requests, python-dateutil, six
  Running setup.py install for blist
    building '_blist' extension
    error: Unable to find vcvarsall.bat
    Complete output from command C:\Python27\python.exe -c "import setuptools;__
file__='c:\\users\\ThatsMe\\appdata\\local\\temp\\pip-build-ThatsMe\\blist\\setup.py';ex
ec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" inst
all --record c:\users\ThatsMe\appdata\local\temp\pip-xvoky2-record\install-record.tx
t --single-version-externally-managed:

running install

running build

running build_py

running build_ext

building '_blist' extension

error: Unable to find vcvarsall.bat
Run Code Online (Sandbox Code Playgroud)

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

python pip python-2.7 zipline

50
推荐指数
4
解决办法
14万
查看次数

如何更新已弃用的python zipline.transforms模块?

我使用quantopian zipline包http://www.zipline.io/beginner-tutorial.html编写了一个python程序.我最近更新了包,并且遇到了不推荐使用zipline.transforms包的问题.我使用了zipline.transforms包中的两个函数,batch_transform()MovingAverage.

我没有找到一个好的帖子来演示如何解决这个问题,除了说要替换batch_transform这个history()功能.但是,我不知道如何更换它.我还没有找到一篇文章告诉我们如何解决MovingAverage弃用问题.

这是我正在使用的代码.

from zipline.algorithm import TradingAlgorithm
from zipline.transforms import batch_transform
from zipline.transforms import MovingAverage


class TradingStrategy(TradingAlgorithm):

    def initialize(self, window_length=6):
        self.add_transform(
            MovingAverage, 'kernel', ['price'], window_length=self.window_length)

    @batch_transform
    def get_data(data, context):
        '''
        Collector for some days of historical prices.
        '''
        daily_prices = data.price[STOCKS + [BENCHMARK]]
        return daily_prices

strategy = TradingStrategy()
Run Code Online (Sandbox Code Playgroud)

有人可以举例说明如何更新上面的代码吗?我假设有很多人在处理有关流行的quantopian的问题.

python zipline

17
推荐指数
1
解决办法
328
查看次数

获取时间序列熊猫每个月的最后日期

目前我正在使用某个函数生成DateTimeIndex zipline.utils.tradingcalendar.get_trading_days.时间序列大致是每天,但有一些差距.

我的目标是获得DateTimeIndex每月的最后日期.

.to_period('M')&.to_timestamp('M')不工作,因为它们给出了月份的最后一天,而不是每月的变量的最后一个值.

例如,如果这是我的时间序列,我想选择"2015-05-29",而月份的最后一天是"2015-05-31".

['2015-05-18','2015-05-19','2015-05-20','2015-05-21','2015-05-22','2015-05-26',' 2015-05-27','2015-05-28','2015-05-29','2015-06-01']

python pandas zipline

10
推荐指数
2
解决办法
6710
查看次数

ENIGMA催化剂 - 警告:装载机:由于下载成功,拒绝下载新的库存数据

我正在玩Enigma Catalyst.不幸的是,文档相当有限.

所以我试图运行他们的示例"hello world"类型algo,如下所示:

from catalyst import run_algorithm
from catalyst.api import order, record, symbol
import pandas as pd

def initialize(context):
    context.asset = symbol('btc_usd')


def handle_data(context, data):
    order(context.asset, 1)
    record(btc=data.current(context.asset, 'price'))


if __name__ == '__main__':
    run_algorithm(
        capital_base=10000,
        data_frequency='daily',
        initialize=initialize,
        handle_data=handle_data,
        exchange_name='Bitfinex',
        algo_namespace='buy_and_hodl',
        base_currency='usd',
        start=pd.to_datetime('2018-01-02', utc=True),
        end=pd.to_datetime('2018-01-03', utc=True),
    )
Run Code Online (Sandbox Code Playgroud)

我意识到根据文档说它首先需要"摄取"下载我认为我做过的历史数据.但是,这会导致以下错误:

[2018-02-25 02:54:10.696049] WARNING: Loader: Refusing to download new
treasury data because a download succeeded at 2018-02-25
02:08:26.001177+00:00.
Run Code Online (Sandbox Code Playgroud)

这导致没有数据

[2018-02-25 02:54:10.830665] INFO: Performance: first open: 2018-01-02
00:00:00+00:00 …
Run Code Online (Sandbox Code Playgroud)

python zipline enigma2 enigma-catalyst

10
推荐指数
1
解决办法
189
查看次数

Zipline:使用pandas-datareader为非美国金融市场提供Google财经数据框

请注意:这个问题在下面成功回答了ptrj.我还在我的博客上写了一篇关于我对zipline的体验的博客文章,你可以在这里找到:https://financialzipline.wordpress.com


我的总部设在南非,我正在尝试将南非股票加载到一个数据框中,以便它可以提供带有股价信息的zipline.假设我正在寻找在JSE(约翰内斯堡证券交易所)上市的AdCorp控股有限公司:

Google财经为我提供了历史价格信息:

https://www.google.com/finance/historical?q=JSE%3AADR&ei=5G6OV4ibBIi8UcP-nfgB

雅虎财经没有关于该公司的信息.

https://finance.yahoo.com/quote/adcorp?ltr=1

在iPython Notebook中键入以下代码,可以获得Google财经信息的数据框:

start = datetime.datetime(2016,7,1)
end = datetime.datetime(2016,7,18)    
f = web.DataReader('JSE:ADR', 'google',start,end)
Run Code Online (Sandbox Code Playgroud)

如果我显示f,我看到该信息实际上也与Google财经相关信息相对应:

在此输入图像描述

这是Google财经完全关闭的价格,您可以在Google财经网站上看到2016-07-18的信息与我的数据框完全匹配.

在此输入图像描述

但是,我不确定如何加载此数据框,以便zipline可以将其用作数据包.

如果查看给出的示例buyapple.py,您可以看到它只是从摄取的数据包中提取了apple share(APPL)的数据quantopian-quandl.这里的挑战是更换APPL,JSE:ADR以便它JSE:ADR每天订购10 份数据,而不是数据包,quantopian-quandl并将其绘制在图表上.

有谁知道如何做到这一点?网上几乎没有关于这个问题的例子......

这是buyapple.pyzipline示例文件夹中提供的代码:

from zipline.api import order, record, symbol


def initialize(context):
    pass


def handle_data(context, data):
    order(symbol('AAPL'), 10)
    record(AAPL=data.current(symbol('AAPL'), 'price'))


# Note: this function can be removed if running
# this algorithm on quantopian.com
def analyze(context=None, …
Run Code Online (Sandbox Code Playgroud)

python pandas zipline pandas-datareader

9
推荐指数
1
解决办法
4367
查看次数

将pandas MultiIndex DataFrame从行方式转换为列方式

我在zipline和pandas工作,并使用该方法pandas.Panel将a 转换为a .这是结果,你可以看到是多索引的:pandas.DataFrameto_frame()pandas.DataFrame

                                  price
major                     minor                
2008-01-03 00:00:00+00:00 SPY    129.93
                          KO      26.38
                          PEP     64.78
2008-01-04 00:00:00+00:00 SPY    126.74
                          KO      26.43
                          PEP     64.59
2008-01-07 00:00:00+00:00 SPY    126.63
                          KO      27.05
                          PEP     66.10
2008-01-08 00:00:00+00:00 SPY    124.59
                          KO      27.16
                          PEP     66.63
Run Code Online (Sandbox Code Playgroud)

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

                          SPY     KO     PEP
2008-01-03 00:00:00+00:00 129.93  26.38  64.78
2008-01-04 00:00:00+00:00 126.74  26.43  64.59
2008-01-07 00:00:00+00:00 126.63  27.05  66.10
2008-01-08 00:00:00+00:00 124.59  27.16  66.63
Run Code Online (Sandbox Code Playgroud)

我已经尝试过pivot方法,stack/unstack等等,但这些方法并不是我想要的.我真的非常坚持这一点,任何帮助都表示赞赏.

python multi-index pandas zipline

8
推荐指数
1
解决办法
5679
查看次数

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

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

我试图通过以下形式转换我在postgres中的数千种股票的月度回报数据:

ticker_symbol :: String, monthly_return :: Float, date :: Timestamp
Run Code Online (Sandbox Code Playgroud)

例如

AAPL, 0.112, 28/2/1992
GS, 0.13, 30/11/1981
GS, -0.23, 22/12/1981
Run Code Online (Sandbox Code Playgroud)

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

...到下面描述的形式,这是Zipline运行其后测试器所需要的.(我想.Zipline的backtester可以轻松地使用这样的月度数据吗?我知道它可以,但是这样做的任何提示?)


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

> data:

<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 2268 entries, 1993-01-04 00:00:00+00:00 to 2001-12-31 00:00:00+00:00
Data columns:
AA      2268  non-null values
AAPL    2268  non-null values
GE      2268  non-null values
IBM     2268  non-null values
JNJ     2268  non-null values
KO      2268  non-null values
MSFT    2268  non-null …
Run Code Online (Sandbox Code Playgroud)

python etl pandas zipline

6
推荐指数
1
解决办法
1381
查看次数

使用非美国(欧洲)日内数据的zipline回测

我正试图让zipline与非美国的日内数据一起使用,我已将其加载到pandas DataFrame中:

                        BARC    HSBA     LLOY     STAN
Date                                                  
2014-07-01 08:30:00  321.250  894.55  112.105  1777.25
2014-07-01 08:32:00  321.150  894.70  112.095  1777.00
2014-07-01 08:34:00  321.075  894.80  112.140  1776.50
2014-07-01 08:36:00  321.725  894.80  112.255  1777.00
2014-07-01 08:38:00  321.675  894.70  112.290  1777.00
Run Code Online (Sandbox Code Playgroud)

我在这里遵循移动平均线教程,用我自己的符号代码替换"AAPL",用"1m"数据代替"1d"代替历史调用.

然后,我用做最后一次通知algo_obj.run(DataFrameSource(mydf)),其中mydf高于数据帧.

然而,与TradingEnvironment相关的各种问题都出现了.根据源代码:

# This module maintains a global variable, environment, which is
# subsequently referenced directly by zipline financial
# components. To set the environment, you can set the property on
# the module …
Run Code Online (Sandbox Code Playgroud)

hft zipline

6
推荐指数
1
解决办法
3223
查看次数

在 zipline 上运行回测时如何解决 AssertionError

我正在阅读 Andreas Clenow 所著的《Trading Evolved》一书,并在尝试在 zipilne 上运行第一次回测的代码时遇到断言错误。我是 python 和 zipline 的新手,非常感谢有关如何解决此错误的任何指导。以下是从本书网站获取的源代码:

# This ensures that our graphs will be shown properly in the notebook.
%matplotlib inline

#Import pandas as pd

import pandas as pd

# Import Zipline functions that we need
from zipline import run_algorithm
from zipline.api import order_target_percent, symbol

# Import date and time zone libraries
from datetime import datetime
import pytz

# Import visualization
import matplotlib.pyplot as plt


def initialize(context):
    # Which stock to trade
    context.stock = symbol('AAPL') …
Run Code Online (Sandbox Code Playgroud)

python zipline quantopian

5
推荐指数
1
解决办法
2102
查看次数

如何在自定义zipline包中使用自定义日历?

我的viacsv.py文件中有以下代码,旨在允许自定义捆绑包被摄取:

#
# Ingest stock csv files to create a zipline data bundle

import os

import numpy  as np
import pandas as pd
import datetime

boDebug=True # Set True to get trace messages

from zipline.utils.cli import maybe_show_progress

def viacsv(symbols,start=None,end=None):

    # strict this in memory so that we can reiterate over it.
    # (Because it could be a generator and they live only once)
    tuSymbols = tuple(symbols)

    if boDebug:
        print "entering viacsv.  tuSymbols=",tuSymbols

    # Define our custom ingest function
    def ingest(environ, …
Run Code Online (Sandbox Code Playgroud)

python calendar quantitative-finance zipline

3
推荐指数
1
解决办法
1612
查看次数