Commit Graph
178 Commits
Author SHA1 Message Date
Joe Jevnik 958d455a7a ENH: Support default params for terms 2016-07-12 18:49:24 -04:00
Joe Jevnik 0b3a35891e ENH: fix the quality of life issues in the CLI
Fixes the issues presented in #1181 by @ssanderson around the new
command line interface.
2016-05-05 18:22:13 -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 HebertandJean Bredeche 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
dmichalowicz 5be63f36d5 ENH: Add auto_close_date support for equities 2016-02-22 13:51:20 -05:00
Richard Frank 79aff84aed MAINT: Moved auto_close_date to Asset
Handle custom data source with non-int sids
2016-02-04 21:58:57 -05:00
Richard Frank ede1eb7aa0 PERF: Look up expired futures from in-memory Futures
instead of queries to the db.
2016-02-04 18:55:34 -05:00
Richard Frank 28b34f6409 BUG: Handle OverflowError by comparing False
instead of raising
2016-02-01 15:02:15 -05:00
James Kirk 2803802736 Merge pull request #941 from quantopian/futures-tick-size
ENH: Adds tick_size and renames futures multiplier
2016-01-25 11:18:31 -05:00
Joe Jevnik dca5d347d8 BUG: lookup_expired_futures needs to coerce dts into pd.Timestamp 2016-01-23 15:27:21 -05:00
jfkirk 5d0ffd0db4 DOC: SQLLite -> SQLite 2016-01-22 15:31:41 -05:00
jfkirk ece9e59ef9 ENH: Adds asset db downgrade management and tests 2016-01-22 14:56:30 -05:00
jfkirk db1e62971a ENH: Adds tick_size and renames futures multiplier 2016-01-22 14:56:30 -05:00
Joe Jevnik 663fbd7d74 PERF: make Asset comparison faster 2016-01-21 19:11:41 -05:00
Richard Frank 4ee919aeb2 Merge pull request #959 from quantopian/asset_keyerror
Asset KeyError
2016-01-21 12:38:53 -05:00
Richard Frank 2eeb6e78f6 BUG: Enable comparison of an Asset to an int64 on 32-bit python
We use a number of mappings keyed by int64, which otherwise raised
KeyErrors for Assets.
2016-01-21 11:47:29 -05:00
James Kirk 2cb3a7235e Merge pull request #890 from grundgruen/future_chain_order
BUG: orders future chain by min of notice and expiry
2016-01-21 11:18:57 -05:00
Joe Jevnik 3b76981270 Merge pull request #846 from grundgruen/data_test
TST: tests removing of expired data and removes ffill in DataPanelSource
2016-01-19 13:05:15 -05:00
warren-oneill a963270471 BUG: orders future chain by min of notice an expiry 2016-01-18 12:20:58 +01:00
jfkirk 7acd0d7a1d MAINT: Refactors table assignment in AssetDBWriter 2016-01-05 13:48:00 -05:00
jfkirk 00879245a4 BUG: Adds version checking to AssetFinder init 2016-01-05 13:48:00 -05:00
jfkirk 468ecc357c DOC: Adds schema update notes to assets db 2016-01-05 13:48:00 -05:00
jfkirk 004c8dc141 MAINT: Factors-out asset db schema 2016-01-05 13:48:00 -05:00
warren-oneill ef323a3165 ENH: adds lookup_expired_futures to asset_finder 2015-12-01 15:24:02 +01:00
Jean Bredeche f48f88861d BUG: chunk sqlite queries into groups of 999. 2015-11-20 13:39:46 -05:00
Scott Sanderson 1524944edd DOC: Many docs improvements.
- Generate links to sourcecode via the Sphinx `viewcode` extension.
- Generate reference docs for Asset/Equity/Future, AssetFinder, and
  AssetDBWriter.
- Generate reference docs for Pipeline API classes.
- Fix broken links and formatting issues in the 0.8.4 whatsnew.
- Use embedsignature in _assets.pyx so that the signatures of Asset
  subclasses are inspectable.
2015-11-19 00:15:17 -05:00
Scott Sanderson 06ab766544 MAINT: De-dupe shared filtering logic.
We filter for assets that were alive at some reference date in multiple
places.
2015-11-13 18:26:54 -05:00
Scott Sanderson a3bafd8dc7 MAINT/STY: Use dict.get instead of in check. 2015-11-13 18:26:54 -05:00
Scott Sanderson 26611b5d60 MAINT: Don't double-coerce to Timestamp.
`normalize` would already fail if the input isn't a Timestamp.
2015-11-13 18:26:54 -05:00
Scott Sanderson b9e4b62374 PERF: Fewer conversions in _convert_row_to_equity. 2015-11-13 18:26:54 -05:00
Scott Sanderson 657a132f1e ENH: Make retrieve specific type functions public.
We rely on these upstream, for better or worse, so add tests and docs.

Also adds distinct `EquitiesNotFound` and `FutureContractsNotFound`
exceptions.
2015-11-13 18:26:54 -05:00
Scott Sanderson a684063f95 DOC: Don't lie about caching in _retrieve_asset. 2015-11-13 18:26:54 -05:00
Scott Sanderson 9101636bf6 MAINT: Remove unused method. 2015-11-13 18:26:54 -05:00
Scott Sanderson 60b988a777 MAINT: Remove unused method. 2015-11-13 18:26:54 -05:00
Scott Sanderson 1c52977964 DOC: group_by_type returns a regular dict. 2015-11-13 18:26:54 -05:00
Scott Sanderson 654edaa851 BUG: Clear asset caches when mapping DataFrame.
Our DataFrame index resolution logic relies on failed lookups **not**
being cached, but not caching failed lookups is a nontrivial performance
hit when repeatedly looking up sids.  The "solution" here is to clear
the caches after writing in new assets.

The real fix for this is either:

1. Don't construct an AssetFinder until we have the datasource in hand
   in run(), or
2. Don't symbol-map the user's input source if it's a DataFrame.
   Instead we should make our data loaders pre-map the data.
2015-11-13 18:26:54 -05:00
Scott Sanderson 5bddf32062 BUG: Raise if we fail to symbol map a Frame/Panel.
Previously, we just warned here, but then we'd fail immediately trying
to write the found values into an index that's too long.
2015-11-13 18:26:54 -05:00
Scott Sanderson ff51510d88 PERF: Cache the result of failed lookups.
Otherwise we'll keep trying to look them up.
2015-11-13 18:26:54 -05:00
Scott Sanderson c818463051 MAINT: Simplify conditional. 2015-11-13 18:26:54 -05:00
jfkirk e1e160a128 MAINT: Factors-out asset db table schemas for cleanliness 2015-11-12 14:43:11 -05:00
jfkirk 85dd4b70dd MAINT: Renames 'version' table to 'version_info' for clarity 2015-11-12 14:43:11 -05:00
jfkirk 6aac54544e MAINT: Only write asset db version on db creation 2015-11-12 14:43:11 -05:00
jfkirk 48e488d423 ENH: Adds versions to asset databases 2015-11-12 14:43:11 -05:00
Maya Tydykov df492ecf7f DOC: add whatsnew entry for AssetFinderCachedEquities. 2015-11-12 11:02:30 -05:00
Maya Tydykov d0cb5bd513 ENH: add extension to AssetFinder that caches all equities in memory and uses that cache in lookup_symbol. 2015-11-12 11:02:26 -05:00
jfkirk af021f0db5 BUG: FutureChain's as_of() now properly coerces arguments 2015-11-10 14:03:19 -05:00
Scott Sanderson 90e717f6a7 Merge pull request #821 from quantopian/cme-codes-reference
ENH: Add CME code lookup table.
2015-11-05 14:19:36 -05:00
Scott Sanderson 744a998b9a ENH: Add CME code lookup table. 2015-11-05 13:57:44 -05:00
Scott Sanderson a14c61e7ff MAINT: Remove unused 'asset_type' metadata entry. 2015-11-05 13:35:05 -05:00