pandas-market-calendars 4.4.0__py3-none-any.whl → 4.4.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. pandas_market_calendars/__init__.py +38 -38
  2. pandas_market_calendars/calendar_registry.py +57 -53
  3. pandas_market_calendars/calendar_utils.py +262 -261
  4. pandas_market_calendars/calendars/asx.py +66 -66
  5. pandas_market_calendars/calendars/bmf.py +223 -223
  6. pandas_market_calendars/calendars/bse.py +421 -421
  7. pandas_market_calendars/calendars/cboe.py +145 -145
  8. pandas_market_calendars/calendars/cme.py +405 -402
  9. pandas_market_calendars/calendars/cme_globex_agriculture.py +172 -126
  10. pandas_market_calendars/calendars/cme_globex_base.py +119 -119
  11. pandas_market_calendars/calendars/cme_globex_crypto.py +160 -160
  12. pandas_market_calendars/calendars/cme_globex_energy_and_metals.py +216 -216
  13. pandas_market_calendars/calendars/cme_globex_equities.py +123 -123
  14. pandas_market_calendars/calendars/cme_globex_fixed_income.py +136 -136
  15. pandas_market_calendars/calendars/cme_globex_fx.py +101 -101
  16. pandas_market_calendars/calendars/eurex.py +131 -139
  17. pandas_market_calendars/calendars/eurex_fixed_income.py +98 -98
  18. pandas_market_calendars/calendars/hkex.py +429 -426
  19. pandas_market_calendars/calendars/ice.py +81 -81
  20. pandas_market_calendars/calendars/iex.py +112 -112
  21. pandas_market_calendars/calendars/jpx.py +113 -109
  22. pandas_market_calendars/calendars/lse.py +114 -114
  23. pandas_market_calendars/calendars/mirror.py +149 -130
  24. pandas_market_calendars/calendars/nyse.py +1324 -1324
  25. pandas_market_calendars/calendars/ose.py +116 -116
  26. pandas_market_calendars/calendars/sifma.py +354 -354
  27. pandas_market_calendars/calendars/six.py +132 -132
  28. pandas_market_calendars/calendars/sse.py +311 -311
  29. pandas_market_calendars/calendars/tase.py +197 -197
  30. pandas_market_calendars/calendars/tsx.py +181 -181
  31. pandas_market_calendars/holidays/cme.py +385 -385
  32. pandas_market_calendars/holidays/cme_globex.py +214 -214
  33. pandas_market_calendars/holidays/cn.py +1456 -1455
  34. pandas_market_calendars/holidays/jp.py +401 -401
  35. pandas_market_calendars/holidays/jpx_equinox.py +506 -505
  36. pandas_market_calendars/holidays/nyse.py +1531 -1531
  37. pandas_market_calendars/holidays/oz.py +63 -63
  38. pandas_market_calendars/holidays/sifma.py +350 -350
  39. pandas_market_calendars/holidays/us.py +376 -376
  40. pandas_market_calendars/market_calendar.py +922 -895
  41. {pandas_market_calendars-4.4.0.dist-info → pandas_market_calendars-4.4.2.dist-info}/METADATA +8 -7
  42. pandas_market_calendars-4.4.2.dist-info/RECORD +50 -0
  43. {pandas_market_calendars-4.4.0.dist-info → pandas_market_calendars-4.4.2.dist-info}/WHEEL +1 -1
  44. pandas_market_calendars-4.4.0.dist-info/RECORD +0 -50
  45. {pandas_market_calendars-4.4.0.dist-info → pandas_market_calendars-4.4.2.dist-info}/LICENSE +0 -0
  46. {pandas_market_calendars-4.4.0.dist-info → pandas_market_calendars-4.4.2.dist-info}/NOTICE +0 -0
  47. {pandas_market_calendars-4.4.0.dist-info → pandas_market_calendars-4.4.2.dist-info}/top_level.txt +0 -0
@@ -1,216 +1,216 @@
1
- #
2
- # Copyright 2016 Quantopian, Inc.
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
-
16
- from datetime import time
17
-
18
- from pandas.tseries.holiday import (
19
- AbstractHolidayCalendar,
20
- ) # , GoodFriday, USLaborDay, USPresidentsDay, USThanksgivingDay
21
- from pytz import timezone
22
-
23
- from pandas_market_calendars.holidays.cme_globex import (
24
- USMartinLutherKingJrFrom2022,
25
- USMartinLutherKingJrPre2022,
26
- USNewYearsDay,
27
- USPresidentsDayFrom2022,
28
- USPresidentsDayPre2022,
29
- GoodFriday,
30
- USMemorialDayFrom2022,
31
- USMemorialDayPre2022,
32
- USJuneteenthFrom2022,
33
- USIndependenceDayFrom2022,
34
- USIndependenceDayPre2022,
35
- USLaborDay,
36
- USThanksgivingDayFrom2022,
37
- USThanksgivingDayPre2022,
38
- FridayAfterThanksgiving,
39
- ChristmasCME,
40
- )
41
- from .cme_globex_base import CMEGlobexBaseExchangeCalendar
42
-
43
-
44
- # from .holidays_us import (Christmas, ChristmasEveBefore1993, ChristmasEveInOrAfter1993, USBlackFridayInOrAfter1993,
45
- # USIndependenceDay, USMartinLutherKingJrAfter1998, USMemorialDay, USJuneteenthAfter2022,
46
- # USNationalDaysofMourning, USNewYearsDay)
47
-
48
-
49
- class CMEGlobexEnergyAndMetalsExchangeCalendar(CMEGlobexBaseExchangeCalendar):
50
- """
51
- Exchange calendar for CME for Energy and Metals products
52
-
53
- Both follow the same trading/holiday schedule
54
-
55
- NOT IMPLEMENTED: Dubai Mercantile Exchange (DME) follows this schedule but with holiday exceptions.
56
-
57
- Energy Products:
58
- Crude and Refined: https://www.cmegroup.com/trading/energy/crude-and-refined-products.html
59
- - HO NY Harbor ULSD Futures
60
- - CL Crude Oil Futures
61
- - RB RBOB Gasoline Futures
62
- - MCL Micro WTI Crude Oil Futures
63
- Natural Gas
64
- - NG Henry Hub Natural Gas Futures
65
- - TTF Dutch TTF Natural Gas Calendar Month Futures
66
- - NN Henry Hub Natural Gas Last Day Financial Futures
67
- Voluntary Carbon Emissions Offset Futures
68
- - CGO CBL Core Global Emmissions Offset (C-GEO) Futures
69
- - NGO CBL Nature-based Global Emissionns Offset Futures
70
- - GEO CBL Global Emissions Offset Futures
71
-
72
- Metals Products: https://www.cmegroup.com/markets/metals.html
73
- Precious Metals
74
- - GC Gold Futures
75
- - SI Silver Futures
76
- - PL Platinum Futures
77
- Base Metals
78
- - HG Copper Futures
79
- - ALI Aluminum Futures
80
- - QC E-mini Copper Futures
81
- Ferrous Metals
82
- - HRC U.S. Midwest Domestic Hot-Rolled Coil Steel (CRU) Index Futures
83
- - BUS U.S. Midwest Busheling Ferrous Scrap (AMM) Futures
84
- - TIO Iron Ore 62% Fe, CFR China (Platts) Futures
85
-
86
- Sample GLOBEX Trading Times
87
- https://www.cmegroup.com/markets/energy/crude-oil/light-sweet-crude.contractSpecs.html
88
- Sunday - Friday: 5:00pm - 4:00 pm CT
89
-
90
- Calendar: http://www.cmegroup.com/tools-information/holiday-calendar.html
91
- """
92
-
93
- aliases = [
94
- "CMEGlobex_EnergyAndMetals",
95
- "CMEGlobex_Energy",
96
- "CMEGlobex_CrudeAndRefined",
97
- "CMEGlobex_NYHarbor",
98
- "CMEGlobex_HO",
99
- "HO",
100
- "CMEGlobex_Crude",
101
- "CMEGlobex_CL",
102
- "CL",
103
- "CMEGlobex_Gas",
104
- "CMEGlobex_RB",
105
- "RB",
106
- "CMEGlobex_MicroCrude",
107
- "CMEGlobex_MCL",
108
- "MCL",
109
- "CMEGlobex_NatGas",
110
- "CMEGlobex_NG",
111
- "NG",
112
- "CMEGlobex_Dutch_NatGas",
113
- "CMEGlobex_TTF",
114
- "TTF",
115
- "CMEGlobex_LastDay_NatGas",
116
- "CMEGlobex_NN",
117
- "NN",
118
- "CMEGlobex_CarbonOffset",
119
- "CMEGlobex_CGO",
120
- "CGO",
121
- "C-GEO",
122
- "CMEGlobex_NGO",
123
- "NGO",
124
- "CMEGlobex_GEO",
125
- "GEO",
126
- "CMEGlobex_Metals",
127
- "CMEGlobex_PreciousMetals",
128
- "CMEGlobex_Gold",
129
- "CMEGlobex_GC",
130
- "GC",
131
- "CMEGlobex_Silver",
132
- "CMEGlobex_SI",
133
- "SI",
134
- "CMEGlobex_Platinum",
135
- "CMEGlobex_PL",
136
- "PL",
137
- "CMEGlobex_BaseMetals",
138
- "CMEGlobex_Copper",
139
- "CMEGlobex_HG",
140
- "HG",
141
- "CMEGlobex_Aluminum",
142
- "CMEGlobex_ALI",
143
- "ALI",
144
- "CMEGlobex_Copper",
145
- "CMEGlobex_QC",
146
- "QC",
147
- "CMEGlobex_FerrousMetals",
148
- "CMEGlobex_HRC",
149
- "HRC",
150
- "CMEGlobex_BUS",
151
- "BUS",
152
- "CMEGlobex_TIO",
153
- "TIO",
154
- ]
155
-
156
- regular_market_times = {
157
- "market_open": ((None, time(17), -1),), # Sunday offset. Central Timezone (CT)
158
- "market_close": ((None, time(16)),),
159
- }
160
-
161
- @property
162
- def name(self):
163
- return "CMEGlobex_EnergyAndMetals"
164
-
165
- @property
166
- def regular_holidays(self):
167
- return AbstractHolidayCalendar(
168
- rules=[
169
- USNewYearsDay,
170
- GoodFriday,
171
- ChristmasCME,
172
- ]
173
- )
174
-
175
- # @property
176
- # def adhoc_holidays(self):
177
- # return USNationalDaysofMourning
178
-
179
- @property
180
- def special_closes(self):
181
- return [
182
- (
183
- time(12, tzinfo=timezone("America/Chicago")),
184
- AbstractHolidayCalendar(
185
- rules=[
186
- USMartinLutherKingJrPre2022,
187
- USPresidentsDayPre2022,
188
- USMemorialDayPre2022,
189
- USIndependenceDayPre2022,
190
- USLaborDay,
191
- USThanksgivingDayPre2022,
192
- ]
193
- ),
194
- ),
195
- (
196
- time(12, 45, tzinfo=timezone("America/Chicago")),
197
- AbstractHolidayCalendar(
198
- rules=[
199
- FridayAfterThanksgiving,
200
- ]
201
- ),
202
- ),
203
- (
204
- time(13, 30, tzinfo=timezone("America/Chicago")),
205
- AbstractHolidayCalendar(
206
- rules=[
207
- USMartinLutherKingJrFrom2022,
208
- USPresidentsDayFrom2022,
209
- USMemorialDayFrom2022,
210
- USJuneteenthFrom2022,
211
- USIndependenceDayFrom2022,
212
- USThanksgivingDayFrom2022,
213
- ]
214
- ),
215
- ),
216
- ]
1
+ #
2
+ # Copyright 2016 Quantopian, Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ from datetime import time
17
+
18
+ from pandas.tseries.holiday import (
19
+ AbstractHolidayCalendar,
20
+ ) # , GoodFriday, USLaborDay, USPresidentsDay, USThanksgivingDay
21
+ from pytz import timezone
22
+
23
+ from pandas_market_calendars.holidays.cme_globex import (
24
+ USMartinLutherKingJrFrom2022,
25
+ USMartinLutherKingJrPre2022,
26
+ USNewYearsDay,
27
+ USPresidentsDayFrom2022,
28
+ USPresidentsDayPre2022,
29
+ GoodFriday,
30
+ USMemorialDayFrom2022,
31
+ USMemorialDayPre2022,
32
+ USJuneteenthFrom2022,
33
+ USIndependenceDayFrom2022,
34
+ USIndependenceDayPre2022,
35
+ USLaborDay,
36
+ USThanksgivingDayFrom2022,
37
+ USThanksgivingDayPre2022,
38
+ FridayAfterThanksgiving,
39
+ ChristmasCME,
40
+ )
41
+ from .cme_globex_base import CMEGlobexBaseExchangeCalendar
42
+
43
+
44
+ # from .holidays_us import (Christmas, ChristmasEveBefore1993, ChristmasEveInOrAfter1993, USBlackFridayInOrAfter1993,
45
+ # USIndependenceDay, USMartinLutherKingJrAfter1998, USMemorialDay, USJuneteenthAfter2022,
46
+ # USNationalDaysofMourning, USNewYearsDay)
47
+
48
+
49
+ class CMEGlobexEnergyAndMetalsExchangeCalendar(CMEGlobexBaseExchangeCalendar):
50
+ """
51
+ Exchange calendar for CME for Energy and Metals products
52
+
53
+ Both follow the same trading/holiday schedule
54
+
55
+ NOT IMPLEMENTED: Dubai Mercantile Exchange (DME) follows this schedule but with holiday exceptions.
56
+
57
+ Energy Products:
58
+ Crude and Refined: https://www.cmegroup.com/trading/energy/crude-and-refined-products.html
59
+ - HO NY Harbor ULSD Futures
60
+ - CL Crude Oil Futures
61
+ - RB RBOB Gasoline Futures
62
+ - MCL Micro WTI Crude Oil Futures
63
+ Natural Gas
64
+ - NG Henry Hub Natural Gas Futures
65
+ - TTF Dutch TTF Natural Gas Calendar Month Futures
66
+ - NN Henry Hub Natural Gas Last Day Financial Futures
67
+ Voluntary Carbon Emissions Offset Futures
68
+ - CGO CBL Core Global Emmissions Offset (C-GEO) Futures
69
+ - NGO CBL Nature-based Global Emissionns Offset Futures
70
+ - GEO CBL Global Emissions Offset Futures
71
+
72
+ Metals Products: https://www.cmegroup.com/markets/metals.html
73
+ Precious Metals
74
+ - GC Gold Futures
75
+ - SI Silver Futures
76
+ - PL Platinum Futures
77
+ Base Metals
78
+ - HG Copper Futures
79
+ - ALI Aluminum Futures
80
+ - QC E-mini Copper Futures
81
+ Ferrous Metals
82
+ - HRC U.S. Midwest Domestic Hot-Rolled Coil Steel (CRU) Index Futures
83
+ - BUS U.S. Midwest Busheling Ferrous Scrap (AMM) Futures
84
+ - TIO Iron Ore 62% Fe, CFR China (Platts) Futures
85
+
86
+ Sample GLOBEX Trading Times
87
+ https://www.cmegroup.com/markets/energy/crude-oil/light-sweet-crude.contractSpecs.html
88
+ Sunday - Friday: 5:00pm - 4:00 pm CT
89
+
90
+ Calendar: http://www.cmegroup.com/tools-information/holiday-calendar.html
91
+ """
92
+
93
+ aliases = [
94
+ "CMEGlobex_EnergyAndMetals",
95
+ "CMEGlobex_Energy",
96
+ "CMEGlobex_CrudeAndRefined",
97
+ "CMEGlobex_NYHarbor",
98
+ "CMEGlobex_HO",
99
+ "HO",
100
+ "CMEGlobex_Crude",
101
+ "CMEGlobex_CL",
102
+ "CL",
103
+ "CMEGlobex_Gas",
104
+ "CMEGlobex_RB",
105
+ "RB",
106
+ "CMEGlobex_MicroCrude",
107
+ "CMEGlobex_MCL",
108
+ "MCL",
109
+ "CMEGlobex_NatGas",
110
+ "CMEGlobex_NG",
111
+ "NG",
112
+ "CMEGlobex_Dutch_NatGas",
113
+ "CMEGlobex_TTF",
114
+ "TTF",
115
+ "CMEGlobex_LastDay_NatGas",
116
+ "CMEGlobex_NN",
117
+ "NN",
118
+ "CMEGlobex_CarbonOffset",
119
+ "CMEGlobex_CGO",
120
+ "CGO",
121
+ "C-GEO",
122
+ "CMEGlobex_NGO",
123
+ "NGO",
124
+ "CMEGlobex_GEO",
125
+ "GEO",
126
+ "CMEGlobex_Metals",
127
+ "CMEGlobex_PreciousMetals",
128
+ "CMEGlobex_Gold",
129
+ "CMEGlobex_GC",
130
+ "GC",
131
+ "CMEGlobex_Silver",
132
+ "CMEGlobex_SI",
133
+ "SI",
134
+ "CMEGlobex_Platinum",
135
+ "CMEGlobex_PL",
136
+ "PL",
137
+ "CMEGlobex_BaseMetals",
138
+ "CMEGlobex_Copper",
139
+ "CMEGlobex_HG",
140
+ "HG",
141
+ "CMEGlobex_Aluminum",
142
+ "CMEGlobex_ALI",
143
+ "ALI",
144
+ "CMEGlobex_Copper",
145
+ "CMEGlobex_QC",
146
+ "QC",
147
+ "CMEGlobex_FerrousMetals",
148
+ "CMEGlobex_HRC",
149
+ "HRC",
150
+ "CMEGlobex_BUS",
151
+ "BUS",
152
+ "CMEGlobex_TIO",
153
+ "TIO",
154
+ ]
155
+
156
+ regular_market_times = {
157
+ "market_open": ((None, time(17), -1),), # Sunday offset. Central Timezone (CT)
158
+ "market_close": ((None, time(16)),),
159
+ }
160
+
161
+ @property
162
+ def name(self):
163
+ return "CMEGlobex_EnergyAndMetals"
164
+
165
+ @property
166
+ def regular_holidays(self):
167
+ return AbstractHolidayCalendar(
168
+ rules=[
169
+ USNewYearsDay,
170
+ GoodFriday,
171
+ ChristmasCME,
172
+ ]
173
+ )
174
+
175
+ # @property
176
+ # def adhoc_holidays(self):
177
+ # return USNationalDaysofMourning
178
+
179
+ @property
180
+ def special_closes(self):
181
+ return [
182
+ (
183
+ time(12, tzinfo=timezone("America/Chicago")),
184
+ AbstractHolidayCalendar(
185
+ rules=[
186
+ USMartinLutherKingJrPre2022,
187
+ USPresidentsDayPre2022,
188
+ USMemorialDayPre2022,
189
+ USIndependenceDayPre2022,
190
+ USLaborDay,
191
+ USThanksgivingDayPre2022,
192
+ ]
193
+ ),
194
+ ),
195
+ (
196
+ time(12, 45, tzinfo=timezone("America/Chicago")),
197
+ AbstractHolidayCalendar(
198
+ rules=[
199
+ FridayAfterThanksgiving,
200
+ ]
201
+ ),
202
+ ),
203
+ (
204
+ time(13, 30, tzinfo=timezone("America/Chicago")),
205
+ AbstractHolidayCalendar(
206
+ rules=[
207
+ USMartinLutherKingJrFrom2022,
208
+ USPresidentsDayFrom2022,
209
+ USMemorialDayFrom2022,
210
+ USJuneteenthFrom2022,
211
+ USIndependenceDayFrom2022,
212
+ USThanksgivingDayFrom2022,
213
+ ]
214
+ ),
215
+ ),
216
+ ]
@@ -1,123 +1,123 @@
1
- from datetime import time
2
-
3
- from pandas.tseries.holiday import AbstractHolidayCalendar
4
- from pytz import timezone
5
-
6
- from pandas_market_calendars.holidays.cme import (
7
- USMartinLutherKingJrAfter1998Before2015,
8
- USMartinLutherKingJrAfter2015,
9
- USPresidentsDayBefore2015,
10
- USPresidentsDayAfter2015,
11
- GoodFridayBefore2021NotEarlyClose,
12
- GoodFriday2010,
13
- GoodFriday2012,
14
- GoodFriday2015,
15
- GoodFriday2021,
16
- GoodFriday2022,
17
- GoodFridayAfter2022,
18
- USMemorialDay2013AndPrior,
19
- USMemorialDayAfter2013,
20
- USIndependenceDayBefore2022PreviousDay,
21
- USIndependenceDayBefore2014,
22
- USIndependenceDayAfter2014,
23
- USLaborDayStarting1887Before2014,
24
- USLaborDayStarting1887After2014,
25
- USThanksgivingBefore2014,
26
- USThanksgivingAfter2014,
27
- USThanksgivingFriday,
28
- )
29
- from pandas_market_calendars.holidays.us import (
30
- USNewYearsDay,
31
- ChristmasEveInOrAfter1993,
32
- Christmas,
33
- USJuneteenthAfter2022,
34
- )
35
- from .cme_globex_base import CMEGlobexBaseExchangeCalendar
36
-
37
-
38
- class CMEGlobexEquitiesExchangeCalendar(CMEGlobexBaseExchangeCalendar):
39
- aliases = ["CME Globex Equity"]
40
-
41
- regular_market_times = {
42
- "market_open": ((None, time(17), -1),), # offset by -1 day
43
- "market_close": ((None, time(16)),),
44
- }
45
-
46
- @property
47
- def tz(self):
48
- return timezone("America/Chicago")
49
-
50
- @property
51
- def name(self):
52
- """
53
- Name of the market
54
-
55
- :return: string name
56
- """
57
- return "CME Globex Equities"
58
-
59
- @property
60
- def regular_holidays(self):
61
- return AbstractHolidayCalendar(
62
- rules=[
63
- USNewYearsDay,
64
- GoodFridayBefore2021NotEarlyClose,
65
- GoodFriday2022,
66
- Christmas,
67
- ]
68
- )
69
-
70
- @property
71
- def special_closes(self):
72
- # Source https://www.cmegroup.com/tools-information/holiday-calendar.html
73
- return [
74
- (
75
- time(10, 30),
76
- AbstractHolidayCalendar(
77
- rules=[
78
- USMartinLutherKingJrAfter1998Before2015,
79
- USPresidentsDayBefore2015,
80
- USMemorialDay2013AndPrior,
81
- USIndependenceDayBefore2014,
82
- USLaborDayStarting1887Before2014,
83
- USThanksgivingBefore2014,
84
- ]
85
- ),
86
- ),
87
- (
88
- time(12, 15),
89
- AbstractHolidayCalendar(
90
- rules=[
91
- USIndependenceDayBefore2022PreviousDay,
92
- USThanksgivingFriday,
93
- ChristmasEveInOrAfter1993,
94
- ]
95
- ),
96
- ),
97
- (
98
- time(12),
99
- AbstractHolidayCalendar(
100
- rules=[
101
- USMartinLutherKingJrAfter2015,
102
- USPresidentsDayAfter2015,
103
- USMemorialDayAfter2013,
104
- USIndependenceDayAfter2014,
105
- USLaborDayStarting1887After2014,
106
- USThanksgivingAfter2014,
107
- USJuneteenthAfter2022,
108
- ]
109
- ),
110
- ),
111
- (
112
- time(8, 15),
113
- AbstractHolidayCalendar(
114
- rules=[
115
- GoodFriday2010,
116
- GoodFriday2012,
117
- GoodFriday2015,
118
- GoodFriday2021,
119
- GoodFridayAfter2022,
120
- ]
121
- ),
122
- ),
123
- ]
1
+ from datetime import time
2
+
3
+ from pandas.tseries.holiday import AbstractHolidayCalendar
4
+ from pytz import timezone
5
+
6
+ from pandas_market_calendars.holidays.cme import (
7
+ USMartinLutherKingJrAfter1998Before2015,
8
+ USMartinLutherKingJrAfter2015,
9
+ USPresidentsDayBefore2015,
10
+ USPresidentsDayAfter2015,
11
+ GoodFridayBefore2021NotEarlyClose,
12
+ GoodFriday2010,
13
+ GoodFriday2012,
14
+ GoodFriday2015,
15
+ GoodFriday2021,
16
+ GoodFriday2022,
17
+ GoodFridayAfter2022,
18
+ USMemorialDay2013AndPrior,
19
+ USMemorialDayAfter2013,
20
+ USIndependenceDayBefore2022PreviousDay,
21
+ USIndependenceDayBefore2014,
22
+ USIndependenceDayAfter2014,
23
+ USLaborDayStarting1887Before2014,
24
+ USLaborDayStarting1887After2014,
25
+ USThanksgivingBefore2014,
26
+ USThanksgivingAfter2014,
27
+ USThanksgivingFriday,
28
+ )
29
+ from pandas_market_calendars.holidays.us import (
30
+ USNewYearsDay,
31
+ ChristmasEveInOrAfter1993,
32
+ Christmas,
33
+ USJuneteenthAfter2022,
34
+ )
35
+ from .cme_globex_base import CMEGlobexBaseExchangeCalendar
36
+
37
+
38
+ class CMEGlobexEquitiesExchangeCalendar(CMEGlobexBaseExchangeCalendar):
39
+ aliases = ["CME Globex Equity"]
40
+
41
+ regular_market_times = {
42
+ "market_open": ((None, time(17), -1),), # offset by -1 day
43
+ "market_close": ((None, time(16)),),
44
+ }
45
+
46
+ @property
47
+ def tz(self):
48
+ return timezone("America/Chicago")
49
+
50
+ @property
51
+ def name(self):
52
+ """
53
+ Name of the market
54
+
55
+ :return: string name
56
+ """
57
+ return "CME Globex Equities"
58
+
59
+ @property
60
+ def regular_holidays(self):
61
+ return AbstractHolidayCalendar(
62
+ rules=[
63
+ USNewYearsDay,
64
+ GoodFridayBefore2021NotEarlyClose,
65
+ GoodFriday2022,
66
+ Christmas,
67
+ ]
68
+ )
69
+
70
+ @property
71
+ def special_closes(self):
72
+ # Source https://www.cmegroup.com/tools-information/holiday-calendar.html
73
+ return [
74
+ (
75
+ time(10, 30),
76
+ AbstractHolidayCalendar(
77
+ rules=[
78
+ USMartinLutherKingJrAfter1998Before2015,
79
+ USPresidentsDayBefore2015,
80
+ USMemorialDay2013AndPrior,
81
+ USIndependenceDayBefore2014,
82
+ USLaborDayStarting1887Before2014,
83
+ USThanksgivingBefore2014,
84
+ ]
85
+ ),
86
+ ),
87
+ (
88
+ time(12, 15),
89
+ AbstractHolidayCalendar(
90
+ rules=[
91
+ USIndependenceDayBefore2022PreviousDay,
92
+ USThanksgivingFriday,
93
+ ChristmasEveInOrAfter1993,
94
+ ]
95
+ ),
96
+ ),
97
+ (
98
+ time(12),
99
+ AbstractHolidayCalendar(
100
+ rules=[
101
+ USMartinLutherKingJrAfter2015,
102
+ USPresidentsDayAfter2015,
103
+ USMemorialDayAfter2013,
104
+ USIndependenceDayAfter2014,
105
+ USLaborDayStarting1887After2014,
106
+ USThanksgivingAfter2014,
107
+ USJuneteenthAfter2022,
108
+ ]
109
+ ),
110
+ ),
111
+ (
112
+ time(8, 15),
113
+ AbstractHolidayCalendar(
114
+ rules=[
115
+ GoodFriday2010,
116
+ GoodFriday2012,
117
+ GoodFriday2015,
118
+ GoodFriday2021,
119
+ GoodFridayAfter2022,
120
+ ]
121
+ ),
122
+ ),
123
+ ]