0

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

dma = DualMovingAverage()
results = dma.run(data)

返回以下内容:

data msgpacks aren't distributed with source.
Fetching data from Yahoo Finance.
data msgpacks aren't distributed with source.
Fetching data from data.treasury.gov
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-11-daf3c4eec6f3> in <module>()
      1 dma = DualMovingAverage()
----> 2 results = dma.run(data)

/home/luis/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/zipline/algorithm.pyc in run(self, source, sim_params, benchmark_return_source)
    297                 trans_descr['class'],
    298                 *trans_descr['args'],
--> 299                 **trans_descr['kwargs']
    300             )
    301             sf.namestring = namestring

/home/luis/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/zipline/transforms/utils.pyc in __init__(self, tnfm_class, *args, **kwargs)
    111             # usually resolves to our super call.
    112             self.state = super(TransformMeta, tnfm_class).__call__(
--> 113                 *args, **kwargs)
    114         # Normal object instantiation.
    115         else:

TypeError: __init__() got an unexpected keyword argument 'days'

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

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

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

干杯

4

2 回答 2

0

路易斯,

我刚刚开始研究包裹。我根据这个谈话的理解http://www.youtube.com/watch?v=RntTy7-ZHt0 Pandas、Scikit-Learn、Numpy 应该不会引起问题。事实上,它正在使用 Panadas 存储王子数据。

此外,这里是 Dan Dunn YouTube 网站的链接,该网站有一个快速入门视频。 http://www.youtube.com/channel/UC606MUq45P3zFLa4VGKbxsg

道格拉斯

于 2014-02-12T12:11:27.853 回答
0

“数据 msgpack 不与源一起分发。” 只是一个免责声明,告诉您数据不随源代码一起提供。

这不是你错误的根源。

该错误似乎在您声明 DualMovingAverage() TradingAlgorithm 上。也许您需要使用 start_time 和 end_time 而不是“days”...我不使用 zipline 内置的数据提取器,而是我更喜欢自己获取 pandas 中的数据,然后以正确的格式将其传递给 zipline。(股票代码作为列,时间戳作为行,价格数据作为值)

来自 run 方法的 zipline 源代码(实际上在算法上工作的方法):

def run(self, source, sim_params=None, benchmark_return_source=None):
    """Run the algorithm.

    :Arguments:
        source : can be either:
                 - pandas.DataFrame
                 - zipline source
                 - list of zipline sources

           If pandas.DataFrame is provided, it must have the
           following structure:
           * column names must consist of ints representing the
             different sids
           * index must be DatetimeIndex
           * array contents should be price info.

    :Returns:
        daily_stats : pandas.DataFrame
          Daily performance metrics such as returns, alpha etc.
    """

http://zipline.readthedocs.org/en/latest/_modules/zipline/algorithm.html

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

于 2014-06-19T16:12:17.527 回答