Skip to content
All library documents

Zipline 0.9.0 Adds Pipeline Factors, Classifiers, and Event Data

Article Zipline

Summary

These release notes describe additions to Zipline’s Pipeline API in version 0.9.0. New datasets expose buyback authorizations and dividend information organized by ex-date, payment date, or announcement date. Related built-in factors measure business days since buyback authorization or dividend announcement, and days until or since an ex-date. These additions let algorithms incorporate corporate-event data and timing features into pipeline computations.

The release also introduces classifiers for grouping assets, factor normalization through demeaning and z-scores, and factor-to-quantile bucketing, including common bucket helpers. A bug fix addresses failures when numerical expressions combine more than ten factors or filters. The notes additionally mention Windows build support and continuous integration, but provide no trading strategy, empirical evaluation, or evidence about the predictive value of the new fields. They are a software capability summary; researchers still need appropriate data handling and independent tests before using these features in a strategy.

Key ideas

  • The Pipeline API gains datasets for buyback authorizations and dividend event dates.
  • New factors measure business-day timing around buybacks and dividend events.
  • Classifiers provide grouping keys for factor normalization and related operations.
  • Factors can be demeaned, converted to z-scores, or partitioned into quantile buckets.
  • The release notes describe software additions and fixes, not strategy performance.

Tags

Full text
# 0.9.0


Release 0.9.0
-------------

:Release: 0.9.0
:Date: March 29, 2016

Highlights
~~~~~~~~~~

* Added classifiers and normalization methods to pipeline, along with new
  datasets and factors.

* Added support for Windows with continuous integration on AppVeyor.

Enhancements
~~~~~~~~~~~~
* Added new datasets
  :class:`~zipline.pipeline.data.buyback_auth.CashBuybackAuthorizations`
  and :class:`~zipline.pipeline.data.buyback_auth.ShareBuybackAuthorizations`
  for use in the Pipeline API.  These datasets provide an abstract interface for
  adding cash and share buyback authorizations data, respectively, to a new
  algorithm. pandas-based reference implementations for these datasets can be
  found in :mod:`zipline.pipeline.loaders.buyback_auth`, and experimental
  blaze-based implementations can be found in
  :mod:`zipline.pipeline.loaders.blaze.buyback_auth`. (:issue:`1022`).

* Added new datasets
  :class:`~zipline.pipeline.data.dividends.DividendsByExDate`,
  :class:`~zipline.pipeline.data.dividends.DividendsByPayDate`, and
  :class:`~zipline.pipeline.data.dividends.DividendsByAnnouncementDate`
  for use in the Pipeline API.  These datasets provide an abstract interface for
  adding dividends data organized by ex date, pay date, and announcement date,
  respectively, to a new algorithm. pandas-based reference implementations for
  these datasets can be found in :mod:`zipline.pipeline.loaders.dividends`, and
  experimental blaze-based implementations can be found in
  :mod:`zipline.pipeline.loaders.blaze.dividends`. (:issue:`1093`).

* Added new built-in factors,
  :class:`zipline.pipeline.factors.BusinessDaysSinceCashBuybackAuth` and
  :class:`zipline.pipeline.factors.BusinessDaysSinceShareBuybackAuth`.  These
  factors use the new ``CashBuybackAuthorizations`` and
  ``ShareBuybackAuthorizations`` datasets, respectively. (:issue:`1022`).

* Added new built-in factors,
  :class:`zipline.pipeline.factors.BusinessDaysSinceDividendAnnouncement`,
  :class:`zipline.pipeline.factors.BusinessDaysUntilNextExDate`, and
  :class:`zipline.pipeline.factors.BusinessDaysSincePreviousExDate`.  These
  factors use the new ``DividendsByAnnouncementDate` and ``DividendsByExDate``
  datasets, respectively. (:issue:`1093`).

* Implemented :class:`zipline.pipeline.Classifier`, a new core pipeline API
  term representing grouping keys.  Classifiers are primarily used by passing
  them as the ``groupby`` parameter to factor normalization methods.
  (:issue:`1046`)

* Added factor normalization methods:
  :meth:`zipline.pipeline.Factor.demean` and
  :meth:`zipline.pipeline.Factor.zscore`. (:issue:`1046`)

* Added :meth:`zipline.pipeline.Factor.quantiles`, a method for computing a
  Classifier from a Factor by partitioning into equally-sized buckets. Also
  added helpers for common quantile sizes
  (:meth:`zipline.pipeline.Factor.quartiles`,
  :meth:`zipline.pipeline.Factor.quartiles`, and
  :meth:`zipline.pipeline.Factor.deciles`) (:issue:`1075`).

Experimental Features
~~~~~~~~~~~~~~~~~~~~~

.. warning::

   Experimental features are subject to change.

None

Bug Fixes
~~~~~~~~~

* Fixed a bug where merging two numerical expressions failed given too many
  inputs. This caused running a pipeline to fail when combining more than ten
  factors or filters. (:issue:`1072`)

Performance
~~~~~~~~~~~

None

Maintenance and Refactorings
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

None

Build
~~~~~

* Added AppVeyor for continuous integration on Windows.  Added conda build of
  zipline and its dependencies to AppVeyor and Travis builds, which upload
  their results to anaconda.org labeled with "ci". (:issue:`981`)

Documentation
~~~~~~~~~~~~~

None

Miscellaneous
~~~~~~~~~~~~~

* Adds :class:`~zipline.testing.fixtures.ZiplineTestCase` which provides hooks
  to consume test fixtures. Fixtures are things like:
  :class:`~zipline.testing.fixtures.WithAssetFinder` which will make
  ``self.asset_finder`` available to your test with some mock data
  (:issue:`1042`).

Shown in full with attribution under the source's licence. Licence: Apache-2.0

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.