mirror of
https://github.com/wassname/catalyst.git
synced 2026-06-28 18:27:14 +08:00
225 lines
9.5 KiB
Plaintext
225 lines
9.5 KiB
Plaintext
Release 0.8.4
|
|
-------------
|
|
|
|
:Release: 0.8.4
|
|
:Date: February 24, 2016
|
|
|
|
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`).
|
|
|
|
* Improved support for non-float dtypes in Pipeline. Most notably, we now
|
|
support ``datetime64`` and ``int64`` dtypes for ``Factor``, and
|
|
``BoundColumn.latest`` now returns a proper ``Filter`` object when the column
|
|
is of dtype ``bool``.
|
|
|
|
* Zipline now supports ``numpy`` 1.10, ``pandas`` 0.17, and ``scipy`` 0.16
|
|
(:issue:`969`).
|
|
|
|
* Batch transforms have been deprecated and will be removed in a future release.
|
|
Using ``history`` is recommended as an alternative.
|
|
|
|
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`).
|
|
|
|
* Added :func:`~zipline.utils.input_validation.coerce` to coerce inputs from one
|
|
type into another before passing them to the function (:issue:`948`).
|
|
|
|
* Added :func:`~zipline.utils.input_validation.optionally` to wrap other
|
|
preprocessor functions to explicitly allow ``None`` (:issue:`947`).
|
|
|
|
* Added :func:`~zipline.utils.input_validation.ensure_timezone` to allow string
|
|
arguments to get converted into :class:`datetime.tzinfo` objects. This also
|
|
allows ``tzinfo`` objects to be passed directly (:issue:`947`).
|
|
|
|
* Added two optional arguments, ``data_query_time`` and ``data_query_tz`` to
|
|
:class:`~zipline.pipeline.loaders.blaze.core.BlazeLoader` and
|
|
:class:`~zipline.pipeline.loaders.blaze.earnings.BlazeEarningsCalendarLoader`.
|
|
These arguments allow the user to specify some cutoff time for data when
|
|
loading from the resource. For example, if I want to simulate executing my
|
|
``before_trading_start`` function at ``8:45 US/Eastern`` then I could pass
|
|
``datetime.time(8, 45)`` and ``'US/Eastern'`` to the loader. This means that
|
|
data that is timestamped on or after ``8:45`` will not seen on that day in the
|
|
simulation. The data will be made available on the next day (:issue:`947`).
|
|
|
|
* ``BoundColumn.latest`` now returns a
|
|
:class:`~zipline.pipeline.filters.Filter` for columns of dtype
|
|
``bool`` (:issue:`962`).
|
|
|
|
* Added support for :class:`~zipline.pipeline.factors.Factor` instances with
|
|
``int64`` dtype. :class:`~zipline.pipeline.data.dataset.Column` now requires
|
|
a ``missing_value`` when dtype is integral. (:issue:`962`)
|
|
|
|
* It is also now possible to specify custom ``missing_value`` values for
|
|
``float``, ``datetime``, and ``bool`` Pipeline terms. (:issue:`962`)
|
|
|
|
* Added auto-close support for equities. Any positions held in an equity that
|
|
reaches its ``auto_close_date`` will be liquidated for cash according to the
|
|
equity's last sale price. Furthermore, any open orders for that equity will
|
|
be canceled. Both futures and equities are now auto-closed on the morning of
|
|
their ``auto_close_date``, immediately prior to ``before_trading_start``.
|
|
(:issue:`982`)
|
|
|
|
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 :data:`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`).
|
|
|
|
* Fixed an issue in the CLI that would cause assets to be added twice.
|
|
This would map the same symbol to two different sids (:issue:`942`).
|
|
|
|
* Fixed an issue where the
|
|
:class:`~zipline.finance.performance.period.PerformancePeriod` incorrectly
|
|
reported the total_positions_value when creating a
|
|
:class:`~zipline.protocol.Account` (:issue:`950`).
|
|
|
|
* Fixed issues around KeyErrors coming from history and BarData on 32-bit
|
|
python, where Assets did not compare properly with int64s (:issue:`959`).
|
|
|
|
* Fixed a bug where boolean operators were not properly implemented on
|
|
:class:`~zipline.pipeline.Filter` (:issue:`991`).
|
|
|
|
* Installation of zipline no longer downgrades numpy to 1.9.2 silently and
|
|
unconditionally (:issue:`969`).
|
|
|
|
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`).
|
|
|
|
* Upgrade ``requests`` version to 2.9.1 (:commit:`2ee40db`)
|
|
|
|
* Upgrade ``logbook`` version to 0.12.5 (:commit:`11465d9`).
|
|
|
|
* Upgrade ``Cython`` version to 0.23.4 (:commit:`5f49fa2`).
|
|
|
|
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`).
|
|
* Fixed conda build, which now uses git source as its source and reads
|
|
requirements using setup.py, instead of copying them and letting them get out
|
|
of sync (:issue:`937`).
|
|
* Require ``setuptools`` > 18.0 (:issue:`951`).
|
|
|
|
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 :func:`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`).
|
|
* Added a tool to downgrade the assets db to previous versions (:issue:`941`).
|