Metadata-Version: 1.1
Name: zipline
Version: 0.5.4
Summary: A backtester for financial algorithms.
Home-page: https://github.com/quantopian/zipline
Author: Quantopian Inc.
Author-email: opensource@quantopian.com
License: Apache 2.0
Description: Zipline
        =======
        
        Zipline is a financial backtester for trading algorithms written in
        Python. The system is fundamentally event-driven and a close
        approximation of how live-trading systems operate.
        
        Zipline is currently used in production as the backtesting engine
        powering Quantopian (https://www.quantopian.com) -- a free,
        community-centered platform that allows development and real-time
        backtesting of trading algorithms in the web browser.
        
        Want to contribute? See our `open
        requests <https://github.com/quantopian/zipline/wiki/Contribution-Requests>`_
        and our `general
        guidelines <https://github.com/quantopian/zipline#contributions>`_
        below.
        
        Discussion and Help
        ===================
        
        Discussion of the project is held at the Google Group,
        zipline@googlegroups.com,
        https://groups.google.com/forum/#!forum/zipline.
        
        Features
        ========
        
        -  Ease of use: Zipline tries to get out of your way so that you can
           focus on algorithm development. See below for a code example.
        
        -  Zipline comes "batteries included" as many common statistics like
           moving average and linear regression can be readily accessed from
           within a user-written algorithm.
        
        -  Input of historical data and output of performance statistics is
           based on Pandas DataFrames to integrate nicely into the existing
           Python eco-system.
        
        -  Statistic and machine learning libraries like matplotlib, scipy,
           statsmodels, and sklearn support development, analysis and
           visualization of state-of-the-art trading systems.
        
        Installation
        ============
        
        Since zipline is pure-python code it should be very easy to install and
        set up with pip:
        
        ``pip install zipline``
        
        If there are problems installing the dependencies or zipline we
        recommend installing these packages via some other means. For Windows,
        the `Enthought Python
        Distribution <http://www.enthought.com/products/epd.php>`_ includes most
        of the necessary dependencies. On OSX, the `Scipy
        Superpack <http://fonnesbeck.github.com/ScipySuperpack/>`_ works very
        well.
        
        Dependencies
        ------------
        
        -  Python (>= 2.7.2)
        -  numpy (>= 1.6.0)
        -  pandas (>= 0.9.0)
        -  pytz
        -  msgpack-python
        -  iso8601
        -  Logbook
        -  blist
        
        Quickstart
        ==========
        
        The following code implements a simple dual moving average algorithm and
        tests it on data extracted from yahoo finance.
        
        ::
        
            from zipline.algorithm import TradingAlgorithm
            from zipline.transforms import MovingAverage
            from zipline.utils.factory import load_from_yahoo
        
            class DualMovingAverage(TradingAlgorithm):
                """Dual Moving Average algorithm.
                """
                def initialize(self, short_window=200, long_window=400):
                    # Add 2 mavg transforms, one with a long window, one
                    # with a short window.
                    self.add_transform(MovingAverage, 'short_mavg', ['price'],
                                       market_aware=True,
                                       days=short_window)
        
                    self.add_transform(MovingAverage, 'long_mavg', ['price'],
                                       market_aware=True,
                                       days=long_window)
        
                    # To keep track of whether we invested in the stock or not
                    self.invested = False
        
                    self.short_mavg = []
                    self.long_mavg = []
        
        
                def handle_data(self, data):
                    if (data['AAPL'].short_mavg['price'] > data['AAPL'].long_mavg['price']) and not self.invested:
                        self.order('AAPL', 100)
                        self.invested = True
                    elif (data['AAPL'].short_mavg['price'] < data['AAPL'].long_mavg['price']) and self.invested:
                        self.order('AAPL', -100)
                        self.invested = False
        
                    # Save mavgs for later analysis.
                    self.short_mavg.append(data['AAPL'].short_mavg['price'])
                    self.long_mavg.append(data['AAPL'].long_mavg['price'])
        
            data = load_from_yahoo()
            dma = DualMovingAverage()
            results = dma.run(data)
        
        You can find other examples in the zipline/examples directory.
        
        Contributions
        =============
        
        If you would like to contribute, please see our Contribution Requests:
        https://github.com/quantopian/zipline/wiki/Contribution-Requests
        
        Credits
        -------
        
        Thank you for all the help so far!
        
        -  @snth
        -  @yinhm for integrating zipline with @yinhm/datafeed
        -  `Jeremiah Lowin <http://www.lowindata.com>`_ for teaching us the
           nuances of Sharpe and Sortino Ratios
        -  Quantopian Team
        
        (alert us if we've inadvertantly missed listing you here!)
        
        Style Guide
        -----------
        
        To ensure that changes and patches are focused on behavior changes, the
        zipline codebase adheres to both PEP-8,
        http://www.python.org/dev/peps/pep-0008/, and pyflakes,
        https://launchpad.net/pyflakes/.
        
        The maintainers check the code using the flake8 script,
        https://github.com/bmcustodio/flake8, which is included in the
        requirements\_dev.txt.
        
        Before submitting patches or pull requests, please ensure that your
        changes pass ``flake8 zipline tests``
        
        Source
        ======
        
        The source for Zipline is hosted at
        https://github.com/quantopian/zipline.
        
        Build Status
        ============
        
        `|Build Status| <https://travis-ci.org/quantopian/zipline>`_
        
        Contact
        =======
        
        For other questions, please contact opensource@quantopian.com.
        
        .. |Build Status| image:: https://travis-ci.org/quantopian/zipline.png
        
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.7
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Office/Business :: Financial
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Classifier: Topic :: System :: Distributed Computing
