DOC: Updated whatsnew with Q2 information.

This commit is contained in:
Jean Bredeche
2016-05-13 16:48:57 -04:00
committed by Joe Jevnik
parent 784d5f4a16
commit 6b1cdb6929
3 changed files with 84 additions and 0 deletions
+9
View File
@@ -15,6 +15,12 @@ The following methods are available for use in the ``initialize``,
In all listed functions, the ``self`` argument is implicitly the
currently-executing :class:`~zipline.algorithm.TradingAlgorithm` instance.
Data Object
```````````
.. autoclass:: zipline.protocol.BarData
:members:
Scheduling Functions
````````````````````
@@ -271,6 +277,9 @@ Readers
.. autoclass:: zipline.assets.AssetFinderCachedEquities
:members:
.. autoclass:: zipline.data.data_portal.DataPortal
:members:
Bundles
```````
.. autofunction:: zipline.data.bundles.register
+42
View File
@@ -12,6 +12,45 @@ Development
Highlights
~~~~~~~~~~
Zipline 1.0 Rewrite (:issue:`1105`)
```````````````````````````````````
We have rewritten a lot of Zipline and its basic concepts in order to improve
runtime performance. At the same time, we've introduced several new APIs.
At a high level, earlier versions of Zipline simulations pulled from a
multiplexed stream of data sources, which were merged via heapq. This stream was
fed to the main simulation loop, driving the clock forward. This strong
dependency on reading all the data made it difficult to optimize simulation
performance because there was no connection between the amount of data we
fetched and the amount of data actually used by the algorithm.
Now, we only fetch data when the algorithm needs it. A new class,
:class:`~zipline.data.data_portal.DataPortal`, dispatches data requests to
various data sources and returns the requested values. This makes the runtime of
a simulation scale much more closely with the complexity of the algorithm,
rather than with the number of assets provided by the data sources.
Instead of the data stream driving the clock, now simulations iterate through a
pre-calculated set of day or minute timestamps. The timestamps are emitted by
:class:`~zipline.gens.sim_engine.MinuteSimulationClock` and
:class:`~zipline.gens.sim_engine.DailySimulationClock`, and consumed by the main
loop in :meth:`~zipline.gens.tradesimulation.AlgorithmSimulator.transform`.
We've retired the ``data[sid(N)]`` and ``history`` APIs, replacing them with
several methods on the :class:`~zipline.protocol.BarData` object:
:meth:`zipline.protocol.BarData.current`,
:meth:`zipline.protocol.BarData.history`,
:meth:`zipline.protocol.BarData.can_trade`, and
:meth:`zipline.protocol.BarData.is_stale`. Old APIs will continue to work for
now, but will issue deprecation warnings.
You can now pass in an adjustments source to the
:class:`~zipline.data.data_portal.DataPortal`, and we will apply adjustments to
the pricing data when looking backwards at data. Prices and volumes for
execution and presented to the algorithm in data.current are the as-traded value
of the asset.
New Entry Points (:issue:`1173` and :issue:`1178`)
``````````````````````````````````````````````````
@@ -131,6 +170,9 @@ Enhancements
implements the Bollinger Bands technical indicator:
https://en.wikipedia.org/wiki/Bollinger_Bands (:issue:`1199`).
* Fetcher has been moved from Quantopian internal code into Zipline
(:issue:`1105`).
Experimental Features
~~~~~~~~~~~~~~~~~~~~~
+33
View File
@@ -459,6 +459,39 @@ class DailyHistoryAggregator(object):
class DataPortal(object):
"""Interface to all of the data that a zipline simulation needs.
This is used by the simulation runner to answer questions about the data,
like getting the prices of assets on a given day or to service history
calls.
Parameters
----------
env : TradingEnvironment
The trading environment for the simulation. This includes the trading
calendar and benchmark data.
equity_daily_reader : BcolzDailyBarReader, optional
The daily bar ready for equities. This will be used to service
daily data backtests or daily history calls in a minute backetest.
If a daily bar reader is not provided but a minute bar reader is,
the minutes will be rolled up to serve the daily requests.
equity_minute_reader : BcolzMinuteBarReader, optional
The minute bar reader for equities. This will be used to service
minute data backtests or minute history calls. This can be used
to serve daily calls if no daily bar reader is provided.
future_daily_reader : BcolzDailyBarReader, optional
The daily bar ready for futures. This will be used to service
daily data backtests or daily history calls in a minute backetest.
If a daily bar reader is not provided but a minute bar reader is,
the minutes will be rolled up to serve the daily requests.
future_minute_reader : BcolzMinuteBarReader, optional
The minute bar reader for futures. This will be used to service
minute data backtests or minute history calls. This can be used
to serve daily calls if no daily bar reader is provided.
adjustment_reader : SQLiteAdjustmentWriter, optional
The adjustment reader. This is used to apply splits, dividends, and
other adjustment data to the raw data from the readers.
"""
def __init__(self,
env,
equity_daily_reader=None,