trading_calendars 是一个Python库,包含用于Quantopian的Zipline的证券交易所日历。
项目描述
trading_calendars
一个Python库,包含交易所日历,通常与 Zipline 一起使用。
安装
$ pip install trading-calendars
快速入门
import trading_calendars as tc
import pandas as pd
import pytz
使用 get_calendar_names
获取所有已注册的日历
>>> tc.get_calendar_names()[:5]
['XPHS', 'FWB', 'CFE', 'CMES', 'XSGO']
使用 get_calendar
获取一个日历
>>> xnys = tc.get_calendar("XNYS")
与会议会话一起工作
>>> xnys.is_session(pd.Timestamp("2020-01-01"))
False
>>> xnys.next_open(pd.Timestamp("2020-01-01"))
Timestamp('2020-01-02 14:31:00+0000', tz='UTC')
>>> pd.Timestamp("2020-01-01", tz=pytz.UTC)+xnys.day
Timestamp('2020-01-02 00:00:00+0000', tz='UTC')
>>> xnys.previous_close(pd.Timestamp("2020-01-01"))
Timestamp('2019-12-31 21:00:00+0000', tz='UTC')
>>> xnys.sessions_in_range(
>>> pd.Timestamp("2020-01-01", tz=pytz.UTC),
>>> pd.Timestamp("2020-01-10", tz=pytz.UTC)
>>> )
DatetimeIndex(['2020-01-02 00:00:00+00:00', '2020-01-03 00:00:00+00:00',
'2020-01-06 00:00:00+00:00', '2020-01-07 00:00:00+00:00',
'2020-01-08 00:00:00+00:00', '2020-01-09 00:00:00+00:00',
'2020-01-10 00:00:00+00:00'],
dtype='datetime64[ns, UTC]', freq='C')
>>> xnys.sessions_window(
>>> pd.Timestamp("2020-01-02", tz=pytz.UTC),
>>> 7
>>> )
DatetimeIndex(['2020-01-02 00:00:00+00:00', '2020-01-03 00:00:00+00:00',
'2020-01-06 00:00:00+00:00', '2020-01-07 00:00:00+00:00',
'2020-01-08 00:00:00+00:00', '2020-01-09 00:00:00+00:00',
'2020-01-10 00:00:00+00:00', '2020-01-13 00:00:00+00:00'],
dtype='datetime64[ns, UTC]', freq='C')
注意:有关更高级的使用,请参阅 TradingCalendar 类
交易日历还支持命令行使用,打印类似于unix-cal的日历,指出哪些天是交易日或节假日。
tcal XNYS 2020
2020
January February March
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
[ 1] 2 3 [ 4] [ 1]
[ 5] 6 7 8 9 10 [11] [ 2] 3 4 5 6 7 [ 8] [ 1] 2 3 4 5 6 [ 7]
[12] 13 14 15 16 17 [18] [ 9] 10 11 12 13 14 [15] [ 8] 9 10 11 12 13 [14]
[19][20] 21 22 23 24 [25] [16][17] 18 19 20 21 [22] [15] 16 17 18 19 20 [21]
[26] 27 28 29 30 31 [23] 24 25 26 27 28 [29] [22] 23 24 25 26 27 [28]
[29] 30 31
April May June
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 [ 4] 1 [ 2] 1 2 3 4 5 [ 6]
[ 5] 6 7 8 9 [10][11] [ 3] 4 5 6 7 8 [ 9] [ 7] 8 9 10 11 12 [13]
[12] 13 14 15 16 17 [18] [10] 11 12 13 14 15 [16] [14] 15 16 17 18 19 [20]
[19] 20 21 22 23 24 [25] [17] 18 19 20 21 22 [23] [21] 22 23 24 25 26 [27]
[26] 27 28 29 30 [24][25] 26 27 28 29 [30] [28] 29 30
[31]
July August September
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 [ 3][ 4] [ 1] 1 2 3 4 [ 5]
[ 5] 6 7 8 9 10 [11] [ 2] 3 4 5 6 7 [ 8] [ 6][ 7] 8 9 10 11 [12]
[12] 13 14 15 16 17 [18] [ 9] 10 11 12 13 14 [15] [13] 14 15 16 17 18 [19]
[19] 20 21 22 23 24 [25] [16] 17 18 19 20 21 [22] [20] 21 22 23 24 25 [26]
[26] 27 28 29 30 31 [23] 24 25 26 27 28 [29] [27] 28 29 30
[30] 31
October November December
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 [ 3] 1 2 3 4 [ 5]
[ 4] 5 6 7 8 9 [10] [ 1] 2 3 4 5 6 [ 7] [ 6] 7 8 9 10 11 [12]
[11] 12 13 14 15 16 [17] [ 8] 9 10 11 12 13 [14] [13] 14 15 16 17 18 [19]
[18] 19 20 21 22 23 [24] [15] 16 17 18 19 20 [21] [20] 21 22 23 24 [25][26]
[25] 26 27 28 29 30 [31] [22] 23 24 25 [26] 27 [28] [27] 28 29 30 31
[29] 30
tcal XNYS 1 2020
January 2020
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
常见问题解答
为什么开盘时间晚了一分钟?
由于它在 Zipline 回测系统中的历史使用,trading_calendars
将仅在一天中的第一分钟柱线完成时表示市场已开盘。Zipline 使用以柱线结束时间为标签的分钟柱线,例如,上午9:31 AM表示上午9:30-9:31 AM。例如,在NYSE的正常交易日中
- 9:30:00 被视为收盘。
- 9:30:01 被视为收盘。
- 9:31:00 是第一次被视为开盘。
- 16:00:00 被视为开盘
- 16:00:01 被视为收盘
这可能在将来改变。
日历支持
请注意,交易所日历是由其ISO-10383市场标识代码定义的。
项目详情
关闭
trading_calendars-2.1.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 639357b802942986e14c0e1fdc47b0ff145f31ce7e7754a11f6a329f36705fc4 |
|
MD5 | a7684752ad4c9429adaa990267e15f60 |
|
BLAKE2b-256 | 1e6e613df8268dea3aac81d3b9d9872d4e48526f8650e970ca1d14911f02dad0 |