跳转到主要内容

trading_calendars 是一个Python库,包含用于Quantopian的Zipline的证券交易所日历。

项目描述

trading_calendars

CI PyPI version Conda version

一个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代码 国家 版本添加 交易所网站(英文)
纽约证券交易所 XNYS USA 1.0 https://www.nyse.com/index
CBOE期货 XCBF USA 1.0 https://markets.cboe.com/us/futures/overview/
芝加哥商品交易所 CMES USA 1.0 https://www.cmegroup.com/
ICE美国 IEPA USA 1.0 https://www.theice.com/index
多伦多证券交易所 XTSE 加拿大 1.0 https://www.tsx.com/
巴西博维斯帕 BVMF 巴西 1.0 http://www.b3.com.br/en_us/
伦敦证券交易所 XLON 英格兰 1.0 https://www.londonstockexchange.com/home/homepage.htm
阿姆斯特丹欧洲交易所 XAMS 荷兰 1.2 https://www.euronext.com/en/regulation/amsterdam
布鲁塞尔欧洲交易所 XBRU 比利时 1.2 https://www.euronext.com/en/regulation/brussels
里斯本欧洲交易所 XLIS 葡萄牙 1.2 https://www.euronext.com/en/regulation/lisbon
巴黎欧洲交易所 XPAR 法国 1.2 https://www.euronext.com/en/regulation/paris
法兰克福证券交易所 XFRA 德国 1.2 http://en.boerse-frankfurt.de/
瑞士证券交易所 XSWX 瑞士 1.2 https://www.six-group.com/exchanges/index.html
东京证券交易所 XTKS 日本 1.2 https://www.jpx.co.jp/english/
澳大利亚证券交易市场 XASX 澳大利亚 1.3 https://www.asx.com.au/
马德里证券交易所 XMAD 西班牙 1.3 http://www.bolsamadrid.es/ing/aspx/Portada/Portada.aspx
意大利证券交易所 XMIL 意大利 1.3 https://www.borsaitaliana.it/homepage/homepage.en.htm
新西兰证券交易所 XNZE 新西兰 1.3 https://www.nzx.com/
维也纳证券交易所 XWBO 奥地利 1.3 https://www.wienerborse.at/en/
香港证券交易所 XHKG 香港 1.3 https://www.hkex.com.hk/?sc_lang=en
哥本哈根证券交易所 XCSE 丹麦 1.4 http://www.nasdaqomxnordic.com/
赫尔辛基证券交易所 XHEL 芬兰 1.4 http://www.nasdaqomxnordic.com/
斯德哥尔摩证券交易所 XSTO 瑞典 1.4 http://www.nasdaqomxnordic.com/
奥斯陆证券交易所 XOSL 挪威 1.4 https://www.oslobors.no/ob_eng/
爱尔兰证券交易所 XDUB 爱尔兰 1.4 http://www.ise.ie/
孟买证券交易所 XBOM 印度 1.5 https://www.bseindia.com
新加坡交易所 XSES 新加坡 1.5 https://www.sgx.com
上海证券交易所 XSHG 中国 1.5 http://english.sse.com.cn
韩国交易所 XKRX 韩国 1.6 http://global.krx.co.kr
冰岛证券交易所 XICE 冰岛 1.7 http://www.nasdaqomxnordic.com/
波兰证券交易所 XWAR 波兰 1.9 http://www.gpw.pl
圣地亚哥证券交易所 XSGO 智利 1.9 http://inter.bolsadesantiago.com/sitios/en/Paginas/home.aspx
哥伦比亚证券交易市场 XBOG 哥伦比亚 1.9 https://www.bvc.com.co/nueva/index_en.html
墨西哥证券交易所 XMEX 墨西哥 1.9 https://www.bmv.com.mx
利马证券交易所 XLIM 秘鲁 1.9 https://www.bvl.com.pe
布拉格证券交易所 XPRA 捷克共和国 1.9 https://www.pse.cz/en/
布达佩斯证券交易所 XBUD 匈牙利 1.10 https://bse.hu/
雅典证券交易所 ASEX 希腊 1.10 http://www.helex.gr/
伊斯坦布尔证券交易所 XIST 土耳其 1.10 https://www.borsaistanbul.com/en/
约翰内斯堡证券交易所 XJSE 南非 1.10 https://www.jse.co.za/z
马来西亚证券交易所 XKLS 马来西亚 1.11 http://www.bursamalaysia.com/market/
莫斯科交易所 XMOS 俄罗斯 1.11 https://www.moex.com/en/
菲律宾证券交易所 XPHS 菲律宾 1.11 https://www.pse.com.ph/stockMarket/home.html
泰国证券交易所 XBKK 泰国 1.11 https://www.set.or.th/set/mainpage.do?language=en&country=US
印度尼西亚证券交易所 XIDX 印度尼西亚 1.11 https://www.idx.co.id/
台湾证券交易所股份有限公司 XTAI 台湾 1.11 https://www.twse.com.tw/en/
布宜诺斯艾利斯证券交易所 XBUE 阿根廷 1.11 https://www.bcba.sba.com.ar/
巴基斯坦证券交易所 XKAR 巴基斯坦 1.11 https://www.psx.com.pk/

请注意,交易所日历是由其ISO-10383市场标识代码定义的。

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

trading_calendars-2.1.1.tar.gz (108.7 kB 查看哈希值)

上传时间

由以下支持