Commit Graph

415 Commits

Author SHA1 Message Date
Andrew Liang 5809ae17f1 DEV: Better error message for sid= in get_open_orders
Let the user to know to use asset= instead
2016-04-26 12:23:57 -04:00
Jean Bredeche c404c60d68 BUG: don't allow ordering in before_trading_start 2016-04-26 10:56:36 -04:00
Andrew Liang 8aac0ab19f BUG: Week rule plus time rule doesn't work
The next trigger for the week rule get recalculated every time
the rule is triggered
2016-04-18 17:05:43 -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
Andrew Liang 6d6cd58c3b BUG: Recalculate trigger for week rule if we miss the first one
If we start the simulation on a day so that we miss the trigger
(the first for the sim) for that week, recalculate the trigger
for next week
2016-04-15 15:09:08 -04:00
Andrew Liang 1ee3c5f049 BUG: week_end rule with offset=0 skips every other week 2016-04-15 10:17:18 -04:00
Eddie Hebert 76e14eda2f ENH: Add expiring cache.
Add a cache interface which supports expirable entries with a changeable
backend for the cache into which they are entered.

The default cache is a `dict` but could swapped for
`cachetools.LRUCache` or any other cache which supports `__get__`,
`__set__`, and `__del__`.

So that consumers can change the use of `CachedObjects` stored in a
cache from:

```
self._cache = {}

...

try:
    obj = self._cache[key]
    try:
        return obj.unwrap(dt)
    except Expired:
        pass
except KeyError:
    pass

...

self._cache[key] = CachedObject(value, new_expiration)
```

to:

```
self._cache = ExpiringCache(LRUCache(maxsize=6))

...

try:
    return self._cache.get(key, dt)
except KeyError:
    # Get fresh value
    ...

    self._cache.set(key, value, new_expiration)
```
2016-04-14 16:10:32 -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
Andrew Liang 2454454b07 Merge pull request #1112 from quantopian/schedule_func_midday
FIX: time_rules should trigger only at dt specified
2016-04-06 09:16:43 -04:00
Andrew Liang a8491879ce FIX: time_rules should trigger only at dt specified
Previously, time_rules triggered when the dt specified has passed
2016-04-05 17:51:10 -04:00
Scott Sanderson 6bf4fe15e2 Merge pull request #1020 from quantopian/rolling-window-stride-tricks
Rolling window stride tricks
2016-04-05 17:23:55 -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
Scott Sanderson 92feaa3a7d BUG/TEST: Dict key order isn't guaranteed. 2016-03-28 10:21:57 -04:00
Scott Sanderson a932628627 BUG: Use six viewkeys. 2016-03-28 09:24:56 -04:00
Scott Sanderson d0625e8a8d MAINT: Move ignore_nanwarnings to numpy_utils. 2016-03-25 15:11:18 -04:00
Scott Sanderson 1f237d43a3 MAINT: Make preprocessor factories closures. 2016-03-25 15:11:18 -04:00
Scott Sanderson 1245552340 DEV: Add expect_dimensions preprocessor. 2016-03-25 15:11:18 -04:00
Scott Sanderson b85eb36da8 TEST: Add test for demean example. 2016-03-25 15:11:18 -04:00
Richard Frank d67c93c4ab DOC: Signal to doctest blank lines in the expected output 2016-03-23 18:26:42 -04:00
Joe Jevnik 721dd36116 TST: move test_utils and adds test fixture classes
Renames zipline.utils.test_utils to zipline.testing

Adds zipline.testing.fixtures.ZiplineTestCase to manage setup and
teardown and adds mixins to define fixtures like an asset finder or
trading calendar.
2016-03-10 15:39:52 -05:00
Maya Tydykov 328d449e60 MAINT: don't test handler. 2016-03-08 19:29:28 -05:00
Maya Tydykov 195c2fffb6 DOC: update doc.
DOC: update docs.
2016-03-08 17:24:04 -05:00
Maya Tydykov c87293942f TST: remove logging test and move missing sid test.
DOC: add docstring.

TST: reduce test data redundancy.

MAINT: use string constant.
2016-03-08 17:24:04 -05:00
Maya Tydykov 6976f7e459 # This is a combination of 8 commits.
# The first commit's message is:
BUG: ignore sids in deltas missing from asset index.

# This is the 2nd commit message:

MAINT: use correct debugger.

# This is the 3rd commit message:

MAINT: fix set add.

# This is the 4th commit message:

WIP: move sid filtering.

# This is the 5th commit message:

WIP: move filtering logic.

# This is the 6th commit message:

WIP: working test.

# This is the 7th commit message:

TST: clean up test.

# This is the 8th commit message:

STY: fix flake8.
2016-03-08 17:24:04 -05:00
Scott Sanderson e810f26097 ENH: Add utilities for checking types generically. 2016-03-07 16:18:33 -05:00
Scott Sanderson cd24d8ba55 ENH: Add rolling_window to numpy_utils.py. 2016-03-01 19:32:55 -05:00
Abhijeet Kalyan b57cac0f6f DEV: Adds deprecation utility 2016-02-24 14:50:32 -05:00
dmichalowicz 5be63f36d5 ENH: Add auto_close_date support for equities 2016-02-22 13:51:20 -05:00
Scott Sanderson e2db1a7b45 DEV: Add utility for generating test price/volume data. 2016-02-22 13:47:07 -05:00
Scott Sanderson 4bc42d5658 BUG: Don't return a map from chrange. 2016-02-16 12:35:49 -05:00
Scott Sanderson f27b415c83 DOC: Docs updates for subtest and parameter_space. 2016-02-12 21:23:47 -05:00
Scott Sanderson 58b594a6e5 STY: Typo. 2016-02-12 21:23:47 -05:00
Scott Sanderson 0115cdc46c MAINT: Fail fast on unsupported dtypes. 2016-02-12 21:23:47 -05:00
Scott Sanderson c105735574 DEV: Add support for specifying missing_value.
Consequently, enable support for `int`-dtyped Factors and BoundColumns.
2016-02-12 21:23:47 -05:00
Scott Sanderson 94c02c710b DEV: Add parameter_space test decorator. 2016-02-12 21:21:19 -05:00
Scott Sanderson 1bf33f9ee0 TEST: Add isolated tests for .latest. 2016-02-12 21:21:19 -05:00
Richard Frank 24a292150a MAINT: Removing confusing parameter where we only use default 2016-02-11 18:46:44 -05:00
Joe Jevnik 86558f83b3 MAINT: use constants for nat 2016-02-11 18:46:43 -05:00
Joe Jevnik c11524fda1 MAINT: pandas 0.17 compat for blaze core loader 2016-02-11 18:46:43 -05:00
Scott Sanderson 5f49fa22cb MAINT: Upgrade numpy and fix warnings.
Mostly fixes ambiguous calls to numpy.full, and uses explicitly-united
NaT values.
2016-02-11 18:46:39 -05:00
Richard Frank 4e84b2c5ca TST: Added doctest 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
jfkirk db1e62971a ENH: Adds tick_size and renames futures multiplier 2016-01-22 14:56:30 -05:00
Joe Jevnik a3dbf7590e TST: doctest failure 2016-01-13 16:36:20 -05:00
Joe Jevnik 6280614a69 DOC: whatsnew 2016-01-13 16:36:20 -05:00
Joe Jevnik 5351b60a4c ENH: adds optionally for preprocessors 2016-01-13 15:26:37 -05:00
Joe Jevnik 5a235bdaef ENH: allows users to specify the cutoff time for data query in blaze
loaders

This allows people to set their cutoff time to the time they will
actually execute 'before_trading_start'. Currently this is just passed
to the constructor of the loader; however, I would like to make this
managed by the algorithm simulation runner. This would help keep all of
the loaders in sync and lock 'before_trading_start's execution to the
time the data is queried for.
2016-01-13 15:26:13 -05:00
Scott Sanderson b6175de5f1 DOC/TEST: Add doctest and docs for coerce kwargs. 2016-01-12 17:51:13 -05:00
Scott Sanderson 43b6344d5f ENH: Add `coerce` preprocessor. 2016-01-12 17:36:36 -05:00
Joe Jevnik fb6d1ea3d1 MAINT: move some helpers to test_utils 2016-01-08 13:11:31 -05:00