Commit Graph
35 Commits
Author SHA1 Message Date
Richard Frank 9fccb7354e BUG: Fix and test getting all default calendars 2016-08-21 17:19:59 -04:00
Andrew DanielsandGitHub 813e56c41d ENH: Adds QuantopianUSFuturesCalendar (#1414)
For trading US futures across the exchanges supported by Zipline.
2016-08-19 13:40:09 -04:00
Jean Bredeche 7803ec6e46 ENH: Add public API to register calendars by type 2016-08-11 11:27:48 -04:00
Jean Bredeche ec441c55ea BUG: Fix HolidayCalendar init 2016-08-09 09:10:43 -04:00
Scott Sanderson a265356082 MAINT: Remove unused variable. 2016-08-05 16:03:00 -04:00
Scott Sanderson c77d51de83 MAINT: Isolate global calendar state.
Encapsulate the shared global calendar map in an object.

This allows consumers that don't want to participate in custom
registration to pass around a calendar dispatcher, and would make it
easier to support contextual management of the global calendar map if we
want to do that in the future.

As a bonus, we now only create one instance of each calendar, instead of
one per alias.
2016-08-05 15:25:02 -04:00
Jean Bredeche 9ae725b940 ENH: update register_calendar API to take a specific name 2016-08-02 23:12:07 -04:00
Jean Bredeche 6020752a1d TST: Filter out pandas performance warnings in tests (for now) 2016-08-02 23:12:07 -04:00
Jean Bredeche 2854c77d55 ENH: Clock now fires a BEFORE_TRADING_START_BAR event.
`AlgorithmSimulator` listens to that event to call the algorithm's
`before_trading_start` method.
2016-08-02 23:12:07 -04:00
Jean Bredeche 21aca754ba ENH: Reorganized internal calendar implementation.
Added tests for CME calendar.

Added ICE calendar (and tests).

Added CFE calendar (and tests).
2016-07-19 22:27:34 -04:00
Andrew DanielsandGitHub 6cebf05417 BUG: Further corrections for days_at_time (#1334)
* BUG: Further corrections for days_at_time

- Revert to using DateOffset, as Timedelta doesn't handle offsetting by
  one day over a tz change properly:

    In [12]: pd.Timestamp('2004-04-05', tz='America/Chicago') + pd.Timedelta(days=-1)
    Out[12]: Timestamp('2004-04-03 23:00:00-0600', tz='America/Chicago')

    In [13]: pd.Timestamp('2004-04-05', tz='America/Chicago') + pd.DateOffset(days=-1)
    Out[13]: Timestamp('2004-04-04 00:00:00-0600', tz='America/Chicago')

  By creating a DateOffset using the `days` kwarg, the issue previously
  fixed in bcc867b is addressed.

- To preempt any other pandas issues around day offsets, changes to
  performing these with no timezone, then localizing to the local
  timezone when shifting the time.
- Adds unit test for days_at_time

* STY: Remove unused import
2016-07-19 13:19:40 -04:00
Andrew Daniels bcc867b143 BUG: Use Timedelta instead of DateOffset in days_at_time calendar helper
Prior to pandas 17, there were issues with offsetting dates with
DateOffset around discontinuities (like the start of DST). We can use
Timedelta here instead, which handles these edge cases.
2016-07-18 17:11:11 -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
Andrew Daniels dd38ca9747 BUG: Removes Hurricane Sandy closings from CME exchange calendar
Since the CME calendar was based off of the NYSE calendar, closings for
Hurricane Sandy were included, but shouldn't have been for CME.

This is the explanation we had included prior to the new exchange
calendars:

http://en.wikipedia.org/wiki/Hurricane_sandy

We *do not* add any non-trading days for Hurricane Sandy. Although
trading on CME Group exchanges was disrupted, trading still occurred at
some point on each day. Importantly, the disruptions do not appear to
have affected the expiration dates stipulated in the futures contracts
expiring during this period.

Trading of CME US equity index futures & NYMEX futures was disrupted due
to the hurricane's impact on New York. CME US equity index futures
markets were disrupted on October 29th 2012, but reopened at 5:00pm CT.

The US equity index markets were closed from 8:15am CT on October 30,
both for the trading floor and CME Globex. The trading floor of the
NYMEX was closed on October 30, but all floor-trading products were
available electronically on CME Globex.

Source:
http://investor.cmegroup.com/investor-relations/releasedetail.cfm?ReleaseID=716923

    October 2012
Su Mo Tu We Th Fr Sa
    1  2  3  4  5  6
 7  8  9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

Also see:
-- http://www.chicagobusiness.com/article/20121029/NEWS01/121029818/cme-cboe-other-markets-closed-for-hurricane-sandy-about-500-local-flights-scrapped
-- http://money.cnn.com/2012/10/29/investing/hurricane-sandy-stock-markets
2016-06-21 10:31:35 -04:00
Andrew Liang 28b1da443e MAINT: Raise when trying to get a date outside trading calendar
next_scheduled_day and previous_scheduled day should raise if
trying a return a date outside the calendar. Previously it just
returns None, but it should be made consistent with the behavior
of add_scheduled_days
2016-06-13 09:07:16 -04:00
Jean Bredeche b1428aaad1 DEV: Cleaned up trading_minute_window
Removed it from ExchangeCalendar.

Fixed TradingSchedule’s implementation to be much faster.  Removed the
`step` parameter.
2016-06-08 13:34:23 -04:00
Jean Bredeche e1e12534c5 ENH: speed up calculation of all trading minutes. 2016-06-08 13:34:23 -04:00
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
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 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 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 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