Commit Graph
462 Commits
Author SHA1 Message Date
jfkirkandJean Bredeche 3b8b6d55e0 STY: Cleans up ExchangeCalendar construction 2016-06-08 13:34:22 -04:00
jfkirkandJean Bredeche 4a20157a25 BUG: Python 3 time compatibility 2016-06-08 13:34:22 -04:00
jfkirkandJean Bredeche 2a8f69fc01 MAINT: DataPortal env -> asset_finder 2016-06-08 13:34:22 -04:00
Andrew DanielsandJean Bredeche 53fcdde66d Fixes for CMEExchangeCalendar
Note that a lot of this duplicates what we have for
NYSEExchangeCalendar.
2016-06-08 13:34:22 -04:00
jfkirkandJean Bredeche 77cdec161a BUG: Changes type of early_closes to DatetimeIndex 2016-06-08 13:34:21 -04:00
jfkirkandJean Bredeche 156be81b14 ENH: Adds BMF, LSE, TSX to get_calendar 2016-06-08 13:34:21 -04:00
jfkirkandJean Bredeche 2a81c2066f ENH: Adds the option to force calendar registration 2016-06-08 13:34:21 -04:00
jfkirkandJean Bredeche ada0804df1 MAINT: Renames CME ExchangeCalendar module 2016-06-08 13:34:21 -04:00
jfkirkandJean Bredeche da99cd6192 ENH: Adds BMF, LSE, and TSX exchange calendars 2016-06-08 13:34:21 -04:00
jfkirkandJean Bredeche 219f20989f BUG: Fixes after-hours behavior on session_date 2016-06-08 13:34:21 -04:00
jfkirkandJean Bredeche f9812968d4 MAINT: Updates July 5th Holiday for pandas 17 2016-06-08 13:34:20 -04:00
jfkirkandJean Bredeche 4344336576 BUG: Adds schedule arg to run_algo 2016-06-08 13:34:20 -04:00
jfkirkandJean Bredeche 75e0e4723d TST: Refactors more tests to use WithTradingSchedule 2016-06-08 13:34:20 -04:00
jfkirkandJean Bredeche d9fc514fa8 TST: Adds TradingSchedule test fixture 2016-06-08 13:34:20 -04:00
jfkirkandJean Bredeche 31f9f06c9a MAINT: Removes static calendar from schedule_function rules 2016-06-08 13:34:19 -04:00
jfkirkandJean Bredeche 591ae02a02 MAINT: Removes unnecessary NYSETradingSchedule 2016-06-08 13:34:19 -04:00
jfkirkandJean Bredeche 705fb4e89f MAINT: Removes use of partials in schedule classes 2016-06-08 13:34:19 -04:00
jfkirkandJean Bredeche ddaf3d5b02 MAINT: Consolidates minute_window methods in schedule classes 2016-06-08 13:34:19 -04:00
jfkirkandJean Bredeche 26742dda67 MAINT: Removes obsolete tradingcalendar module 2016-06-08 13:34:19 -04:00
jfkirkandJean Bredeche 241abda2a5 STY: Flake8 2016-06-08 13:34:19 -04:00
jfkirkandJean Bredeche 4b7390ac81 WIP: Refactors tests to use TradingSchedule 2016-06-08 13:34:19 -04:00
jfkirkandJean Bredeche c8304e8601 ENH: Adds ExchangeCalendar, TradingSchedule, and implementations
Conflicts:
	tests/data/test_minute_bars.py
	tests/data/test_us_equity_pricing.py
	tests/finance/test_slippage.py
	tests/pipeline/test_engine.py
	tests/pipeline/test_us_equity_pricing_loader.py
	tests/serialization_cases.py
	tests/test_algorithm.py
	tests/test_assets.py
	tests/test_bar_data.py
	tests/test_benchmark.py
	tests/test_exception_handling.py
	tests/test_fetcher.py
	tests/test_finance.py
	tests/test_history.py
	tests/test_perf_tracking.py
	tests/test_security_list.py
	tests/utils/test_events.py
	zipline/algorithm.py
	zipline/data/data_portal.py
	zipline/data/us_equity_loader.py
	zipline/errors.py
	zipline/finance/trading.py
	zipline/testing/core.py
	zipline/utils/events.py
2016-06-08 13:34:18 -04:00
Andrew Liang 7d1c79715d Merge pull request #1221 from quantopian/schedule_func_args
Support the passing of a time rule positionally on the date_rule arg
2016-06-03 17:44:28 -04:00
Andrew Liang 1056501b27 MAINT: Support the passing of a time rule positionally on the date_rule arg
But log a warning to the user
2016-06-03 15:28:53 -04:00
Eddie Hebert e75c4650b0 MAINT: Remove unused data conversion script.
The file format converted by this script has no support for reading in
Zipline. Remove since it requires import of a library not defined in
requirements.
2016-06-03 15:13:45 -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
Andrew Daniels 71f12ec272 MAINT: Adds first_trading_day arg to DataPortal
Instead of inferring it from the minute/daily writer, we now require the
first trading day to be passed explicitly, so the creator of the
DataPortal controls what is used as the first trading day.
2016-06-02 13:16:43 -04:00
Joe Jevnik 9448117b6e MAINT: update mask_between_time and attribute the original to pandas 2016-05-27 14:34:19 -04:00
Joe Jevnik 2d36a58add ENH: improve performance of time comparisons
Adds `mask_time_between` to do more efficient comparisons between
pandas.DatetimeIndex and datetime.time objects.

This is used in the loader utils to more efficiently normalize datetimes
around the query time.
2016-05-25 13:21:26 -04:00
Scott SandersonandJoe Jevnik 392ac2f9d6 DOC/TEST: Add example algo using Pipeline. 2016-05-24 22:34:05 -04:00
Joe Jevnik 533233fae4 BUG: fix cell magic 2016-05-24 02:04:47 -04:00
Joe Jevnik 46cc417b9b BUG: fix some ingestion issues for quantopian-quandl 2016-05-16 16:15:17 -04:00
Joe Jevnik 784d5f4a16 Merge pull request #1199 from quantopian/boybands-factor
BollingerBands factor
2016-05-13 15:35:10 -04:00
Joe Jevnik 9b76731143 ENH: adds with_metaclasses and tests for metautils 2016-05-12 15:58:19 -04:00
Joe Jevnik d888c4faaa DOC: update docs for api functions 2016-05-06 15:25:30 -04:00
Joe Jevnik 0562179060 Merge pull request #1178 from quantopian/quantopian-quandl
ENH: Adds quantopian-quandl bundle as new default.
2016-05-06 12:53:07 -04:00
Scott Sanderson 3395b33f1e BUG: Fix multiple bugs in PanelDailyBarReader.
- Return a value from `verify_all_indices_unique` so that `panel` isn't
  unconditionally `None` in `PanelDailyBarReader`.

- Fix a bug where we always set the volume of every asset to `1e9`.

- Add minimal suite of tests for get_spot_value, which catch both of the
  above.

NOTE: There are still several issues with `PanelDailyBarReader`.  The
docstring for `get_spot_value` claims that it will return -1 on days
where an asset didn't trade, which isn't the case.  It also claims that
it will raise `NoDataOnDate` when a request is made outside the panel
range, but it just raises a KeyError.  We also still have no coverage
for `load_raw_arrays`, so it's likely that there are more bugs lurking.
2016-05-06 10:59:14 -04:00
Jean Bredeche a068eb374a Merge pull request #1182 from quantopian/no-more-dups
DEV: Ensure there are no duplicates in the data passed into TradingAlgorithm.run
2016-05-06 09:55:23 -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 89542e33bd ENH: Adds quantopian-quandl bundle as new default.
This data bundle will use the quantopian mirror of the quandl WIKI data
instead of downloading from quandl directly. This dramatically improves
the speed because we do not pay the rate limiting for quandl and we can
send the data in the format zipline expects.
2016-05-05 18:22:13 -04:00
Scott Sanderson bd0f138081 TEST/MAINT: Refactor unique axis verification.
Break it into a standalone function that handles any pandas type.
2016-05-05 14:20:47 -04:00
Scott Sanderson 7a4e9fd61a ENH: Make None the default for string columns. 2016-05-04 19:10:19 -04:00
Scott Sanderson 5a1ed7b1d3 ENH: Make element_of work for ints too. 2016-05-04 16:31:58 -04:00
Scott Sanderson 4357673221 MAINT: Add unicode to __all__. 2016-05-04 15:56:09 -04:00
Scott Sanderson 2395cbb671 ENH: Use np.void for labelarray storage.
This disables most broken ufuncs
2016-05-04 15:54:50 -04:00
Scott Sanderson 5f190395ad ENH: Add support for strings in Pipeline.
- Adds a new class, ``LabelArray``, which is a subclass of np.ndarray.
  LabelArray is conceptually similar to pandas.Categorical, in that it
  stores data with many duplicate values as indices into an array of
  unique values.  For string data with many duplicates (e.g. time-series
  of tickers or or industry classifications), this provides multiple
  orders of magnitude of improvement when doing string operations,
  especially string comparison/matching operations.

- Adds a new generic object "specialization" for `AdjustedArrayWindow`,
  and a corresponding ObjectOverwrite adjustment.

- Adds a new ``postprocess`` method to ``zipline.pipeline.term.Term``.
  This method is called on the final result of any pipeline expression
  after screen filtering has occurred. The default implementation of
  ``postprocess`` is identity, but Classifier overrides it to coerce
  string columns into pandas.Categoricals before presenting them to the
  user.
2016-05-04 15:50:52 -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
Andrew LiangandJean Bredeche 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