forked from quantopian/trading_calendars
-
Notifications
You must be signed in to change notification settings - Fork 157
Closed
Labels
TODOTodo list for feature or releaseTodo list for feature or release
Description
I've opened this to consolidate any breaking changes that would need to be delayed until / incorporated in any release 4.0.
- Change times to UTC (opens, closes, break_starts and break_ends) (Sessions to tz-naive? Schedule times to UTC? #42). (done Change sessions to tz-naive, times to UTC #179)
- Change sessions to tz-naive (only if Sessions to tz-naive? Schedule times to UTC? #42 resolves in favour of this change). (done Change sessions to tz-naive, times to UTC #179)
- Move min supported version to 3.8. Changes as todo when min support moves to python 3.8 #68. (done v4 dev: Advance min python version to 3.8 #187)
-
session_labelparameter ofExchangeCalendarmethods to be renamedsession(which is given context fromSessiontype and checks imposed by subsequent parsing). Methods requiring change include:-
previous_session_label(changed when renamed, Renaming of some ExchangeCalendar methods #85) -
next_session_label(changed when renamed, Renaming of some ExchangeCalendar methods #85) -
session_open(done v4 dev: Rename parameters, deprecate methods and remove deprecated methods #186) -
session_close(done v4 dev: Rename parameters, deprecate methods and remove deprecated methods #186) -
session_break_start(done v4 dev: Rename parameters, deprecate methods and remove deprecated methods #186) -
session_break_end(done v4 dev: Rename parameters, deprecate methods and remove deprecated methods #186) -
open_and_close_for_session(changed when renamed, Renaming of some ExchangeCalendar methods #85) -
break_start_and_end_for_session(changed when renamed, Renaming of some ExchangeCalendar methods #85) -
minutes_for_session(changed when renamed, Renaming of some ExchangeCalendar methods #85) -
sessions_window(done v4 dev: revises*window,bound*,default*and prev/next session/minute methods. #184)
For following methods,start_session_label/end_session_labelparameters to be renamedstart/end -
sessions_in_range(done v4 dev: Rename parameters, deprecate methods and remove deprecated methods #186) -
minutes_for_sessions_in_range(changed when renamed, Renaming of some ExchangeCalendar methods #85) -
session_opens_in_range(changed when renamed, Renaming of some ExchangeCalendar methods #85) -
session_closes_in_range(changed when renamed, Renaming of some ExchangeCalendar methods #85) -
session_distance(changed when renamed, Renaming of some ExchangeCalendar methods #85)
For following methods,start_session/end_sessionparameters to be renamedstart/end -
minutes_count_for_sessions_in_range(changed when renamed, Renaming of some ExchangeCalendar methods #85)
For following methods,start_minute/end_minuteparameters to be renamedstart/end -
minutes_in_range(done v4 dev: Update doc and tutorials for 4.0 #194)
For following methods,dtto be renameddate: -
is_session(done v4 dev: Rename parameters, deprecate methods and remove deprecated methods #186)
-
-
dtparameter ofExchangeCalendarmethods to be renamedminute(given context from 'Minute' type and checks imposed by subsequent parsing). Methods requring change include:-
minute_to_session_label(changed when renamed, Renaming of some ExchangeCalendar methods #85) -
is_open_on_minute(done v4 dev: Rename parameters, deprecate methods and remove deprecated methods #186) -
previous_open(done v4 dev: Rename parameters, deprecate methods and remove deprecated methods #186) -
previous_close(done v4 dev: Rename parameters, deprecate methods and remove deprecated methods #186) -
next_open(done v4 dev: Rename parameters, deprecate methods and remove deprecated methods #186) -
next_close(done v4 dev: Rename parameters, deprecate methods and remove deprecated methods #186) -
previous_minute(done v4 dev: Rename parameters, deprecate methods and remove deprecated methods #186) -
next_minute(done v4 dev: Rename parameters, deprecate methods and remove deprecated methods #186)
For following methods,start_dtto be renamedminute: -
minutes_window(done v4 dev: revises*window,bound*,default*and prev/next session/minute methods. #184)
-
-
indexparameter ofminute_index_to_session_labelsto be renamedminutes(changed when renamed, Renaming of some ExchangeCalendar methods #85) - rename
ExchangeCalendar.schedulecolumns: (done v4 dev: Rename parameters, deprecate methods and remove deprecated methods #186)market_opentoopenmarket_closetoclose
- Remove
ExchangeCalendarmethods deprecated ahead of release 3.4 - all were renamed (Renaming of some ExchangeCalendar methods #85) save for the fourexecution_*methods: (done v4 dev: Rename parameters, deprecate methods and remove deprecated methods #186)execution_minutes_for_sessionexecution_minutes_for_sessions_in_rangeexecution_time_from_openexecution_time_from_closeprevious_session_labelnext_session_labeldate_to_session_labelminute_to_session_labelopen_and_close_for_sessionbreak_start_and_end_for_sessionminutes_for_sessionsession_opens_in_rangesession_closes_in_rangeminutes_for_sessions_in_rangeminutes_count_for_sessions_in_rangesession_distanceminute_index_to_session_labelsall_sessionsall_minutesall_minutes_nanosfirst_trading_minutelast_trading_minutefirst_trading_sessionlast_trading_sessionhas_breaksmarket_opens_nanosmarket_closes_nanosmarket_break_starts_nanosmarket_break_ends_nanos
- Remove
sessions_opensandsessions_closesnow that, with schedule times changing to UTC timestamps,cal.sessions_opens(start, end)will return the same ascal.opens[start:end](there should be only one obvious way to do something...). (done v4 dev: Rename parameters, deprecate methods and remove deprecated methods #186) - Consider changing
sidedefault for all calendars to "left" (from "right" for 24 hour calendars and from "both" for others). See Set default calendarsideto "left" from v4 #181. (done v4 dev: Change defaultsideto "left" and post v4 linting #191) - Change behaviour of
ExchangeCalendarmethodssessions_windowandminutes_windowso thatcountparameter matches the length of the return (the length of which is currently count + 1). i.e. just addcount -= 1as methods' first line and raiseValueErrorifcountreceived as 0. (done v4 dev: revises*window,bound*,default*and prev/next session/minute methods. #184) -
Consider changing behaviour of. Considered, left as is.is_open_on_minuteto distinguish it fromis_trading_minute. Proposed that theignore_breaksoption be removed and the method act as ifignore_breakswere True, i.e.is_open_on_minutewould act asis_trading_minutealbeit treating any break minutes as open. Method documentation should make clear that market is considered open on break minutes - Consider changing
ExchangeCalendarpropertiesbound_startandbound_endto class attributes (they are class-specific, not instance-specific) anddefault_startanddefault_endto class methodswith intention of changing to class properties when min python version moves to 3.9 (as noted to todo when min support moves to python 3.9 #98 for. 22/06/06 - done v4 dev: revisesvalid_sidesanddefault_side)*window,bound*,default*and prev/next session/minute methods. #184, made all class methods. - Amend following methods to raise
errors.RequestedSessionOutOfBoundswhen request session/minute falls beyond calendar bound: (done v4 dev: revises*window,bound*,default*and prev/next session/minute methods. #184)next_session(remove fromminute_to_future_sessionmethod the current_session == last_session check and raise.)previous_session(remove fromminute_to_past_sessionmethod the current_session == first_session check and raise.)next_minuteprevious_minute
- Amend
ExchangeCalendar.trading_index, orcalendar_helpers._TradingIndex, to: (done v4 dev: fix warnings and update trading index #180)- allow
startandendparameters to be passed as times (as opposed to only dates). - include convenience
forceoption to define bothforce_closeandforce_break_close. - revise/add tests for added functionality.
- allow
- Revise README to accommodate changes. (done v4 dev: Update doc and tutorials for 4.0 #194)
- Revise / re-execute .ipynb tutorials to accommodate changes. Also: (done v4 dev: Update doc and tutorials for 4.0 #194)
-
Add note to top of all tutorials that best viewed in Jupyter Lab / Jupyter Notebook or via nbviewer. - Include clearer explanation of
startandendcalendar options to README Quick Start and an appropriate tutorial. (done v4 dev: Update doc and tutorials for 4.0 #194)
-
Desired enhancements that are non-breaking:
- Move internal representation of sessions to nanos (see discussion all_sessions_nanos for performance gains... #87).
- Real documentation. (Documentation #63). Going forward covered by issue Documentation #63
- Break times to test answers. (Break times to answers #64)
Metadata
Metadata
Assignees
Labels
TODOTodo list for feature or releaseTodo list for feature or release