Files
catalyst/docs/source/whatsnew/0.8.4.txt
T
Joe Jevnik 7a6ba4f249 Merge pull request #924 from quantopian/dataset-subclassing
ENH: Make datasets have subclass relationships
2015-12-29 11:43:55 -05:00

153 lines
5.9 KiB
Plaintext

Development
-----------
:Release: 0.8.4
:Date: TBD
.. warning::
This release is still under active development. All changes listed are
subject to change at any time.
Highlights
~~~~~~~~~~
* Added a new :class:`~zipline.pipeline.data.EarningsCalendar` dataset
for use in the Pipeline API. (:issue:`905`).
* :class:`~zipline.assets.assets.AssetFinder` speedups (:issue:`830` and
:issue:`817`).
Enhancements
~~~~~~~~~~~~
* Adds a way for users to provide a context manager to use when executing the
scheduled functions (including ``handle_data``). This context manager will be
passed the :class:`~zipline.protocol.BarData` object for the bar and will
be used for the duration of all of the functions scheduled to run. This can be
passed to :class:`~zipline.algorithm.TradingAlgorithm` by the keyword argument
``create_event_context`` (:issue:`828`).
* Added support for :class:`zipline.pipeline.factors.Factor` instances with
``datetime64[ns]`` dtypes. (:issue:`905`)
* Added a new :class:`~zipline.pipeline.data.earnings.EarningsCalendar` dataset
for use in the Pipeline API. This dataset provides an abstract interface for
adding earnings announcement data to a new algorithm. A pandas-based
reference implementation for this dataset can be found in
:mod:`zipline.pipeline.loaders.earnings`, and an experimental blaze-based
implementation can be found in
:mod:`zipline.pipeline.loaders.blaze.earnings`. (:issue:`905`).
* Added new built-in factors,
:class:`zipline.pipeline.factors.BusinessDaysUntilNextEarnings` and
:class:`zipline.pipeline.factors.BusinessDaysSincePreviousEarnings`. These
factors use the new ``EarningsCalendar`` dataset. (:issue:`905`).
* Added :meth:`~zipline.pipeline.factors.Factor.isnan`,
:meth:`~zipline.pipeline.factors.Factor.notnan` and
:meth:`~zipline.pipeline.factors.Factor.isfinite` methods to
:class:`zipline.pipeline.factors.Factor` (:issue:`861`).
* Added :class:`zipline.pipeline.factors.Returns`, a built-in factor which
calculates the percent change in close price over the given
window_length. (:issue:`884`).
* Added a new built-in factor:
:class:`~zipline.pipeline.factors.AverageDollarVolume`. (:issue:`927`).
* Added :class:`~zipline.pipeline.factors.ExponentialWeightedMovingAverage` and
:class:`~zipline.pipeline.factors.ExponentialWeightedMovingStdDev`
factors. (:issue:`910`).
* Allow :class:`~zipline.pipeline.data.DataSet` classes to be subclassed where
subclasses inherit all of the columns from the parent. These columns will be
new sentinels so you can register them a custom loader (:issue:`924`).
Experimental Features
~~~~~~~~~~~~~~~~~~~~~
.. warning::
Experimental features are subject to change.
* Added support for parameterized ``Factor`` subclasses. Factors may specify
``params`` as a class-level attribute containing a tuple of parameter names.
These values are then accepted by the constructor and forwarded by name to
the factor's ``compute`` function. This API is experimental, and may change
in future releases.
Bug Fixes
~~~~~~~~~
* Fixes an issue that would cause the daily/minutely method caching to change
the ``len`` of a :class:`~zipline.protocol.SIDData` object. This would cause
us to think that the object was not empty even when it was (:issue:`826`).
* Fixes an error raised in calculating beta when benchmark data were sparse.
Instead `numpy.nan` is returned (:issue:`859`).
* Fixed an issue pickling :func:`~zipline.utils.sentinel.sentinel` objects
(:issue:`872`).
* Fixed spurious warnings on first download of treasury data (:issue `922`).
* Corrected the error messages for :func:`~zipline.api.set_commission` and
:func:`~zipline.api.set_slippage` when used outside of the ``initialize``
function. These errors called the functions ``override_*`` instead of
``set_*``. This also renamed the exception types raised from
``OverrideSlippagePostInit`` and ``OverrideCommissionPostInit`` to
:class:`~zipline.errors.SetSlippagePostInit` and
:class:`~zipline.errors.SetCommissionPostInit` (:issue:`923`).
Performance
~~~~~~~~~~~
* Speeds up :meth:`~zipline.assets.assets.AssetFinder.lookup_symbol` by adding
an extension, :class:`~zipline.assets.assets.AssetFinderCachedEquities`, that
loads equities into dictionaries and then directs
:meth:`~zipline.assets.assets.AssetFinder.lookup_symbol` to these dictionaries
to find matching equities (:issue:`830`).
* Improved performance of
:meth:`~zipline.assets.assets.AssetFinder.lookup_symbol` by performing
batched queries. (:issue:`817`).
Maintenance and Refactorings
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Asset databases now contain version information to ensure compatibility
with current Zipline version (:issue:`815`).
Build
~~~~~
* Makes zipline install requirements more flexible (:issue:`825`).
* Use ``versioneer`` to manage the project ``__version__`` and setup.py version
(:issue:`829`).
* Fixed coveralls integration on travis build (:issue:`840`).
Documentation
~~~~~~~~~~~~~
* Document the release process for developers (:issue:`835`).
* Added reference docs for the Pipeline API. (:issue:`864`).
* Added reference docs for Asset Metadata APIs. (:issue:`864`).
* Generated documentation now includes links to source code for many classes
and functions. (:issue:`864`).
* Added platform-specific documentation describing how to find binary
dependencies. (:issue:`883`).
Miscellaneous
~~~~~~~~~~~~~
* Added a :meth:`~zipline.pipeline.pipeline.Pipeline.show_graph` method to render
a Pipeline as an image (:issue:`836`).
* Adds :func:`~zipline.utils.test_utils.subtest` decorator for creating subtests
without ``nose_parameterized.expand`` which bloats the test output
(:issue:`833`).
* Limits timer report in test output to 15 longest tests (:issue:`838`).
* Treasury and benchmark downloads will now wait up to an hour to download
again if data returned from a remote source does not extend to the date
expected. (:issue:`841`).