Commit Graph
1984 Commits
Author SHA1 Message Date
Scott Sanderson 762787a4fe DOC: Tweaks to pipeline language. 2015-10-06 06:56:06 -04:00
Scott Sanderson 5f495f91fc DOC: Restructure example slightly. 2015-10-06 06:56:06 -04:00
Scott Sanderson b949748467 BUG/DOC: Subtraction is what I meant there... 2015-10-06 06:56:06 -04:00
Scott Sanderson 7ea24c20c8 MAINT: Updates to docstrings. 2015-10-06 06:56:06 -04:00
Scott Sanderson 99dfb6573e DOC: Docstrings for Pipeline and CustomFactor. 2015-10-06 06:56:06 -04:00
Stewart Douglas 3ef0ddf0c6 ENH: Add future_symbol API method 2015-10-05 11:19:04 -04:00
Stewart Douglas 3cfdd6cf8c ENH: Add lookup_future_symbol method 2015-10-05 10:25:08 -04:00
Scott Sanderson 557bdcd69d MAINT: Don't name pipelines.
`Pipeline()` no longer takes a name.
`attacH_pipeline` now takes a name.

This is mainly for uniformity with how `Factors` and `Filters` are
handled.
2015-10-02 16:31:29 -04:00
Richard Frank 027d4009d8 MAINT: Share constant across modules 2015-10-02 11:53:04 -04:00
Richard Frank c8c83a9f2b MAINT: Don't bother looping through all the keys 2015-10-02 11:53:04 -04:00
Richard Frank a30c4fc689 PERF: Don't build an AssetFinder if no engine is provided
This is an optimization where we're building an environment but not
using its finder.  Ideally, the consumer would use just the calendar,
but it's not fully featured quite yet.
2015-10-02 11:53:04 -04:00
Richard Frank e8c5203e31 MAINT: constraints is always True 2015-10-02 11:53:04 -04:00
Richard Frank 8b98ca7d71 PERF: Reflect the db schema once instead of per table 2015-10-02 09:58:59 -04:00
Richard Frank beac4d6f16 MAINT: Delegate to sqlalchemy metadata
instead of maintaining our own
2015-10-02 09:58:59 -04:00
Richard Frank ea02dcfb14 MAINT: Format the list when making error message 2015-10-02 09:58:59 -04:00
Richard Frank 9a745450cc MAINT: De-dupe retrieving assets 2015-10-02 09:58:59 -04:00
Richard Frank 906b68f2da MAINT: Forward along default_none 2015-10-02 09:58:59 -04:00
Richard Frank 21366e8529 PERF: Convert to ns since epoch vector-wise instead of dt by dt
No longer storing NULL, so make columns not nullable. Instead we're storing NaT.
2015-10-02 09:58:58 -04:00
Richard Frank 702cce4fea MAINT: Simplified set and dict manipulations 2015-10-02 09:58:58 -04:00
Richard Frank b9f2203eed MAINT: Removed unused parameter 2015-10-02 09:58:58 -04:00
Richard Frank 3c8370114f PERF: Write in chunks of 999 instead of chunks of 1 2015-10-02 09:58:58 -04:00
Richard Frank 9d61573e52 MAINT: Instance attribute isn't used 2015-10-02 09:58:58 -04:00
Richard Frank 7424c61ada MAINT: De-duplicate AssetDBWriter subclass initialization 2015-10-02 09:58:58 -04:00
Scott Sanderson 096a0d49fd MAINT: Rename drain_pipeline -> pipeline_output.
More boring, but *drain* carries a connotation of "get everything",
which is misleading.
2015-10-01 18:03:54 -04:00
Scott Sanderson 2034c65599 MAINT: Pluralize top-level term namespaces.
zipline.pipeline.factor -> zipline.pipeline.factors
zipline.pipeline.filter -> zipline.pipeline.filters
2015-10-01 18:03:54 -04:00
Scott Sanderson a40d7e47c1 MAINT: Re-export CustomFactor in zipline.pipeline. 2015-10-01 18:03:54 -04:00
Scott Sanderson 1f6c7ff31f MAINT: Rename ffc_loader -> pipeline_loader. 2015-10-01 18:03:54 -04:00
Scott Sanderson 2d683961bd MAINT: More renaming.
s/FFCEngine/PipelineEngine/
s/FFCLoader/PipelineLoader/
2015-10-01 18:03:54 -04:00
Scott Sanderson f82a01841b MAINT: Rename ALL the things.
zipline.modelling.* -> zipline.pipeline.*
zipline.data.ffc.loaders -> zipline.pipeline.loaders
tests/modelling -> tests/pipeline
2015-10-01 18:03:53 -04:00
Scott Sanderson 1d1092152c BUG: Use numbers.Number to check numbers.
Fixes a bug on Python3 due to the fact that numpy.int64 isn't an
instance of int on Py3.
2015-10-01 18:03:53 -04:00
Scott Sanderson 0a39225c1e MAINT: Add Pipeline to zipline.modelling namespace. 2015-10-01 18:03:53 -04:00
Scott Sanderson 8e59d12daf ENH: Pipeline API
- Adds `zipline.pipeline.Pipeline`, a new user-facing class for managing
  pipelines of Modeling API expressions.

- Adds `attach_pipeline` and `drain_pipeline` as API methods

- Removes `add_factor` and `add_filter` as API methods.  These have been
  replaced two new methods on `Pipeline`: `add`, and `apply_screen`.

- Adding a `Filter` as a column no longer implicitly truncates rows from
  the Modelling API output.  It simply causes a new column, of dtype
  `bool` to show up in the output. Removal of rows is now handled by the
  new `apply_screen` method of `Pipeline`.

- Refactors the existing Modeling API tests to reflect the new APIs.
2015-10-01 18:03:53 -04:00
Scott Sanderson 524c7a0bb1 DOC: Fix example for require_not_initialized. 2015-10-01 18:03:53 -04:00
Scott Sanderson a483455183 ENH: Add zipline.utils.numpy_utils.
Currently provides two functions for doing fancy things with array
strides: `repeat_first_axis` and `repeat_last_axis`.
2015-10-01 18:03:53 -04:00
Scott Sanderson b766ce6ebd ENH: Add zipline.utils.cache.
Implements a `CachedObject` utility class for wrapping cached results
with an expiration date.
2015-10-01 18:03:53 -04:00
Scott Sanderson 00c413e9d4 ENH: Add zipline.utils.preprocess.
Implements tools for preprocessing the arguments to user-facing
functions.
2015-10-01 18:03:53 -04:00
Scott Sanderson 670706158a ENH: Don't write files when rendering TermGraphs.
Overhauls `zipline.modelling.visualize` to use in-memory buffers when
shelling out to `dot` and friends.

Also adds `svg`, `png`, and `jpeg` attributes to `TermGraph`, and adds a
`_repr_png_` so that `TermGraph` renders as a PNG by default.
2015-10-01 18:03:53 -04:00
Stewart Douglas e33fa988f2 DEP: Remove _convert_asset_str_fields
_convert_asset_str_fields was added to address the fact that the
unicode returned by SQLAlchemy was causing test failures, in
particular test_repr and test_root_symbols failed because of the
leading 'u' character in the unicode of python-2.x. Later it was
pointed out that this method would behave differently in python 2
and 3, in particular the str() method would return bytes in python
2 and unicode in python 3. After investigating it was found that
the _convert_asset_str_fields was no longer  necessary. It is unclear
why the original tests were failing. It is not due to SQLAlchemy
versions, as tests pass for version >1 and <1.
2015-10-01 15:02:23 -04:00
Eddie Hebert 39fff4aa43 Merge pull request #735 from quantopian/remove-minute-performance
MAINT: Remove unused minute performance period.
2015-10-01 10:16:52 -04:00
Warren O'Neill 66b36919a3 BUG: missing comma in _asset_timestamp_fields 2015-10-01 10:57:54 +02:00
Eddie Hebert 9581afb32a TST: Remove random simulation parameters.
For better predictability/ability to reason and step through the test
cases, use the same start and end for each run of the test suite.
2015-09-29 14:36:45 -04:00
Eddie Hebert 644cfe6a42 MAINT: Remove unused minute performance period.
Minute performance period is no longer used. The minute risk containers,
which had been removed, were the last usage of the minute performance
period.
2015-09-29 12:10:37 -04:00
Eddie Hebert 5d2217b0eb Merge pull request #726 from quantopian/explicit-position-value-calcs
MAINT: Only calc position values once per packet.
2015-09-25 17:33:53 -04:00
Eddie Hebert 20c64b591f MAINT: Clean up net calculations.
- Combine the net value and exposure functions into `calc_net` since
  they use the same logic.

- Change the logic to handle on empty list to using the a start value of
  0.0. More concise, and reduces the number of return points from the
  function to one.
2015-09-25 16:43:34 -04:00
Eddie Hebert 31d214d8ff MAINT: Combine leverage calculations.
Instead of having two leverage functions, whose differences were the
parameter names, add a `calc_leverage` function, with the calling code
determining whether it is gross or net by the type of exposure passed in.
2015-09-25 13:58:44 -04:00
Richard Frank 136eb8aa0d BUG: Running an algo with a df/panel of Assets was raising SidNotFound 2015-09-24 21:49:45 -04:00
John Ricklefs b0de423b38 MAINT: Add indexes to company_symbol/fuzzy_symbol.
Reduces AssetFinder.lookup_symbol call times
dramatically:

With fuzzy=True: 2.32ms per call -> 391 micros
With fuzzy=False: 2.35ms  -> 451 microseconds
2015-09-24 21:14:48 -04:00
Eddie Hebert ae97e75388 MAINT: Only calc position values once per packet.
Instead of calculating the position values for each stat result, e.g.
gross_exposure, net_liquidity etc.; get the positions upfront and then
calculate the period and position stats in order, passing each value
explicitly to the ones that follow it in the dependency chain.

e.g. the gross_value depends on the long_value and the short_value,
which called the position_values property for calculating both the
long_value and the short_value.

Removing the repeated calls to position_values (and
position_exposures) removes the need for the caching the last sale
prices and position amounts in separate vectors, since it is inexpensive
enough to read those values off of the positions dictionary held in the
position tracker.

This patch gives a small gain to ~500 sized portfolios, but the main
intent is to clear the path to not storing last_sale_prices on the
position objects at all. Removing all of the caching layer in this class
makes that change easier to apply. Removing the extra calls to
position_values also made this class easier to step through/reason about
when splicing in the new last sale price access, as well.
2015-09-23 22:26:13 -04:00
John Ricklefs e3d52df88c ENH: Allow passing an existing engine to TradingEnvironment
Specifically to allow the use case of creating
an in-memory SQLite database and populating
it with assets before creating the trading
environment.
2015-09-21 15:37:38 -04:00
Scott Sanderson bd147a084e BUG: Fix crash on .latest for integer-typed columns.
Int columns get coerced to float on load, and we don't currently support
non-float columns from CustomFactors.
2015-09-21 13:20:26 -04:00