Commit Graph
318 Commits
Author SHA1 Message Date
Scott Sanderson 5a5353bead BUG: Fix broken graph visualizations. 2016-08-18 11:07:17 -04:00
Scott Sanderson b1894e0d54 BUG: Supply a module for Downsampled terms. 2016-08-17 19:48:33 -04:00
Scott Sanderson 19963f5b02 MAINT: Clean up downsampling boilerplate.
Consolidate docs and mixin applications into one place.
2016-08-17 16:52:09 -04:00
Scott Sanderson 7fc0dd6d97 MAINT: Use numpy_utils.as_column in more places. 2016-08-17 16:52:09 -04:00
Scott Sanderson 20e48cf826 ENH: Add non-windowed downsampling. 2016-08-17 16:52:09 -04:00
Scott Sanderson 72a31ceb7d DOC: Docstring cleanups. 2016-08-17 16:52:09 -04:00
Scott Sanderson 221ec2073f STY: Flake8 cleanup. 2016-08-17 16:52:09 -04:00
Scott Sanderson b40ebdcfce ENH: Add support for downsampling.
Adds a new ``downsample`` method to all computable terms.  Computable
terms (Filters, Factors, and Classifiers) can be downsampled to yearly,
quarterly, monthly, or weekly frequency.

The result of ``term.downsample`` is a new term of the same
family (Filter/Factor/Classifier) as ``term``.  The downsampled term
computes by delegating to the original term; repeatedly calling its
``compute`` method with length-1 date ranges.

Downsampled terms take advantage of a new ``compute_extra_rows`` Term
method, which allows terms to dynamically request that additional extra
rows of themselves be computed based on the dates for which they're
being computed.  This ensures, for example, that a monthly-downsampled
term always computes at the start of a month, even when a
naively-calculated pipeline window would end in the middle of the month.
2016-08-17 16:52:09 -04:00
Scott Sanderson a8b67d352e MAINT: Refactor in prep for downsampled terms.
- Split out extra_rows handling into an `ExecutionPlan` subclass.
  `ExecutionPlan` now requires the dates and calendar against which a
  set of terms will be computed, and now defers to a term's
  `compute_extra_rows` method when deciding how many extra rows are
  required to compute for that term. This will allow downsampled terms
  to request enough extra rows to guarantee that we can maintain consistent
  calculation dates.

  As a consequence of the above, `TermGraph` now only deals with logical
  dependencies, not with metadata surrounding extra row calculations.
  This means that TermGraph can be used to generate dependency
  visualizations in interactive contexts where we don't yet have a
  calendar or start/end dates.

- Refactored test_{filter,factor,classifier} to use check_terms instead
  of run_graph.  This makes it easier to make changes to TermGraph,
  since the testing interface is now to simply provide a dict of terms.

- Refactored BasePipelineTestCase to use fixtures to create an asset
  finder.  This fixes a potential leak of the test's asset db, which was
  not being explicitly cleaned up.

- Refactored test_technical to use BasePipelineTestCase.

- Added a new special term, `InputDates()`, which can be used to request
  date labels for inputs.  Like `AssetExists`, `InputDates` is provided
  in the initial workspace by default.

- Added a default (failing) `_compute` method to `AssetExists` which
  provides a more useful error than AttributeError.
2016-08-17 16:52:09 -04:00
Scott Sanderson d99d993aea MAINT: Remove empty inputs from BoundColumn.
They belong on LoadableTerm instead.
2016-08-17 16:52:09 -04:00
Scott Sanderson a81562d5f4 MAINT: Improve/test errors for insufficient data. 2016-08-17 16:52:09 -04:00
Scott Sanderson d4a9d286fc DOC: Add a docstring for RecarrayField. 2016-08-17 16:52:09 -04:00
Scott Sanderson 670f3c106f DOC: Clarify how AssetExists() is special. 2016-08-17 16:52:09 -04:00
Scott Sanderson 9e06886794 DOC: Fix typo in docstring. 2016-08-17 16:52:09 -04:00
dmichalowicz 1dad512184 BUG: zscores should be window safe 2016-08-08 18:07:34 -04:00
Gil Wassermann 483397e554 ENH: Added AtLeastN filter 2016-08-02 16:34:32 -04:00
dmichalowicz 97099a0e92 DOC: regression docstring typos 2016-08-02 11:14:41 -04:00
Scott Sanderson f13294de4e ENH: Rename StrictlyTrue to All and add Any().
Also, moved All() and Any() to `zipline.pipeline.filters.smoothing`.
2016-08-01 22:10:28 -04:00
Gil Wassermann 7623c0f6eb MAINT: .sum() behaviour 2016-08-01 13:48:14 -04:00
Gil Wassermann 73de8e6182 STY: style changes and strictly_true_filter 2016-08-01 11:16:02 -04:00
Gil Wassermann 694d9e952a ENH: added smoothing to zipline 2016-08-01 08:20:10 -04:00
Scott Sanderson 161771917e DOC: Mention groupby in top/bottom docs. 2016-07-26 02:57:35 -04:00
Scott Sanderson 49bb8264dc ENH: Finish adding groupby to rank/top/bottom.
- Added test coverage for grouped and masked top/bottom.

- Added test coverage for grouped rank on datetime factors.

- Fixed an issue where grouped rank would fail on datetime inputs
  because unary-negative isn't defined for datetimes.  We now instead
  directly invoke a function from rank.pyx that does the normalizations
  as neeeded.

- Fixed an issue where GroupedRowTransform assumed that it produced the
  same dtype as its input.  This isn't true for rank() of a
  datetime-dtype factor.  GroupedRowTransform now takes a required dtype
  parameter.

- Similarly, fixed an issue where GroupedRowTransform assumed that its
  missing_value was the same as its parent's, which isn't true for
  rank() of a datetime-dtype factor.  GroupedRowTransform now takes a
  required dtype parameter.

- Fixed an issue where Factor.demean() and Factor.zscore() weren't
  properly cached because their static_identity included a closure that
  was dynamically generated on each invocation.  They both now always
  use a function defined at module scope.
2016-07-26 02:57:35 -04:00
Andrey PortnoyandScott Sanderson 9e3404646e add groupby to rank, top, and bottom 2016-07-25 23:53:33 -04:00
Joe Jevnik 25474cf475 DOC: add default inputs and window length to TrueRange 2016-07-25 12:37:25 -04:00
ChrisPappalardoandJoe Jevnik 072ada812a STY: fixed flake8 failing test 2016-07-25 12:37:25 -04:00
ChrisPappalardoandJoe Jevnik 5888cf1657 ENH: add true range technical factor 2016-07-25 12:37:25 -04:00
Scott SandersonandGitHub 75b3dc6fe4 Merge pull request #1338 from quantopian/window-safe-filters
ENH: made filters window safe
2016-07-25 10:38:08 -04:00
Scott Sanderson be857ead0e DOC: Clarify default window-safety for Filters. 2016-07-24 21:17:16 -04:00
Scott SandersonandGitHub a424225dce Merge pull request #1345 from quantopian/notnull-filter
ENH: Add NotNullFilter.
2016-07-24 21:15:08 -04:00
Scott SandersonandMaya Tydykov 43957b0d09 ENH: Add NotNullFilter. 2016-07-22 15:32:46 -04:00
dmichalowicz f404538008 DOC: More pipeline docstring tweaks 2016-07-22 13:54:16 -04:00
Gil Wassermann 98be158c20 ENH: storing commits. test case added 2016-07-21 08:49:41 -04:00
Gil Wassermann d7b631617c ENH: made filters window safe 2016-07-20 17:10:08 -04:00
dmichalowicz 9cc5796b3e DOC: Pipeline docstring edits 2016-07-20 15:10:23 -04:00
dmichalowicz a8486c5f6e ENH: Factor-to-factor correlations/regressions 2016-07-19 11:16:55 -04:00
Jean Bredeche 5a0f840917 Clean up daily bar reader/writer to take advantage of new trading calendar. The reader
is backwards-compatible with the previous format.

In USEquityLoader, use dailyreader's trading_calendar.

This is backwards compatible and will fall back to the NYSE calendar if
the reader doesn’t have a calendar specified.
2016-07-15 15:13:57 -04:00
Joe JevnikandGitHub 835fab8ebd Merge pull request #1323 from quantopian/pmap-blaze-query
ENH: Adds the ability to run blaze queries concurrently
2016-07-14 18:40:57 -04:00
Joe Jevnik 5473ec240d ENH: Adds the ability to run blaze queries concurrently 2016-07-14 17:32:30 -04:00
Samuel WooandJoe Jevnik 5756f2932d ENH: Adds LinearWeightedMovingAverage factor 2016-07-14 15:10:42 -04:00
Jean BredecheandGitHub e22108b7ef Merge pull request #1312 from quantopian/24-5-backtesting
Re-implemented the calendar API.
2016-07-14 10:05:18 -04:00
Richard Frank dc0784b88d MAINT: Removed defaults from RateOfChangePercentage
since it's general enough that we don't need to assume closes
2016-07-13 19:46:59 -04:00
Elizaveta239andRichard Frank 8a32c2b7ce ENH: Add Rate of change Percentage indicator 2016-07-13 18:07:20 -04:00
Joe Jevnik 0f1c08024a ENH: Adds the ichimoku cloud factor 2016-07-12 18:49:24 -04:00
Joe Jevnik 958d455a7a ENH: Support default params for terms 2016-07-12 18:49:24 -04:00
Jean Bredeche 6fb4923cc7 Re-implemented the Calendar API.
Instead of having separate ExchangeCalendar and TradingSchedule objects, we
now just have TradingCalendar.  The TradingCalendar keeps track of each
session (defined as a contiguous set of minutes between an open and a close).
It's also responsible for handling the grouping logic of any given minute
to its containing session, or the next/previous session if it's not a market
minute for the given calendar.
2016-07-12 13:13:50 -04:00
dmichalowicz d8e9fa91bd Loader return column vector for no sids case 2016-07-01 12:18:32 -04:00
Nathan Wolfe e70490a415 BUG: Correct AverageDollarVolume NaN handling
`AverageDollarVolume` used `nanmean`, which discards NaNs before
averaging, giving an ADV which is too high for any equities that have
any NaNs.

Changing the method to `nansum` divided by window length so that the
denominator is the same no matter whether there are NaNs or not.
2016-06-28 17:20:09 -04:00
Andrew Daniels 5ac66aa19e BUG: Don't use calendar from daily bars in USEquityPricingLoader
This calendar only has up to the last trading day, use
default_nyse_schedule instead.
2016-06-28 13:38:17 -04:00
Maya Tydykov 321e6f719f TST: expand tests
DOC: add comment to workaround line
2016-06-23 12:14:24 -04:00