Commit Graph

324 Commits

Author SHA1 Message Date
Conner Fromknecht bb17c171e5 General improvements 2017-07-01 18:26:57 -07:00
Conner Fromknecht a38a35d664 Changed zipline -> catalyst import paths
* Updated cython build scripts
 * Updated setup.py to to install catalyst package
 * Updated momentum example to use catalyst package
 * catalyst executable now supports loading pipelines from multiple bundles
2017-06-19 14:43:10 -07:00
Richard Frank 753004647b DEV: Pin configparser version
It's a recent (to zipline) requirement of flake8.
2017-06-08 17:33:15 -04:00
Miguel Sánchez de León Peque e5ef118f3b Add missing Python 3.5 references (now supported)
Add this version to the Conda build matrix and to the setup.py file.
2017-05-23 09:39:21 +02:00
Freddie Vargus 8cc97d75b5 BLD: Update CI files for py35
BLD: Move setuptools_scm recipe earlier

in build process. We order alphabetically.

BLD: Update to newest Cython version

BLD: Update version of matplotlib

BLD: Pin matplotlib dependency
2017-05-16 15:33:27 -04:00
Scott Sanderson 616f6e5e5d MAINT/STY: Upgrade flake8 and fix new failures. 2017-05-15 11:45:04 -04:00
Maya Tydykov a89d05dd56 BLD: bump blaze 2017-04-03 15:20:49 -04:00
Freddie Vargus 40fc1c9185 REL: Update stubs for 1.1.0 release 2017-03-10 17:19:57 -05:00
Richard Frank eef59f842c MAINT: Pin specific versions of blaze dependencies 2017-02-28 19:40:10 -05:00
Gus Gordon 26558743ba Bump empyrical to 0.2.2 (#1674)
* Bump empyrical to 0.2.2

* Update example data for tests
2017-02-04 16:14:33 -05:00
Eddie Hebert cb50959efc BLD: Use latest version of toolz.
Also, add requirement of cytoolz to blaze reqs so that toolz and cytoolz are
on the same version.
2017-01-13 15:42:59 -05:00
Richard Frank 64f77eb3e4 MAINT: Update and pin more dev requirements 2017-01-08 14:07:55 -05:00
Richard Frank 50c096c3e9 MAINT: Pin exact versions of Mako, MarkupSafe, requests-file
which are transitive dependencies of zipline
2017-01-07 17:57:29 -05:00
Eddie Hebert aed2c64c99 BLD: Update numexpr to latest to satisfy tables deps. (#1636)
* BLD: Update numexpr to latest to satisfy tables deps.

tables 3.3.0 requires numexpr >= 2.5.2

Also remove numexpr conda recipe.
2017-01-05 15:27:24 -05:00
Eddie Hebert e913519734 ENH: Add a reader writer pair for HDF5 minute bar updates.
This format is intended for storing data for all sids of an asset type,
e.g. equities or futures for a session. bcolz is not used to avoid the overhead
of creating the directories and files for each asset (which numbers around ~8000
for active equities) can be removed since the update is meant to be read at
once, instead of supporting the random access pattern needed by the simulation.

This patch only adds the reader/writer pair, with the management of finding the
paths to delta files and the application of the updates to the bcolz write left
to internal loader code.

Also, the update reader interface is intentionally constrained to the data for
an entire session to allow for an implementation that allows for mid-session updates.
2017-01-04 12:09:10 -05:00
Paul Sutherland 0fbf7b428b DEV delete old *.c and *.so files with rebuild-cython.sh for Darwin/OSX (#1560) 2016-10-26 19:08:36 -04:00
Ana Ruelas 1bc55401b4 ENH: Empyrical bump 2016-10-05 12:54:16 -04:00
Scott Sanderson 3477e26720 MAINT: Put us back on blaze master. 2016-09-21 10:46:57 -04:00
Scott Sanderson c28ac1a4a5 MAINT: Bump blaze. 2016-09-20 17:12:09 -04:00
Scott Sanderson 467a4f8225 MAINT: Bump blaze. 2016-09-20 17:12:08 -04:00
Scott Sanderson ddef107fa1 BLD: Downgrade to scipy 0.17.
Anaconda doesn't have windows builds for scipy 0.18 (nor does
conda-forge.)
2016-09-20 17:12:08 -04:00
Scott Sanderson 9e517691bb BLD: Remove old numpy/pandas versions from travis. 2016-09-20 17:12:07 -04:00
Scott Sanderson 29d5854aa1 MAINT: Bump numpy and pandas. 2016-09-20 16:24:54 -04:00
Richard Frank ef04fe3a9b PERF: Use empyrical with ndarrays instead of Series 2016-09-19 15:51:06 -04:00
Jean Bredeche a7f345e651 ENH: Switching from cachetools.LRUCache to lru-dict's LRU cache.
lru-dict is written in C and seems much more performant.
2016-09-16 11:03:13 -04:00
Scott Sanderson b946c657b7 Merge pull request #1420 from quantopian/add-cython-cleanup
MAINT: Add script to clean out compiled files.
2016-09-02 14:16:18 -04:00
Scott Sanderson 28bca7cbd7 DEV: Find .c and .so files with regex. 2016-09-02 12:56:36 -04:00
Ana Ruelas 3698362030 BLD: Update to empyrical 0.1.11 2016-08-30 16:41:57 -04:00
John Ricklefs 201e72aee1 PERF: Pass known calculations into empyrical methods
For example, to prevent `alpha` from internally calling
`beta` a second time, pass the previously-calculated
`beta` value in.

Requires empyrical 0.1.10 from pypi
2016-08-29 12:13:19 -04:00
Richard Frank abdfe0265d BLD: alembic is now a production requirement 2016-08-24 15:32:31 -04:00
Ana Ruelas 1f829f8c92 MAINT: Update whatsnew for empyrical changes 2016-08-23 17:02:12 -04:00
Ana Ruelas f0af856c13 TST: Update to empyrical, increase test coverage
ENH: Resolve rebase conflict by using updated example_data.tar

TST: Increase test coverage for risk portion of zipline
2016-08-23 13:49:43 -04:00
Ana Ruelas 902865cf71 ENH: Use qrisk to calculate risk metrics in cumulative and period
TST: Remove metric correctness testing from period and cumulative tests

ENH: Removed answer key and related files

ENH: Update qrisk version
2016-08-23 13:49:27 -04:00
Scott Sanderson a3df81395a MAINT: Add script to clean out compiled files. 2016-08-22 08:53:06 -04:00
Joe Jevnik 6cf080f4b5 BLD: fix blaze commit 2016-06-06 15:46:18 -04:00
Joe Jevnik cf1687ec72 Merge pull request #1227 from quantopian/blaze-loader-perf
ENH: improve performance of blaze core loader
2016-06-03 14:15:33 -04:00
Scott Sanderson 05ac438c3c DOC/DEV: Add sphinx-autobuild to docs.
Adds a `make livehtml` target that spawns a server that rebuilds and
serves the docs every time a change happens.
2016-05-27 16:39:29 -04:00
Joe Jevnik 151c938982 ENH: upgrade blaze ecosystem packages 2016-05-25 13:21:26 -04:00
Richard Frank b9b4dc09a4 DEV: Adds type hinting stub for zipline.api
as well as tooling and docs to generate this for each release

Also moved Cython files to package_data, so that we install them,
instead of just packaging them.
2016-05-19 11:51:12 -04:00
Joe Jevnik 56c7c08ffc DEV: update dockerfile to leave source 2016-05-16 17:07:03 -04:00
Joe Jevnik 59c8e371a2 ENH: Updates the cli, data bundles and extensions.
Adds the data bundle concept which makes it easy for users to register
loading functions to build out minute and daily data along with an
assets db and adjustments db. By default we have provided a `quandl`
bundle which pulls from the public domain WIKI dataset. Users may
register new bundles by decorating an ingest function with
`zipline.data.bundles.register(<name>)`. This also provides a
`yahoo_equities` function for creating an ingestion function that will
load a static set of assets from yahoo.

The cli is now structured as a couple of subcommands and has been
changed to `python -m zipline`. The old behavior of `run_algo.py` has
been moved to the `run` subcommand. This is almost entirely the same
except that it now takes the name of the data bundle to use, defaulting
to `quandl`.

The next subcommand is `ingest` which takes the name of
a data bundle to ingest. This will run the loading machinery and write
the data to a specified location that `run` can find.

There is also a `clean` subcommand which deletes the data that was
written with `ingest`.

Extensions have also been added to zipline. This is an experimental
feature where users can provide an extra set of python files to run at
the start of the process. These can be used to configure aspects of
zipline. Right now the only thing that is supported in an extension file
is the registration of a new data bundle.
2016-05-03 18:38:24 -04:00
Joe Jevnik bc0b117dc9 MAINT: make the data loading apis more consistent.
Changes BcolzDailyBarWriter to not be an abc, data is passed as an
iterator of (sid, dataframe) pairs to the write method.

Changes the AssetsDBWriter to be a single class which accepts an engine
at construction time and has a `write` method for writing dataframes for
the various tables. We no longer support writing the various other data
types, callers should coerce their data into a dataframe themselves. See
zipline.assets.synthetic for some helpers to do this.

Adds many new fixtures and updates some existing fixtures to use the new
ones:

WithDefaultDateBounds
  A fixture that provides the suite a START_DATE and END_DATE. This is
  meant to make it easy for other fixtures to synchronize their date
  ranges without depending on eachother in strange ways. For example,
  WithBcolzMinuteBarReader and WithBcolzDailyBarReader by default should
  both have data for the same dates, so they may use depend on
  WithDefaultDates without forcing a dependency between them.

WithTmpDir, WithInstanceTmpDir
  Provides the suite or individual test case a temporary directory.

WithBcolzDailyBarReader
  Provides the suite a BcolzDailyBarReader which reads from bcolz data
  written to a temporary directory. The data will be read from
  dataframes and then converted to bcolz files with
  BcolzDailyBarWriter.write

WithBcolzDailyBarReaderFromCSVs
  Provides the suite a BcolzDailyBarReader which reads from bcolz data
  written to a temporary directory. The data will be read from a
  collection of CSV files and then converted into the bcolz data through
  BcolzDailyBarWriter.write_csvs

WithBcolzMinuteBarReader
  Provides the suite a BcolzMinuteBarReader which reads from bcolz data
  written to a temporary directory. The data will be read from
  dataframes and then converted to bcolz files with
  BcolzMinuteBarWriter.write

WithAdjustmentReader
  Provides the suite a SQLiteAdjustmentReader which reads from an in
  memory sqlite database. The data will be read from dataframes and then
  converted into sqlite with SQLiteAdjustmentWriter.write

WithDataPortal
  Provides each test case a DataPortal object with data from temporary
  resources.
2016-04-15 23:46:10 -04:00
Eddie Hebert e1b376a49b BUG: Add limit to memory growth on sliding windows
Add a cap of 5 sliding windows (one per OHCLV column) to the history
loader's cache of sliding windos.

This prevents unbounded growth on algorithms that call history with a
highly varied list of equities.

To follow is splitting the cache up by column and by sid, so that the
loader does not re-prefetch sids which have already been read with
sufficient data; however this patch is enough to fix the issue where an
algo with high rotation can add up a megabyte per day of memory on
algorithms which rotate on a 5% dollar volume pipeline. With this cap
those algorithms have more plateaus with regard to memory consumption.

This patch requires new dependency of `cachetools` library.
2016-04-14 22:20:02 -04:00
Richard Frank 5254b273b2 PERF: Reimplemented remember_last with a weak_lru_cache
which won't leak instances whose methods have been decorated

(specifically DataPortal instances)

MAINT: Not using functools32 anymore
2016-04-12 19:33:21 -04:00
Maya Tydykov 005299e7e4 MAINT: update blaze version 2016-04-06 13:49:32 -04:00
Richard Frank 6e7c66b158 BLD: ordered_pip is unforgiving 2016-04-06 09:33:33 -04:00
Richard Frank 39fbdd30e3 MAINT: Use environment markers instead of separate requirements
file for py2
2016-04-05 23:07:00 -04:00
John Stanford 34f47da033 Added a Dockerfile for repeatable runtimes
Builds docker image with  TA-Lib, Jupyter, and checked out version of zipline and
starts Jupyter server on port https://localhost:8888 when container runs.  The
default password for the Jupyter server is 'jupyter'.

Instructions on usage found in the Dockerfile comments.  Example image at
docker.io/jxstanford/zipline.
2016-04-04 17:05:52 -04:00
Richard Frank be4dcb22dc MAINT: intervaltree requires sortedcontainers 2016-04-04 16:12:58 -04:00
Eddie Hebert 16fd6681a6 ENH: Rewrite of Zipline to use lazy access pattern
More documentation to follow in release notes.

Based on lazy-mainline branch, see for more details.

Also-By: Jean Bredeche <jean@quantopian.com>
Also-By: Andrew Liang <aliang@quantopian.com>
Also-By: Abhijeet Kalyan <akalyan@quantopian.com>
2016-04-04 16:12:58 -04:00