pandas-market-calendars 4.1.3__py3-none-any.whl → 4.2.0__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-4.1.3.dist-info → pandas_market_calendars-4.2.0.dist-info}/METADATA +200 -187
  2. pandas_market_calendars-4.2.0.dist-info/NOTICE +206 -0
  3. pandas_market_calendars-4.2.0.dist-info/RECORD +6 -0
  4. {pandas_market_calendars-4.1.3.dist-info → pandas_market_calendars-4.2.0.dist-info}/WHEEL +1 -1
  5. pandas_market_calendars/__init__.py +0 -37
  6. pandas_market_calendars/calendar_registry.py +0 -47
  7. pandas_market_calendars/calendar_utils.py +0 -225
  8. pandas_market_calendars/class_registry.py +0 -111
  9. pandas_market_calendars/exchange_calendar_asx.py +0 -63
  10. pandas_market_calendars/exchange_calendar_bmf.py +0 -227
  11. pandas_market_calendars/exchange_calendar_bse.py +0 -409
  12. pandas_market_calendars/exchange_calendar_cboe.py +0 -115
  13. pandas_market_calendars/exchange_calendar_cme.py +0 -240
  14. pandas_market_calendars/exchange_calendar_cme_globex_agriculture.py +0 -109
  15. pandas_market_calendars/exchange_calendar_cme_globex_base.py +0 -106
  16. pandas_market_calendars/exchange_calendar_cme_globex_energy_and_metals.py +0 -146
  17. pandas_market_calendars/exchange_calendar_cme_globex_equities.py +0 -104
  18. pandas_market_calendars/exchange_calendar_cme_globex_fixed_income.py +0 -114
  19. pandas_market_calendars/exchange_calendar_cme_globex_fx.py +0 -78
  20. pandas_market_calendars/exchange_calendar_eurex.py +0 -119
  21. pandas_market_calendars/exchange_calendar_hkex.py +0 -408
  22. pandas_market_calendars/exchange_calendar_ice.py +0 -65
  23. pandas_market_calendars/exchange_calendar_iex.py +0 -98
  24. pandas_market_calendars/exchange_calendar_jpx.py +0 -98
  25. pandas_market_calendars/exchange_calendar_lse.py +0 -91
  26. pandas_market_calendars/exchange_calendar_nyse.py +0 -1127
  27. pandas_market_calendars/exchange_calendar_ose.py +0 -150
  28. pandas_market_calendars/exchange_calendar_sifma.py +0 -300
  29. pandas_market_calendars/exchange_calendar_six.py +0 -114
  30. pandas_market_calendars/exchange_calendar_sse.py +0 -290
  31. pandas_market_calendars/exchange_calendar_tase.py +0 -119
  32. pandas_market_calendars/exchange_calendar_tsx.py +0 -159
  33. pandas_market_calendars/exchange_calendars_mirror.py +0 -114
  34. pandas_market_calendars/holidays_cme.py +0 -341
  35. pandas_market_calendars/holidays_cme_globex.py +0 -169
  36. pandas_market_calendars/holidays_cn.py +0 -1436
  37. pandas_market_calendars/holidays_jp.py +0 -362
  38. pandas_market_calendars/holidays_nyse.py +0 -1474
  39. pandas_market_calendars/holidays_oz.py +0 -65
  40. pandas_market_calendars/holidays_sifma.py +0 -321
  41. pandas_market_calendars/holidays_uk.py +0 -177
  42. pandas_market_calendars/holidays_us.py +0 -364
  43. pandas_market_calendars/jpx_equinox.py +0 -147
  44. pandas_market_calendars/market_calendar.py +0 -770
  45. pandas_market_calendars-4.1.3.dist-info/RECORD +0 -45
  46. {pandas_market_calendars-4.1.3.dist-info → pandas_market_calendars-4.2.0.dist-info}/LICENSE +0 -0
  47. {pandas_market_calendars-4.1.3.dist-info → pandas_market_calendars-4.2.0.dist-info}/top_level.txt +0 -0
@@ -1,1127 +0,0 @@
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
- from itertools import chain
18
-
19
- import pandas as pd
20
- from pandas.tseries.holiday import AbstractHolidayCalendar
21
- from pytz import timezone
22
-
23
- from pandas_market_calendars.holidays_nyse import (
24
- # Always Celebrated Holidays
25
- USNewYearsDayNYSEpost1952, USNewYearsDayNYSEpre1952, SatBeforeNewYearsAdhoc,
26
-
27
- USPresidentsDay, USWashingtonsBirthDay1964to1970,
28
- USWashingtonsBirthDayBefore1952, USWashingtonsBirthDay1952to1963,
29
- USLincolnsBirthDayBefore1954, LincolnsBirthDayAdhoc,
30
- SatBeforeWashingtonsBirthdayAdhoc, SatAfterWashingtonsBirthdayAdhoc,
31
- SatBeforeAfterLincolnsBirthdayAdhoc, GrantsBirthDayAdhoc,
32
-
33
- USMartinLutherKingJrAfter1998,
34
-
35
- GoodFriday, GoodFridayPre1898, GoodFriday1899to1905, SatAfterGoodFridayAdhoc,
36
-
37
- USMemorialDay, USMemorialDayBefore1952, USMemorialDay1952to1964, USMemorialDay1964to1969,
38
- SatBeforeDecorationAdhoc, SatAfterDecorationAdhoc,
39
- DayBeforeDecorationAdhoc,
40
-
41
- USJuneteenthAfter2022,
42
-
43
- USIndependenceDay, USIndependenceDayPre1952, USIndependenceDay1952to1954,
44
- SatBeforeIndependenceDayAdhoc, SatAfterIndependenceDayAdhoc,
45
- MonTuesThursBeforeIndependenceDay, FridayAfterIndependenceDayNYSEpre2013,
46
- WednesdayBeforeIndependenceDayPost2013,
47
- MonBeforeIndependenceDayAdhoc, DaysAfterIndependenceDayAdhoc,
48
- # DaysBeforeIndependenceDay1pmEarlyCloseAdhoc,
49
-
50
- USColumbusDayBefore1954, USElectionDay1848to1967,
51
-
52
- USLaborDayStarting1887, SatBeforeLaborDayAdhoc,
53
-
54
- USThanksgivingDay, USThanksgivingDay1939to1941,
55
- USThanksgivingDayBefore1939,
56
- DayAfterThanksgiving2pmEarlyCloseBefore1993,
57
- DayAfterThanksgiving1pmEarlyCloseInOrAfter1993,
58
- FridayAfterThanksgivingAdHoc,
59
-
60
- USElectionDay1968to1980Adhoc,
61
-
62
- ChristmasNYSE, Christmas54to98NYSE, ChristmasBefore1954,
63
- ChristmasEvesAdhoc, DayAfterChristmasAdhoc, DayAfterChristmas1pmEarlyCloseAdhoc,
64
- ChristmasEvePost1999Early1pmClose,
65
- ChristmasEve1pmEarlyCloseAdhoc, ChristmasEve2pmEarlyCloseAdhoc,
66
- SatBeforeChristmasAdhoc, SatAfterChristmasAdhoc,
67
-
68
- # Retired Holidays
69
- USVetransDayAdHoc, SatAfterColumbusDayAdHoc, USVeteransDay1934to1953,
70
-
71
- # Adhoc Holidays
72
- # 1885
73
- UlyssesGrantFuneral1885,
74
- # 1892
75
- ColumbianCelebration1892,
76
- # 1888
77
- GreatBlizzardOf1888,
78
- # 1889
79
- WashingtonInaugurationCentennialCelebration1889,
80
- # 1898
81
- CharterDay1898, WelcomeNavalCommander1898,
82
- # 1899
83
- AdmiralDeweyCelebration1899, GarretHobartFuneral1899,
84
- # 1901
85
- McKinleyDeathAndFuneral1901, QueenVictoriaFuneral1901,
86
- MovedToProduceExchange1901, EnlargedProduceExchange1901,
87
- # 1902
88
- KingEdwardVIIcoronation1902,
89
- # 1903
90
- NYSEnewBuildingOpen1903,
91
- # 1908
92
- GroverClevelandFuneral1pmClose1908,
93
- # 1909
94
- HudsonFultonCelebration1909,
95
- # 1910
96
- KingEdwardDeath11amyClose1910, KingEdwardFuneral12pmOpen1910,
97
- # 1912
98
- JamesShermanFuneral1912,
99
- # 1913
100
- JPMorganFuneral12pmOpen1913, WilliamGaynorFuneral12pmOpen1913,
101
- # 1914
102
- OnsetOfWWI1914,
103
- # 1917
104
- WeatherHeatClosing1917, ParadeOfNationalGuardEarlyClose1917,
105
- LibertyDay12pmEarlyClose1917, DraftRegistrationDay1917,
106
- # 1918
107
- WeatherNoHeatClosing1918, DraftRegistrationDay1918,
108
- LibertyDay12pmEarlyClose1918, FalseArmisticeReport1430EarlyClose1918,
109
- ArmisticeSigned1918,
110
- # 1919
111
- RooseveltFuneral1230EarlyClose1919, Homecoming27Division1919,
112
- ParadeOf77thDivision1919, BacklogRelief1919, GeneralPershingReturn1919,
113
- TrafficBlockLateOpen1919,
114
- # 1920
115
- TrafficBlockLateOpen1920, OfficeLocationChange1920,
116
- WallStreetExplosionEarlyClose1920,
117
- # 1921
118
- AnnunciatorBoardFire1pmLateOpen1921,
119
- # 1923
120
- HardingDeath1923, HardingFuneral1923,
121
- # 1924
122
- WoodrowWilsonFuneral1230EarlyClose1924,
123
- # 1925
124
- EclipseOfSunLateOpen1925, CromwellFuneral1430EarlyClose1925,
125
- # 1927
126
- LindberghParade1927,
127
- # 1928
128
- BacklogRelief1928, BacklogRelief2pmEarlyClose1928,
129
- # 1929
130
- BacklogRelief1929, BacklogRelief1pmEarlyClose1929, BacklogRelief12pmLateOpen1929,
131
- # 1930
132
- TaftFuneral1230EarlyClose1930,
133
- # 1933
134
- CoolidgeFuneral1933,
135
- BankHolidays1933, GasFumesOnTradingFloor1230EarlyClose1933,
136
- HeavyVolume1933, HeavyVolume12pmLateOpen1933, HeavyVolume11amLateOpen1933,
137
- HeavyVolume2pmEarlyClose1933, NRAdemonstration12pmEarlyClose1933,
138
- # 1924
139
- Snow11amLateOpen1934,
140
- # 1936
141
- KingGeorgeVFuneral11amLateOpen1936,
142
- # 1944
143
- SatClosings1944,
144
- # 1945
145
- RooseveltDayOfMourning1945, SatClosings1945, VJday1945, NavyDay1945,
146
- # 1946
147
- RailroadStrike1946, SatClosings1946,
148
- # 1947
149
- SatClosings1947,
150
- # 1948
151
- SatClosings1948, SevereWeather1948,
152
- # 1949
153
- SatClosings1949,
154
- # 1950
155
- SatClosings1950,
156
- # 1951
157
- SatClosings1951,
158
- # 1952
159
- SatClosings1952,
160
- # 1960
161
- Snow11amLateOpening1960,
162
- # 1963
163
- KennedyAssassination1407EarlyClose,
164
- KennedyFuneral1963,
165
- # 1964
166
- HooverFuneral1400EarlyClose1964,
167
- # 1965
168
- PowerFail1105LateOpen,
169
- # 1966
170
- TransitStrike2pmEarlyClose1966,
171
- # 1967
172
- Snow1015LateOpen1967,
173
- Snow2pmEarlyClose1967,
174
- Backlog2pmEarlyCloses1967,
175
- # 1968
176
- Backlog2pmEarlyCloses1968,
177
- MLKdayOfMourning1968,
178
- PaperworkCrisis1968,
179
- # 1969 - 1970
180
- PaperworkCrisis2pmEarlyCloses1969,
181
- SnowClosing1969, Snow11amLateOpen1969,
182
- EisenhowerFuneral1969, Storm1045LateOpen1969,
183
- PaperworkCrisis230pmEarlyCloses1969, FirstLunarLandingClosing1969,
184
- PaperworkCrisis3pmEarlyCloses1969to1970,
185
- # 1972
186
- TrumanFuneral1972,
187
- # 1973
188
- JohnsonFuneral1973,
189
- Ice11amLateOpen1973,
190
- # 1974
191
- MerrillLynchComputer1015LateOpen1974, FireDrill1015LateOpen1974,
192
- # 1975
193
- Snow230EarlyClose1975,
194
- # 1976
195
- Storm1115LateOpen1976, FireDrill1015LateOpen1976,
196
- HurricaneWatch3pmEarlyClose1976,
197
- # 1977
198
- NewYorkCityBlackout77,
199
- # 1978
200
- Snow12pmLateOpen1978, Snow2pmEarlyClose1978, Snow11amLateOpen1978,
201
- # 1981
202
- ReaganAssassAttempt317pmEarlyClose1981,
203
- ConEdPowerFail328pmEarlyClose1981,
204
- # 1985
205
- HurricaneGloriaClosings1985,
206
- # 1987
207
- Backlog2pmEarlyCloses1987, Backlog230pmEarlyCloses1987,
208
- Backlog3pmEarlyCloses1987, Backlog330pmEarlyCloses1987,
209
- # 1989
210
- Fire11amLateOpen1989,
211
- # 1990
212
- ConEdXformer931amLateOpen1990,
213
- # 1991
214
- TroopsInGulf931LateOpens1991,
215
- # 1994
216
- Snow230pmEarlyClose1994,
217
- NixonFuneral1994,
218
- # 1995
219
- Computer1030LateOpen1995,
220
- # 1996
221
- Snow11amLateOpen1996,
222
- Snow2pmEarlyClose1996,
223
- # 1997
224
- CircuitBreakerTriggered330pmEarlyClose1997,
225
- # 2001
226
- September11Closings2001,
227
- Sept11MomentSilence933amLateOpen2001,
228
- EnduringFreedomMomentSilence931amLateOpen2001,
229
- # 2002
230
- Sept11Anniversary12pmLateOpen2002,
231
- # 2003
232
- IraqiFreedom932amLateOpen2003,
233
- # 2004
234
- ReaganMomentSilence932amLateOpen2004,
235
- ReaganMourning2004,
236
- # 2005
237
- SystemProb356pmEarlyClose2005,
238
- # 2006
239
- FordMomentSilence932amLateOpen2006,
240
- # 2007
241
- FordMourning2007,
242
- # 2012
243
- HurricaneSandyClosings2012,
244
- # 2018
245
- GeorgeHWBushDeath2018
246
- )
247
- from .market_calendar import MarketCalendar
248
-
249
- # Useful resources for making changes to this file:
250
- # http://www.nyse.com/pdfs/closings.pdf
251
- # http://www.stevemorse.org/jcal/whendid.html
252
-
253
- # Overwrite the default holiday calendar start_date of 1/1/70
254
- AbstractHolidayCalendar.start_date = '1885-01-01'
255
-
256
- class NYSEExchangeCalendar(MarketCalendar):
257
- """
258
- Exchange calendar for NYSE from 1885-01-01
259
- - Note: DJIA was first recorded 1885-02-16
260
-
261
- REFERENCES:
262
- - https://web.archive.org/web/20141224054812/http://www.nyse.com/about/history/timeline_trading.html
263
- - https://www.marketwatch.com/story/a-brief-history-of-trading-hours-on-wall-street-2015-05-29
264
- - http://www.ltadvisors.net/Info/research/closings.pdf
265
- - https://github.com/rsheftel/pandas_market_calendars/files/6827110/Stocks.NYSE-Closings.pdf
266
-
267
- NYSE OVERVIEW:
268
- - 1792: 5 securities traded
269
- - 1871: Continuous trading begins
270
- - 1885 to 1887: trading hours Mon-Sat 10am to variable 2pm thru 4pm (coded as 3pm)
271
- - 1887: trading hours Mon-Fri 10am-3pm Sat 10am-noon
272
- - 1952-09-29: trading hours Mon-Fri 10am-3:30pm,
273
- - Sat trading removed after Sept 27
274
- - Last effective Saturday traded was May 24, 1952
275
- - 1974: trading hours Mon-Fri 10am-4pm
276
- - 1985: trading hours Mon-Fri 9:30am-4pm
277
-
278
- #######################################
279
- Regularly-Observed Holidays as of 2021:
280
- #######################################
281
- - New Years Day (observed on monday when Jan 1 is a Sunday)
282
- - Martin Luther King Jr. Day (3rd Monday in January, only after 1998)
283
- - Lincoln's Birthday (February 12th, only before 1954 starting in 1896)
284
- - Washington's Birthday (February 22nd, before 1971 with rule change in 1964)
285
- - Washington's Birthday (aka President's Day, 3rd Monday in February, after 1970)
286
- - Good Friday (two days before Easter Sunday)
287
- - Memorial Day (May 30th, before 1970, with rule change in 1964)
288
- - Memorial Day (last Monday in May, after 1970)
289
- - Independence Day (July 4th Sunday to Monday, before 1954)
290
- - Independence Day (observed on the nearest weekday to July 4th, after 1953)
291
- - Election Day (First Tuesday starting on November 2nd, between 1848 and 1967)
292
- - Election Day (Every four years, first Tuesday starting on November 2nd, between 1968 and 1980)
293
- - Veterans Day (November 11th, between 1934 and 1953)
294
- - Columbus Day (October 12th, before 1954)
295
- - Labor Day (first Monday in September)
296
- - Thanksgiving (last Thursday in November, before 1939)
297
- - Thanksgiving (second to last Thursday in November, between 1939 and 1941)
298
- - Thanksgiving (fourth Thursday in November, after 1941)
299
- - Christmas (December 25th, Sunday to Monday, before 1954)
300
- - Christmas (observed on nearest weekday to December 25, after 1953)
301
-
302
- ################################
303
- Regularly-Observed Early Closes:
304
- ################################
305
- - July 3rd (Mondays, Tuesdays, and Thursdays, 1995 onward)
306
- - July 5th (Fridays, 1995 onward, except 2013)
307
- - Christmas Eve (except on Fridays, when the exchange is closed entirely)
308
- - Day After Thanksgiving (aka Black Friday, observed from 1992 onward)
309
-
310
- NOTE: Until 1993, the standard early close time for the NYSE was 2:00 PM.
311
- From 1993 onward, it has been 1:00 PM.
312
-
313
- ####################################
314
- Retired Regularly-Observed Holidays:
315
- ####################################
316
- - Columbus Day (after 1953)
317
- - Armistice/Veterans Day (after 1953)
318
-
319
- #################################
320
- Irregularities Openings/Closings:
321
- #################################
322
- begin reference: https://github.com/rsheftel/pandas_market_calendars/files/6827110/Stocks.NYSE-Closings.pdf
323
- - Closed on Aug 8, 1885 (Sat): President Ulysses S. Grant funeral
324
- - Closed on Jul 2, 1887 (Sat): Saturday before Independence Day
325
- - Closed on Dec 24, 1887 (Sat): Christmas Eve
326
- - Closed on Mar 12-13, 1888 (Mon-Tue): Blizzard of 1888
327
- - Closed on Sep 1, 1888 (Sat): Saturday before Labor Day
328
- - Closed on Nov 30, 1888 (Fri): Friday after Thanksgiving
329
- - Closed on Apr 29 - May 1, 1889 (Mon-Wed): Centennial celbration of Washington's inauguration
330
- - Closed on Jul 5, 1890 (Sat): Saturday after Independence Day
331
- - Closed on Dec 26, 1891 (Sat): Saturday after Christmas
332
- - Closed on Jul 2, 1892 (Sat): Saturday before Independence Day
333
- - Closed on Oct 12, 1892 (Wed) Columbian Celebration (Columbus discovery of America)
334
- - Closed on Oct 21-22, 1892 (Fri-Sat): Columbian Celebration
335
- - Closed on Apr 27, 1893 (Thu): Columbian Celebration
336
- - Closed on Dec 26, 1896 (Sat): Saturday after Christmas
337
- - Closed on Apr 27, 1897 (Tue): Grant's birthday
338
- - Closed on May 4, 1898 (Wed): NYC Charter Day
339
- - Closed on Jul 2, 1898 (Sat): Saturday before Independence Day
340
- - Closed on Aug 20, 1898 (Sat): Welcome of naval commanders
341
- - Closed on Sep 3, 1898 (Sat): Saturday before Labor Day
342
- - Closed on Dec 24, 1898 (Sat): Saturday before Christmas
343
- - Closed on Feb 11, 1899 (Sat): Saturday before Lincoln's birthday
344
- - Closed on May 29, 1899 (Mon): Monday before Decoration Day
345
- - Closed on Jul 3, 1899 (Mon): Monday before Independence Day
346
- - Closed on Sep 29-30, 1899 (Fri-Sat): Admiral Dewey Celebration
347
- - Closed on Nov 25, 1899 (Sat): Funeral of Vice-President Garret A. Hobart
348
- - Closed on Apr 14, 1900 (Sat): Saturday after Good Friday
349
- - Closed on Sep 1, 1900 (Sat): Saturday before Labor Day
350
- - Closed on Dec 24, 1900 (Mon): Christmas Eve
351
- - Closed on Feb 2, 1901 (Sat): Funderal of Queen Victoria of England
352
- - Closed on Feb 23, 1901 (Sat): Saturday after Washington's birthday
353
- - Closed on Apr 6, 1901 (Sat): Saturday after Good Friday
354
- - Closed on Apr 27, 1901 (Sat): Moved to temporary quarters in Produce Exchange
355
- - Closed on May 11, 1901 (Sat): Enlarged temporary quarters in Produce Exchange
356
- - Closed on Jul 5-6, 1901 (Fri-Sat): Days after Independence Day
357
- - Closed on Aug 31, 1901 (Sat): Saturday before Labor Day
358
- - Closed on Sep 14, 1901 (Sat): Death of President William McKinley
359
- - Closed on Sep 19, 1901 (Thu): Funeral of President William McKinley
360
- - Closed on Mar 29, 1902 (Sat): Saturday after Good Friday
361
- - Closed on May 31, 1902 (Sat): Saturday after Decoration Day
362
- - Closed on Jul 5, 1902 (Sat): Saturday after Independence Day
363
- - Closed on Aug 9, 1902 (Sat): Coronation of King Edward VII of England
364
- - Closed on Aug 30, 1902 (Sat): Saturday before Labor Day
365
- - Closed on Feb 21, 1903 (Sat): Saturday before Washington's birthday
366
- - Closed on Apr 11, 1903 (Sat): Saturday after Good Friday
367
- - Closed on Apr 22, 1903 (Wed): Opening of the new NYSE building
368
- - Closed on Sep 5, 1903 (Sat): Saturday before Labor Day
369
- - Closed on Dec 26, 1903 (Sat): Saturday after Christmas
370
- - Closed on May 28, 1904 (Sat): Saturday before Decoration Day
371
- - Closed on Jul 2, 1904 (Sat): Saturday before Independence Day
372
- - Closed on Sep 3, 1904 (Sat): Saturday before Labor Day
373
- - Closed on Dec 24, 1904 (Sat): Saturday before Christmas
374
- - Closed on Apr 22, 1905 (Sat): Saturday after Good Friday
375
- - Closed on Feb 23, 1907 (Sat): Saturday after Washington's birthday
376
- - Closed on Mar 30, 1907 (Sat): Saturday after Good Friday
377
- - Closed on Aug 31, 1907 (Sat): Saturday before Labor Day
378
- - Closed on Apr 18, 1908 (Sat): Saturday after Good Friday
379
- - Early Close 1pm on Jun 25, 1908 (Fri): Former President Grover Cleveland funeral
380
- - Closed on Sep 5, 1908 (Sat): Saturday before Labor Day
381
- - Closed on Dec 26, 1908 (Sat): Saturday after Christmas
382
- - Closed on Feb 13, 1909 (Sat): Saturday after Lincoln's birthday
383
- - Closed on Apr 10, 1909 (Sat): Saturday after Good Friday
384
- - Closed on May 29, 1909 (Sat): Saturday before Decoration Day
385
- - Closed on Jul 3, 1909 (Sat): Saturday before Independence Day
386
- - Closed on Sep 4, 1909 (Sat) Saturday before Labor Day
387
- - Closed on Sep 25, 1909 (Sat): Reception Day of the Hudson-Fulton Celebration
388
- - Closed on Mar 26, 1910 (Sat): Saturday after Good Friday
389
- - Early Close 11am on May 7, 1910 (Sat): King Edward VII of England Death
390
- - Late Open 12pm on May 20, 1910 (Fri): King Edward VII of England Funeral
391
- - Closed on May 28, 1910 (Sat): Saturday before Decoration Day
392
- - Closed on Jul 2, 1910 (Sat): Saturday before Independence Day
393
- - Closed on Sep 3, 1910 (Sat): Saturday before Labor Day
394
- - Closed on Dec 24, 1910 (Sat): Saturday before Christmas
395
- - Closed on Apr 15, 1911 (Sat): Saturday after Good Friday
396
- - Closed on Sep 2, 1911 (Sat): Saturday before Labor Day
397
- - Closed on Dec 23, 1911 (Sat): Saturday before Christmas
398
- - Closed on Aug 31, 1912 (Sat): Saturday before Labor Day
399
- - Closed on Nov 2, 1912 (Sat): Vice-President James S. Sherman funeral
400
- - Closed on Mar 22, 1913 (Sat): Saturday after Good Friday
401
- - Late Open 12pm on Apr 14, 1913 (Mon): JP Morgan funeral
402
- - Closed on May 31, 1913 (Sat): Saturday after Decoration Day
403
- - Closed on Jul 5, 1913 (Sat): Saturday after Independence Day
404
- - Closed on Aug 30, 1913 (Sat): Saturday before Labor Day
405
- - Late Open 12pm on Sep 22, 1913 (Mon): Mayor William J. Gaynor funeral
406
- - Closed on Jul 31-Dec 11, 1914: Pending outbreak of World War I.
407
- - Bonds reopn Nov 28, 1914 for limited trading with restrictions
408
- - Stocks (limited in number) reopen Dec 12, 1914 with restrictions
409
- - Stocks (all stocks) reopen Dec 14, 1914 with restrictions
410
- - Restrictions removed on Apr 1, 1915
411
- - Closed on Dec 30, 1916 (Sat): Saturday before New Year's Day
412
- - Closed on Jun 5, 1917 (Tue): Draft Registraion Day
413
- - Closed on Aug 4, 1917 (Sat): Heat
414
- - Early Close 12pm on Aug 29, 1917 (Wed): Parade of National Guard
415
- - Closed on Sep 1, 1917 (Sat): Saturday before Labor Day
416
- - Closed on Oct 13, 1917 (Sat): Saturday after Columbus Day
417
- - Early Close 12pm on Oct 24, 1917 (Wed): Liberty Day
418
- - Closed on Jan 28, 1918 (Mon): Heatless day
419
- - Closed on Feb 4, 1918 (Mon): Heatless day
420
- - Closed on Feb 11, 1918 (Mon): Heatless day
421
- - Early Close 12pm on Apr 26, 1918 (Fri): Liberty Day
422
- - NOT IMPLEMENTED: Break from 11am to 12pm on Jul 11, 1918 (Thu): Former Mayor John Purroy Mitchell funeral
423
- - Closed on Sep 12, 1918 (Thu): Draft registration day
424
- - Early Close 2:30pm on Nov 7, 1918 (Thu): False armistice report
425
- - Closed on Nov 11, 1918 (Mon): Armistice signed
426
- - Early Close 12:30pm on Jan 7, 1919 (Tue): Former President Theodore Roosevelt funeral
427
- - Closed on Mar 25, 1919 (Tue): Homecoming of 27th Division
428
- - Closed on May 6, 1919 (Tue): Parade of 77th Division
429
- - Closed on May 31, 1919 (Sat): Saturday after Decoratin Day
430
- - Closed on Jul 5, 1919 (Sat): Saturday after Independence Day
431
- - Closed on Jul 19, 1919 (Sat): Heat and backlog catch up
432
- - Closed on Aug 2, 1919 (Sat): Backlog catch up
433
- - Closed on Aug 16, 1919 (Sat): Backlog catch up
434
- - Closed on Aug 30, 1919 (Sat): Saturday before Labor Day
435
- - Closed on Sep 10, 1919 (Wed): Return of General John J. Pershing
436
- - Late Open 10:30am on Dec 30, 1919 (Tue): Traffic block
437
- - Late Open 10:30am on Feb 6, 1920 (Fri): Traffic block
438
- - Closed on Apr 3, 1920 (Sat): Saturday after Good Friday
439
- - Closed on May 1, 1920 (Sat): Many firms changed office locations
440
- - Closed on Jul 3, 1920 (Sat): Saturday before Independence Day
441
- - Closed on Sep 4, 1920 (Sat): Saturday before Labor Day
442
- - Early Close 12pm on Sep 16, 1920 (Thu): Wall Street explosion
443
- - Closed on May 28, 1921 (Sat): Saturday before Decoration Day
444
- - Closed on Jul 2, 1921 (Sat): Saturday before Independence Day
445
- - Late Open 1pm on Aug 2, 1921 (Tue): Fire in annunciator board
446
- - Closed on Sep 3, 1921 (Sat): Saturday before Labor Day
447
- - Closed on Dec 23, 1922 (Sat): Saturday before Christmas
448
- - Closed on Aug 3, 1923 (Fri): President Warren G. Harding death
449
- - NOT IMPLEMENTED: Break 11am to 12:30pm on Aug 8, 1923 (Wed): President Warren G. Harding funeral
450
- - Closed on Aug 10, 1923 (Fri): President Warren G. Harding funeral
451
- - Early Close 12:30pm on Feb 6, 1924 (Wed): Former President Woodrow Wilson funderal
452
- - Closed on May 31, 1924 (Sat): Saturday after Decoration Day
453
- - Late Open 10:45am on Jan 24, 1925 (Sat): Eclipse of sun
454
- - Early Close 2:30pm on Sep 18, 1925 (Fri): Seymour L. Cromwell funeral (former NYSE president)
455
- - Closed on Dec 26, 1925 (Sat): Saturday after Christmas
456
- - Closed on May 29, 1926 (Sat): Saturday before Decoration Day
457
- - Closed on Jul 3, 1926 (Sat): Saturday before Independence Day
458
- - Closed on Sep 4, 1926 (Sat): Saturday before Labor Day
459
- - Closed on Jun 13, 1927 (Mon): Colonel Charles A. Lindberg parade
460
- - Closed on Apr 7, 1928 (Sat): Backlog catch up
461
- - Closed on Apr 21, 1928 (Sat): Backlog catch up
462
- - Closed on May 5, 1928 (Sat): Backlog catch up
463
- - Closed on May 12, 1928 (Sat): Backlog catch up
464
- - Closed on May 19, 1928 (Sat): Backlog catch up
465
- - Early Closes May 21-25, 1928 (Mon-Fri): Backlog catch up
466
- - Closed on May 26, 1928 (Sat): Backlog catch up
467
- - Closed on Nov 24, 1928 (Sat): Backlog catch up
468
- - Closed on Feb 9, 1929 (Sat): Backlog catch up
469
- - Closed on Feb 23, 1929 (Sat): Saturday after Washington's birthday
470
- - Closed on Mar 30, 1929 (Sat): Saturday after Good Friday
471
- - Closed on Aug 31, 1929 (Sat): Saturday before Labor Day
472
- - Late Open 12pm on Oct 31, 1929 (Thu): Backlog catch up and relieve personnel
473
- - Closed on Nov 1-2, 1929 (Fri-Sat): Backlog catch up and relieve personnel
474
- - Early Closes 1pm on Nov 6-8, 1929 (Wed-Fri): Backlog catch up and relieve personnel
475
- - Closed on Nov 9, 1929 (Sat): Backlog catch up and relieve personnel
476
- - Early Closes 1pm on Nov 11-15, 1929 (Mon-Fri): Backlog catch up and relieve personnel
477
- - Closed on Nov 16, 1929 (Sat): Backlog catch up and relieve personnel
478
- - Closed on Nov 18-22, 1929 (Mon-Fri): Backlog catch up and relieve personnel
479
- - Closed on Nov 23, 1929 (Sat): Backlog catch up and relieve personnel
480
- - Closed on Nov 29-30, 1929 (Fri-Sat): Backlog catch up and relieve personnel
481
- - Early Close 12:30pm on Mar 11, 1930 (Tue): Former President William Howard Taft funeral
482
- - Closed on Apr 19, 1930 (Sat): Saturday after Good Friday
483
- - Closed on May 31, 1930 (Sat): Saturday after Decoration Dday
484
- - Closed on Jul 5, 1930 (Sat): Saturday after Independence Day
485
- - Closed on Aug 30, 1930 (Sat): Saturday before Labor Day
486
- - Closed on Sep 5, 1931 (Sat): Saturday before Labor Day
487
- - Closed on Dec 26, 1931 (Sat): Saturday after Christmas
488
- - Closed on Jul 2, 1932 (Sat): Saturday before Independence Day
489
- - Closed on Jan 7, 1933 (Sat): Former President Calvin Coolidge funeral
490
- - Closed on Mar 4, 1933 (Sat): State banking holiday
491
- - Closed on Mar 6-14, 1933 (Mon-Tue): National banking holiday
492
- - Late Open 12pm on Jul 24-25, 1933 (Mon-Tue): Volume activity
493
- - Late Opens AND Early Closes on Jul 26-28, 1933 (Wed-Fri): Volume activity
494
- - Closed on July 29, 1933 (Sat): Volume activity
495
- - Early Close 12:30pm on Aug 4, 1933 (Fri): Gas fumes on trading floor
496
- - Closed on Aug 5, 1933 (Sat): Volume activity
497
- - Closed on Aug 12, 1933 (Sat): Volume activity
498
- - Closed on Aug 19, 1933 (Sat): Volume activity
499
- - Closed on Aug 26, 1933 (Sat): Volume activity
500
- - Closed on Sep 2, 1933 (Sat): Volume activity
501
- - Early Close 12pm on Sep 13, 1933 (Wed): NRA demonstration
502
- - Late Open 11am on Feb 20, 1934 (Tue): severe snowstorm
503
- - Late Open 11am on Jan 28, 1936 (Tue): King George V of England funeral
504
- - Closed on Dec 26, 1936 (Sat): Saturday after Christmas
505
- - Closed on May 29, 1937 (Sat): Saturday before Decoration Day
506
- - Closed on Jul 3, 1937 (Sat): Saturday before Independence Day
507
- - NOT IMPLEMENTED Break from 12-13:00 on May 18, 1942 (Mon): NYSE 150th anniversary
508
- - NOT IMPLEMENTED Break from 14:32-14:58 on Oct 22, 1942 (Thu): Civil Defense drill
509
- - NOT IMPLEMENTED Break from 14:38-14:59 on Oct 26, 1943 (Tue): Civil Defense drill
510
- - Reopened from 15:20-15:40 under special rule of the Board
511
- - Closed on Aug 19, 1944 (Sat)
512
- - Closed on Aug 26, 1944 (Sat)
513
- - Closed on Sep 2, 1944 (Sat)
514
- - Closed on Apr 14, 1945 (Sat): President Franklin D. Roosevelt National Day of mourning
515
- - NOT IMPLEMENTED Break 11:00-13:00 on Jun 19, 1945 (Tue): Parade for General Eisenhower
516
- - Closed on Saturdays Jul 7-Sep 1, 1945
517
- - Closed on Aug 15-16, 1945 (Wed-Thu): VJ Day. End of World War II
518
- - Closed on Oct 13, 1945 (Sat): Saturday after Columbus Day
519
- - Closed on Oct 27, 1945 (Sat): Navy Day
520
- - Closed on Dec 24, 1945 (Mon): Christmas Eve
521
- - Closed on Feb 23, 1946 (Sat): Saturday after Washington's birthday
522
- - Closed on May 25, 1946 (Sat): Railroad strike
523
- - Closed on Saturdays Jun 1-Sep 28, 1946 (Sat-Sat)
524
- - Closed on Saturdays May 31-Sep 27, 1947 (Sat-Sat)
525
- - Closed on Jan 3, 1948 (Sat): severe weather
526
- - Closed on Saturdays May 29-Sep 25, 1948 (Sat-Sat)
527
- - Closed on Saturdays May 28-Sep 4, 1948 (Sat-Sat)
528
- - Cosed on Dec 24, 1949 (Sat): Christmas Eve
529
- - Closed on Saturdays Jun 3-Sep 30, 1950 (Sat-Sat)
530
- - Closed on Dec 12, 1950 (Sat): Saturday before Christmas Eve
531
- - NOT IMPLEMENTED Break from 11:00-13:00 on Apr 20, 1951 (Fri): Parade for General MacArthur
532
- - Closed on Saturdays Jun 2-Sep 29, 1951 (Sat-Sat)
533
- - NOT IMPLEMENTED Break from 10:33-11:05 (Wed): Civil Defense Drill
534
- - Early Close 1pm on Dec 24, 1951 (Mon): Christmas Eve
535
- - Closed on Saturdays May 31-Sep 27, 1952 (Sat-Sat)
536
- - As of Sep 29, 1952 Saturdays were retired as trading days
537
- - As of Sep 29, 1952, M-F trading closes at 3:30pm (30 minutes longer)
538
- - NOT IMPLEMENTED Break 10:02-10:32 on Jun 14, 1954 (Mon): Civil Defense drill
539
- - Closed on Dec 24, 1954 (Fri): Christmas Eve
540
- - NOT IMPLEMENTED Break 14:05-14:35 on Jun 15, 1955 (Wed): Civil Defense drill
541
- - Closed on Dec 24, 1956 (Mon): Christmas Eve
542
- - NOT IMPLEMENTED Break 13:45-14:15 on Jul 12, 1957 (Fri): Civil Defense drill
543
- - NOT IMPLEMENTED Break 10:30-10:50 on May 6, 1958 (Tue): Civil Defense drill
544
- - Closed on Dec 26, 1958 (Fri): Day after Christmas
545
- - NOT IMPLEMENTED Break 13:30-13:50 on Apr 17, 1959 (Fri): Civil Defense drill
546
- - NOT IMPLEMENTED Break 14:16-14:40 on May 3, 1960 (Tue): Civil Defense drill
547
- - Late Open 11:00 on Dec 12, 1960 (Mon): severe snowstorm
548
- - Closed on May 29, 1961 (Mon): Day before Decoration Day
549
- - Early Close 14:07 on Nov 22, 1963 (Fri): President John F. Kennedy assassintion
550
- - Closed on Nov 25, 1963 (Mon): President John F. Kennedy funeral
551
- - Early Close 14:00 on Oct 23, 1964 (Fri): Former President Herbert C. Hoover funeral
552
- - NOT IMPLEMENTED Break 11:00-11:02 on Jan 25, 1965 (Mon): Sir Winston Churchill 2 minutes of silence
553
- - Late Open 11:05 on Nov 10, 1965 (Wed): Power failure in NY grid supply
554
- - Closed on Dec 24, 1965 (Fri): Christmas Eve
555
- - Early Closes 14:00 on Jan 6-14, 1966 (Thu-Fri): Transit strike
556
- - NOT IMPLEMENTED Break 13:00-13:01 on Feb 3, 1967 (Fri): Apollo I disaster moment of silence
557
- - Late Open 10:15 AND Early Close 14:00 on Feb 7, 1967 (Tue): snowstorm
558
- - NOT IMPLEMENTED Break 12:58-13:13 on May 17, 1967 (Wed): Vice President Humphrey spoke in honor of NYSE's 175th anniversary
559
- - Early Closes 14:00 on Aug 8-18, 1967 (Tue-Fri): Backlog catch up
560
- - Early Closes 14:00 on Jan 22-Mar 1, 1968 (Mon-Fri): Backlog catch up
561
- - Closed on Feb 12, 1968 (Mon): Lincoln's birthday (offices open, trading closed)
562
- - NOT IMPLEMENTED Break 11:00-11:01 on Apr 5, 1968 (Fri): Dr. Martin Luther King, Jr. moment of silence
563
- - Closed on Apr 9, 1968 (Tue): Martin Luther King, Jr. day or mourning
564
- - NOT IMPLEMENTED Break 11:00-11:02 on Jun 6, 1968 (Fri): Senator Robert F. Kennedy moment of silence
565
- - 4 day workweek Closed on a Wednesday OR Holiday from Jun 12-Dec 31, 1968: Paperwork crisis
566
- - Closed on July 5, 1968 (Fri): Day after Independence Day
567
- - Early Closes 14:00 on Jan 2-Jul 3, 1969: Paperwork Crisis
568
- - Closed on Feb 10, 1969 (Mon): heavy snow
569
- - Late open 11am on Feb 11, 1969 (Tue): heavy snow
570
- - NOT IMPLEMENTED Break 13:30-13:32 on Mar 28, 1969 (Fri): Former President Dwight D. Eisenhower moment of silence
571
- - Closed on Mar 31, 1969 (Mon): Former President Dwight D. Eisenhower funeral
572
- - Late Open 10:45 on Jun 2, 1969 (Mon): storm
573
- - Early Closes 14:30 on Jul 7-Sep 26,1969 (Mon-Fri): Paperwork Crisis
574
- - Closed on Jul 21, 1969 (Mon): National Day of Participation for lunar exploration
575
- - NOT IMPLEMENTED Break 12:35-13:05 on Sep 3, 1969 (Wed): power failure
576
- - Early Closes 15:00 on Sep 29, 1969 to May 1, 1970: Paperwork Crisis
577
- - Closed on Dec 28, 1972 (Thu): Former President Harry S. Truman funeral
578
- - Closed on Jan 25, 1973 (Thu): Former President Lyndon B. Johnson funeral
579
- - Late Open 11am on Dec 17, 1973 (Mon): ice storm
580
- - Late Open 10:15 on Jan 16, 1974 (Wed): Merrill Lynch computer trouble
581
- - NOT IMPLEMENTED Break 11:09-11:35 on Apr 10, 1974 (Wed): computer malfunction
582
- - NOT IMPLEMENTED Break 11:46-12:22 on Oct 15, 1974 (Wed): Ticker down at 11:37 to 12:22
583
- - Late Open 10:15 on Nov 22, 1974 (Fri): Fire drill
584
- - Early Close 14:00 on Dec 24, 1974 (Tue): Christmas Eve
585
- - NOT IMPLEMENTED Break 10:07-10:50 on Jan 7, 1975 (Tue): Computer stopped
586
- - NOT IMPLEMENTED Break 13:24-13:45 on Jan 15, 1975 (Wed): Computer stopped
587
- - NOT IMPLEMENTED Break 10:24-11:00 on Feb 7, 1975 (Fri): Computer failure
588
- - Early Close 14:30 on Feb 12, 1975 (Wed): snowstorm
589
- - NOT IMPLEMENTED Break 10:09-10:35 on Apr 9, 1975 (Wed): Computer stopped
590
- - Early Close 14:00 on Dec 24, 1975 (Wed): Christmas Eve
591
- - Late Open 11:15 on Feb 2, 1976 (Mon): storm
592
- - Late Open UNKNOWN (coded as 10:15) on Jun 8, 1976 (Tue): fire drill
593
- - Early Close 15:00 on Aug 9, 1976 (Mon): hurricane watch
594
- - NOT IMPLEMENTED Break 1 minute time UNKNOWN on Nov 4, 1976 (Thu): Former NYSE Chair Gustave L. Levy moment of silence
595
- - NOT IMPLEMENTED Break 11:00-11:01 on Feb 24, 1977 (Thu): Former NYSE Chair John A. Coleman moment of silence
596
- - NOT IMPLEMENTED Break 10:24-11:45 on Mar 1, 1977 (Tue): Fire on moving ramp between trading floor and Blue Room
597
- - Closed on July 14, 1977 (Thu): Power failure in NYC
598
- - Late Open 12pm on Jan 20, 1978 (Fri): snowstorm
599
- - Early Close 2pm on Feb 6, 1978 (Mon): snowstorm
600
- - Late Open 11am on Feb 7, 1978 (Tue): snowstorm
601
- - NOT IMPLEMENTED Break 1 minute time UNKNOWN on Dec 13, 1979 (Thu): Former NYSE Chair Robert L. Stott minute of silence
602
- - NOT IMPLEMENTED Break 11:11-12:04 on Oct 13, 1980 (Mon): Computer malfunction
603
- - NOT IMPLEMENTED Break 1 minute time UNKNOWN on Dec 30, 1980 (Tue): Former NYSE Chair James Crane Kellogg III moment of silence
604
- - Early Close 3:17pm on Mar 30, 1981 (Mon): President Reagan assassination attempt
605
- - Early Close 3:28pm on Sep 9, 1981 (Wed): Con Edison power failure
606
- - NOT IMPLEMENTED Break 12:26-12:45pm on Sep 16, 1981 (Wed): Fire alarm malfunction
607
- - NOT IMPLEMENTED Break 10:25-11:00am on Dec 28, 1982 (Tue): small fire
608
- - NOT IMPLEMENTED Break 13:51-15:30 on Oct 13, 1983 (Thu): low speed ticker malfunction
609
- - Closed on Sep 27, 1985 (Fri): Hurricane Gloria
610
- - NOT IMPLEMENTED Break 11:00-11:01 on Jan 29, 1986 (Wed): Challenger space crew moment of silence
611
- - Early Closes 2pm on Oct 23-30, 1987 (Fri-Fri): October 19th break volume
612
- - Early Closes 2:30pm on Nov 2-4, 1987 (Mon-Wed): reason not given volume assumed
613
- - Early Closes 3pm on Nov 5-6, 1987 (Thu-Fri): reason not given volume assumed
614
- - Early Closes 3:30pm on Nov 9-11, 1987 (Mon-Wed): Trading floor and clerical staff strike
615
- - Late Open 11am on Nov 10, 1989 (Fri): Electrical fire
616
- - NOT IMPLEMENTED Break 9:41-11:15 on Nov 23, 1990 (Fri): Internal power failure
617
- - Early Close 2pm on Dec 24, 1990 (Mon): Christmas Eve
618
- - Late Open 11am on Dec 27, 1990 (Thu): explosion of Con Edison transformer
619
- - Late Open 9:31am on Jan 17, 1991 (Thu): American troops in Persian Gulf moment of silence
620
- - Late Open 9:31am on Feb 25, 1991 (Thu): American troops in Persian Gulf moment of silence
621
- - NOT IMPLEMENTED Break 10:21-10:45am on Oct 22, 1991 (Tue): power dip
622
- - Early Close 2pm on Dec 24, 1991 (Tue): Christmas Eve
623
- - NOT IMPLEMENTED Break 1 minute time UNKNOWN on Mar 19, 1992 (Thu): Former NYSE Chair Bernard J. Lasker moment of silence
624
- - NOT IMPLEMENTED Break 1 minute time UNKNOWN on May 15, 1992 (Fri): Former NYSE President G. Keith Funston moment of silence
625
- - NOT IMPELMENTED Break 1 minute time UNKNOWN on Jun 15, 1992 (Mon): Former NYSE President Robert W. Haack moment of silence
626
- - Early Close 2pm on Nov 27, 1992 (Fri): Day after Thanksgiving
627
- - Early Close 2pm on Dec 24, 1992 (Thu): Christmas Eve
628
- - Early Close 1pm on Nov 26, 1993 (Fri): Day after Thanksgiving
629
- - Early Close 14:30 on Feb 11, 1994 (Fri): snowstorm
630
- - NOT IMPLEMENTED Break 12:00-12:02 on Apr 25, 1994 (Mon): Former President Richard M. Nixon moment of silence
631
- - Closed on Apr 27, 1994 (Wed): Former President Richard M. Nixon funderal
632
- - Early Close 1pm on Nov 25, 1994 (Fri): Day after Thanksgiving
633
- - NOT IMPLEMENTED Break 10:02-10:03 on Apr 26, 1995 (Wed): Oklahoma City bombing victims moment of silence
634
- - Early Close 1pm on Jul 3, 1995 (Mon): Day before Independence Day
635
- - Early Close 1pm on Nov 24, 1995 (Fri): Day after Thanksgiving
636
- - Late Open 10:30am on Dec 18, 1995 (Mon): Computer system troubles
637
- - Late Open 11am AND Early Close 2pm on Jan 8, 1996 (Mon): snowstorm
638
- - NOT IMPLEMENTED Break time UNKNOWN on Apr 4, 1996 (Thu): Commerce Secretary Ron Brown and others killed in Balkans plane crash
639
- - Early Close 1pm on July 5, 1996 (Fri): Day after Independence Day
640
- - Early Close 1pm on Nov 29, 1996 (Fri): Day after Thanksgiving
641
- - Early Close 1pm on Dec 24, 1996 (Tue): Christmas Eve
642
- - Early Close 1pm on Jul 3, 1997 (Thu): Day before Independence Day
643
- - NOT IMPLEMENTED Break 14:35-15:05 on Oct 27, 1997 (Mon): Circuit breaker triggered
644
- - Early Close 3:30pm on Oct 27, 1997 (Mon): Circuit breaker triggered
645
- - Early Close 1pm on Nov 28, 1997 (Fri): Day after Thanksgiving
646
- - Early Close 1pm on Dec 24, 1997 (Wed): Christmas Eve
647
- - Early Close 1pm on Dec 26, 1997 (Fri): Friday after Christmas
648
- - NOT IMPLEMENTED Break time UNKNOWN on Jul 29, 1998 (Wed): Former NYSE President William McChesney Marting, Jr. moment of silence
649
- - NOT IMPLEMENTED Break 13:16-14:15 on Oct 26, 1998 (Mon): Computer switch malfunction
650
- - Early Close 1pm on Nov 27, 1998 (Fri): Day after Thanksgiving
651
- - Early Close 1pm on Dec 24, 1998 (Thu): Christmas Eve
652
- - NOT IMPLEMENTED Break 10:00-10:02 on Mar 25, 1999 (Thu): NATO troops in Kosovo minute of silence
653
- - NOT IMPLEMENTED Break 12:00-12:02 on Apr 26, 1999 (Mon): Columbine High School killings moment of silence
654
- - Early Close 1pm on Nov 26, 1999 (Fri): Day after Thanksgiving
655
- - Early Close 1pm on Dec 24, 1999 (Fri): Christmas Eve
656
- - NOT IMPLEMENTED Break 12:00-12:01 on Feb 16, 2000 (Wed): Former NYSE Chair Walter N. Frank moment of silence
657
- - NOT IMPLEMENTED Break 12:00-12:01 on May 4, 2000 (Thu): Archbishop of NY Cardinal John O'Connor moment of silence
658
- - Early Close 1pm on Jul 3, 2000 (Mon): Day before Independence Day
659
- - Early Close 1pm on Nov 24, 2000 (Fri): Day after Thanksgiving
660
- - NOT IMPLEMENTED Break 10:10-11:35 on Jun 8, 2001 (Fri): computer systems connectivity problem
661
- - Early Close 1pm on Jul 3, 2001 (Tue): Day before Independence Day
662
- - Closed on Sep 11-14, 2001 (Tue-Fri): Terrorist attack on World Trade Center
663
- - Late Open 9:33am on Sep 17, 2001 (Mon): 2 minutes silence in honor of lives lost on 9/11
664
- - Late Open 9:31am on Oct 8, 2001 (Mon): 1 minute silence for troops engaged in Operation Enduring Freedom
665
- - Early Close 1pm on Nov 23, 2001 (Fri): Day after Thanksgiving
666
- - Early Close 1pm on Dec 24, 2001 (Mon): Christmas Eve
667
- - NOT IMPLEMENTED Break 10:29-10:31 on May 30, 2002 (Thu): Commemorate end of recovery work at Ground Zero
668
- - Early Close 1pm on Jul 5, 2002 (Fri): Day after Independence Day
669
- - Late Opening 12:00pm on Sep 11, 2002 (Wed): 1 year anniversary of 9/11 attack
670
- - Early Close 1pm on Nov 29, 2002 (Fri): Day after Thanksgiving
671
- - Early Close 1pm on Dec 24, 2002 (Tue): Christmas Eve
672
- - NOT IMPLEMENTED Break 11:00-11:02 on Feb 3, 2002 (Mon): Columbia Space Shuttle lives lost moment of silence
673
- - Late Opening 9:32am on Mar 20, 2003 (Thu): Operation Iraqi Freedom Troops moment of silence
674
- - Early Close 1pm on Jul 3, 2003 (Thu): Day before Independence Day
675
- - NOT IMPLEMENTED multiple 1-minute Breaks 9:59 and 10:29 on Sep 11, 2003 (Thu): 9/11 Commemoration
676
- - Early Close 1pm on Nov 28, 2003 (Fri): Day after Thanksgiving
677
- - Early Close 1pm on Dec 24, 2003 (Wed): Christmas Eve
678
- - Early Close 1pm on Dec 26, 2003 (Fri): Friday after Christmas
679
- - Late Open 9:32am on Jun 7, 2004 (Mon): Former President Ronald Reagan death moment of silence
680
- - Closed on Jun 11, 2004 (Fri): Former President Ronald Reagan National Day of Mourning
681
- - Early Close 1pm on Nov 26, 2004 (Fri): Day after Thanksgiving
682
- - Early Close 3:56pm on Jun 1, 2005 (Wed): Systems communication problem
683
- - Early Close 1pm on Nov 25, 2005 (Fri): Day after Thanksgiving
684
- - Early Close 1pm on Jul 3, 2006 (Mon): Day before Independence Day
685
- - Early Close 1pm on Nov 24, 2006 (Fri): Day after Thanksgiving
686
- - Late Open 9:32am on Dec 27, 2006 (Wed): Former President Gerald Ford moment of silence
687
- - Closed on Jan 2, 2007 (Tue): Former President Gerald Ford National Day of Mourning
688
- - Early Close 1pm on Jul 3, 2007 (Tue): Day before Independence Day
689
- - Early Close 1pm on Nov 23, 2007 (Fri): Day after Thanksgiving
690
- - Early Close 1pm on Dec 24, 2007 (Mon): Christmas Eve
691
- - Early Close 1pm on Jul 4, 2008 (Thu): Day before Independence Day
692
- - Early Close 1pm on Nov 28, 2008 (Fri): Day after Thanksgiving
693
- - Early Close 1pm on Dec 24, 2008 (Wed): Christmas Eve
694
- - NOT IMPLEMENTED Extended Close 4:15pm on Jul 2, 2009 (Thu): Execute customer orders impacted by system irregularities
695
- - Early Close 1pm on Nov 27, 2009 (Fri): Day after Thanksgiving
696
- - Early Close 1pm on Dec 24, 2009 (Thu): Christmas Eve
697
- - Early Close 1pm on Nov 26, 2010 (Fri): Day after Thanksgiving
698
- - NOT IMPLEMENTED Break 11:00-11:01 on Jan 10, 2011 (Mon): Arizona shooting victims moment of silence
699
-
700
- end of reference: https://github.com/rsheftel/pandas_market_calendars/files/6827110/Stocks.NYSE-Closings.pdf
701
- *******************************************************************
702
-
703
- https://www.streetinsider.com/Insiders+Blog/NYSE+Releases+2010+and+2011+Holiday+Calendar/4915576.html
704
- - Early Close 1pm on Nov 25, 2011 (Fri): Day after Thanksgiving
705
-
706
- https://holidaystracker.com/stock-market/new-york-stock-exchange-holidays-2012/
707
- - Early Close 1pm on Jul 4, 2012 (Tue): Day before Independence Day
708
- - Closed on 10/29/2012 and 10/30/2012 due to Hurricane Sandy.
709
- - Early Close 1pm on Nov 23, 2012 (Fri): Day after Thanksgiving
710
- - Early Close 1pm on Dec 24, 2012 (Mon): Christmas Eve
711
-
712
- https://holidaystracker.com/stock-market/new-york-stock-exchange-nyse-holidays-2013/
713
- - Early Close 1pm on Jul 3, 2013 (Wed): Day before Independence Day
714
- - Early Close 1pm on Nov 29, 2013 (Fri): Day after Thanksgiving
715
- - Early Close 1pm on Dec 24, 2013 (Tue): Christmas Eve
716
-
717
- https://www.streetinsider.com/Insiders+Blog/NYSE+2014+and+2015+Holiday+Hours/8999575.html - Early Close 1pm on Jul 3, 2014 (Thu): Day before Independence Day
718
- - Early Close 1pm on Jul 3, 2014 (Thu): Day before Independence Day
719
- - Early Close 1pm on Nov 28, 2014 (Fri): Day after Thanksgiving
720
- - Early Close 1pm on Dec 24, 2014 (Wed): Christmas Eve
721
-
722
- https://www.businesswire.com/news/home/20141208006349/en/NYSE-Group-2016-Holiday-Calendar-and-Early-Closings
723
- - Early Close 1pm on Nov 27, 2015 (Fri): Day after Thanksgiving
724
- - Early Close 1pm on Dec 24, 2015 (Thu): Christmas Eve
725
- - Early Close 1pm on Nov 25, 2016 (Fri): Day after Thanksgiving
726
-
727
- https://www.stockinvestor.com/30380/stock-market-holidays-2017/
728
- - Early Close 1pm on Jul 3, 2017 (Mon): Day before Independence Day
729
- - Early Close 1pm on Nov 24, 2017 (Fri): Day after Thanksgiving
730
- - Early Close 1pm on Jul 3, 2018 (Tue): Day before Independence Day
731
- - Early Close 1pm on Nov 23, 2018 (Fri): Day after Thanksgiving
732
- - Closed on 12/5/2018 due to George H.W. Bush's death.
733
- - Early Close 1pm on Dec 24, 2018 (Tue): Christmas Eve
734
- - Early Close 1pm on Jul 3, 2019 (Wed): Day before Independence Day
735
- - Early Close 1pm on Nov 29, 2019 (Fri): Day after Thanksgiving
736
- - Early Close 1pm on Dec 24, 2019 (Wed): Christmas Eve
737
-
738
- https://holidaystracker.com/stock-market/new-york-stock-exchange-nyse-holidays-2020/
739
- - Early Close 1pm on Nov 27, 2020 (Fri): Day after Thanksgiving
740
- - Early Close 1pm on Dec 24, 2020 (Thu): Christmas Eve
741
-
742
-
743
- NOTE: The exchange was **not** closed early on Friday December 26, 2008,
744
- nor was it closed on Friday December 26, 2014. The next Thursday Christmas
745
- will be in 2025. If someone is still maintaining this code in 2025, then
746
- we've done alright...and we should check if it's a half day.
747
-
748
- """
749
- aliases = ['NYSE', 'stock', 'NASDAQ', 'BATS', 'DJIA', 'DOW']
750
-
751
- regular_market_times = {
752
- "pre": ((None, time(4)),),
753
- "market_open": ((None, time(10)),
754
- ("1985-01-01", time(9, 30))),
755
- "market_close":((None, time(15)),
756
- ("1952-09-29", time(15, 30)),
757
- ("1974-01-01", time(16))),
758
- "post": ((None, time(20)),)
759
- }
760
-
761
- _saturday_close = time(12)
762
- _saturday_end = pd.Timestamp('1952-09-29', tz='UTC')
763
-
764
- @property
765
- def name(self):
766
- return "NYSE"
767
-
768
- @property
769
- def tz(self):
770
- return timezone("America/New_York")
771
-
772
- @property
773
- def weekmask(self):
774
- return "Mon Tue Wed Thu Fri Sat" #Market open on Saturdays thru 5/24/1952
775
-
776
- @property
777
- def regular_holidays(self):
778
- return AbstractHolidayCalendar(rules=[
779
- USNewYearsDayNYSEpost1952,
780
- USNewYearsDayNYSEpre1952,
781
- USMartinLutherKingJrAfter1998,
782
- USPresidentsDay,
783
- USWashingtonsBirthDayBefore1952,
784
- USWashingtonsBirthDay1952to1963,
785
- USWashingtonsBirthDay1964to1970,
786
- USLincolnsBirthDayBefore1954,
787
- GoodFriday,
788
- GoodFridayPre1898,
789
- GoodFriday1899to1905,
790
- USMemorialDay,
791
- USMemorialDayBefore1952,
792
- USMemorialDay1952to1964,
793
- USMemorialDay1964to1969,
794
- USIndependenceDay,
795
- USIndependenceDayPre1952,
796
- USIndependenceDay1952to1954,
797
- USLaborDayStarting1887,
798
- USColumbusDayBefore1954,
799
- USElectionDay1848to1967,
800
- USVeteransDay1934to1953,
801
- USThanksgivingDay,
802
- USThanksgivingDayBefore1939,
803
- USThanksgivingDay1939to1941,
804
- ChristmasNYSE,
805
- Christmas54to98NYSE,
806
- ChristmasBefore1954,
807
- USJuneteenthAfter2022,
808
- ])
809
-
810
- @property
811
- def adhoc_holidays(self):
812
- return list(chain(
813
- # Recurring Holidays
814
- SatAfterGoodFridayAdhoc,
815
- MonBeforeIndependenceDayAdhoc,
816
- SatBeforeIndependenceDayAdhoc,
817
- SatAfterIndependenceDayAdhoc,
818
- DaysAfterIndependenceDayAdhoc,
819
- SatBeforeLaborDayAdhoc,
820
- USElectionDay1968to1980Adhoc,
821
- FridayAfterThanksgivingAdHoc,
822
- SatBeforeChristmasAdhoc,
823
- SatAfterChristmasAdhoc,
824
- ChristmasEvesAdhoc,
825
- DayAfterChristmasAdhoc,
826
- # Retired
827
- USVetransDayAdHoc,
828
- SatAfterColumbusDayAdHoc,
829
- LincolnsBirthDayAdhoc,
830
- GrantsBirthDayAdhoc,
831
- SatBeforeNewYearsAdhoc,
832
- SatBeforeWashingtonsBirthdayAdhoc,
833
- SatAfterWashingtonsBirthdayAdhoc,
834
- SatBeforeAfterLincolnsBirthdayAdhoc,
835
- SatBeforeDecorationAdhoc,
836
- SatAfterDecorationAdhoc,
837
- DayBeforeDecorationAdhoc,
838
- # Irregularities
839
- UlyssesGrantFuneral1885,
840
- ColumbianCelebration1892,
841
- GreatBlizzardOf1888,
842
- WashingtonInaugurationCentennialCelebration1889,
843
- CharterDay1898,
844
- WelcomeNavalCommander1898,
845
- AdmiralDeweyCelebration1899,
846
- GarretHobartFuneral1899,
847
- QueenVictoriaFuneral1901,
848
- MovedToProduceExchange1901,
849
- EnlargedProduceExchange1901,
850
- McKinleyDeathAndFuneral1901,
851
- KingEdwardVIIcoronation1902,
852
- NYSEnewBuildingOpen1903,
853
- HudsonFultonCelebration1909,
854
- JamesShermanFuneral1912,
855
- OnsetOfWWI1914,
856
- WeatherHeatClosing1917,
857
- DraftRegistrationDay1917,
858
- WeatherNoHeatClosing1918,
859
- DraftRegistrationDay1918,
860
- ArmisticeSigned1918,
861
- Homecoming27Division1919,
862
- ParadeOf77thDivision1919,
863
- BacklogRelief1919,
864
- GeneralPershingReturn1919,
865
- OfficeLocationChange1920,
866
- HardingDeath1923,
867
- HardingFuneral1923,
868
- LindberghParade1927,
869
- BacklogRelief1928,
870
- BacklogRelief1929,
871
- CoolidgeFuneral1933,
872
- BankHolidays1933,
873
- HeavyVolume1933,
874
- SatClosings1944,
875
- RooseveltDayOfMourning1945,
876
- SatClosings1945,
877
- VJday1945,
878
- NavyDay1945,
879
- RailroadStrike1946,
880
- SatClosings1946,
881
- SatClosings1947,
882
- SatClosings1948,
883
- SevereWeather1948,
884
- SatClosings1949,
885
- SatClosings1950,
886
- SatClosings1951,
887
- SatClosings1952,
888
- KennedyFuneral1963,
889
- MLKdayOfMourning1968,
890
- PaperworkCrisis1968,
891
- SnowClosing1969,
892
- EisenhowerFuneral1969,
893
- FirstLunarLandingClosing1969,
894
- TrumanFuneral1972,
895
- JohnsonFuneral1973,
896
- NewYorkCityBlackout77,
897
- HurricaneGloriaClosings1985,
898
- NixonFuneral1994,
899
- ReaganMourning2004,
900
- FordMourning2007,
901
- September11Closings2001,
902
- HurricaneSandyClosings2012,
903
- GeorgeHWBushDeath2018,
904
- ))
905
- #
906
- @property
907
- def special_closes(self):
908
- return [
909
- (time(11, tzinfo=timezone('America/New_York')), AbstractHolidayCalendar(rules=[
910
- KingEdwardDeath11amyClose1910,
911
- ])),
912
- (time(12, tzinfo=timezone('America/New_York')), AbstractHolidayCalendar(rules=[
913
- ParadeOfNationalGuardEarlyClose1917,
914
- LibertyDay12pmEarlyClose1917,
915
- LibertyDay12pmEarlyClose1918,
916
- WallStreetExplosionEarlyClose1920,
917
- NRAdemonstration12pmEarlyClose1933,
918
- ])),
919
- (time(hour=12, minute=30, tzinfo=timezone('America/New_York')), AbstractHolidayCalendar(rules=[
920
- RooseveltFuneral1230EarlyClose1919,
921
- WoodrowWilsonFuneral1230EarlyClose1924,
922
- TaftFuneral1230EarlyClose1930,
923
- GasFumesOnTradingFloor1230EarlyClose1933,
924
- ])),
925
- (time(13, tzinfo=timezone('America/New_York')), AbstractHolidayCalendar(rules=[
926
- FridayAfterIndependenceDayNYSEpre2013,
927
- MonTuesThursBeforeIndependenceDay,
928
- WednesdayBeforeIndependenceDayPost2013,
929
- DayAfterThanksgiving1pmEarlyCloseInOrAfter1993,
930
- ChristmasEvePost1999Early1pmClose,
931
- GroverClevelandFuneral1pmClose1908,
932
- ])),
933
- (time(14, tzinfo=timezone('America/New_York')), AbstractHolidayCalendar(rules=[
934
- DayAfterThanksgiving2pmEarlyCloseBefore1993,
935
- HooverFuneral1400EarlyClose1964,
936
- Snow2pmEarlyClose1967,
937
- Snow2pmEarlyClose1978,
938
- Snow2pmEarlyClose1996,
939
- ])),
940
- (time(14, 7, tzinfo=timezone('America/New_York')), AbstractHolidayCalendar(rules=[
941
- KennedyAssassination1407EarlyClose,
942
- ])),
943
- (time(hour=14, minute=30, tzinfo=timezone('America/New_York')), AbstractHolidayCalendar(rules=[
944
- FalseArmisticeReport1430EarlyClose1918,
945
- CromwellFuneral1430EarlyClose1925,
946
- Snow230EarlyClose1975,
947
- Snow230pmEarlyClose1994,
948
- ])),
949
- (time(15, tzinfo=timezone('America/New_York')), AbstractHolidayCalendar(rules=[
950
- HurricaneWatch3pmEarlyClose1976,
951
- ])),
952
- (time(15, 17, tzinfo=timezone('America/New_York')), AbstractHolidayCalendar(rules=[
953
- ReaganAssassAttempt317pmEarlyClose1981,
954
- ])),
955
- (time(15, 28, tzinfo=timezone('America/New_York')), AbstractHolidayCalendar(rules=[
956
- ConEdPowerFail328pmEarlyClose1981,
957
- ])),
958
- (time(15, 30, tzinfo=timezone('America/New_York')), AbstractHolidayCalendar(rules=[
959
- CircuitBreakerTriggered330pmEarlyClose1997,
960
- ])),
961
- (time(15, 56, tzinfo=timezone('America/New_York')), AbstractHolidayCalendar(rules=[
962
- SystemProb356pmEarlyClose2005,
963
- ])),
964
- ]
965
- #
966
- @property
967
- def special_closes_adhoc(self):
968
- def _union_many(indexes):
969
- # Merges a list of pd.DatetimeIndex objects, returns merged DatetimeIndex
970
- union_index = pd.DatetimeIndex([], tz="UTC")
971
- for index in indexes:
972
- union_index = union_index.union(index)
973
- return union_index
974
-
975
- return [
976
- (time(13, tzinfo=timezone('America/New_York')),
977
- # DaysBeforeIndependenceDay1pmEarlyCloseAdhoc # list
978
- ChristmasEve1pmEarlyCloseAdhoc
979
- + DayAfterChristmas1pmEarlyCloseAdhoc
980
- + BacklogRelief1pmEarlyClose1929
981
- ),
982
- (time(14, tzinfo=timezone('America/New_York')), _union_many(
983
- [pd.DatetimeIndex(
984
- ChristmasEve2pmEarlyCloseAdhoc
985
- + HeavyVolume2pmEarlyClose1933)] +
986
-
987
- [BacklogRelief2pmEarlyClose1928,
988
- TransitStrike2pmEarlyClose1966, # index
989
- Backlog2pmEarlyCloses1967, # index
990
- Backlog2pmEarlyCloses1968, # index
991
- PaperworkCrisis2pmEarlyCloses1969, # index
992
- Backlog2pmEarlyCloses1987 ])# index
993
- ),
994
- (time(14, 30, tzinfo=timezone('America/New_York')), _union_many(
995
-
996
- [PaperworkCrisis230pmEarlyCloses1969,
997
- Backlog230pmEarlyCloses1987]) # index
998
- ),
999
- (time(15, tzinfo=timezone('America/New_York')), _union_many(
1000
-
1001
- [PaperworkCrisis3pmEarlyCloses1969to1970,
1002
- Backlog3pmEarlyCloses1987]) # index
1003
- ),
1004
- (time(15, 30, tzinfo=timezone('America/New_York')),
1005
- Backlog330pmEarlyCloses1987 # index
1006
- ),
1007
- ]
1008
-
1009
- #
1010
- @property
1011
- def special_opens(self):
1012
- return [
1013
- (time(hour=9, minute=31, tzinfo=timezone('America/New_York')), AbstractHolidayCalendar(rules=[
1014
- ConEdXformer931amLateOpen1990,
1015
- EnduringFreedomMomentSilence931amLateOpen2001,
1016
- ])),
1017
- (time(hour=9, minute=32, tzinfo=timezone('America/New_York')), AbstractHolidayCalendar(rules=[
1018
- IraqiFreedom932amLateOpen2003,
1019
- ReaganMomentSilence932amLateOpen2004,
1020
- FordMomentSilence932amLateOpen2006,
1021
- ])),
1022
- (time(hour=9, minute=33, tzinfo=timezone('America/New_York')), AbstractHolidayCalendar(rules=[
1023
- Sept11MomentSilence933amLateOpen2001,
1024
- ])),
1025
- (time(hour=10, minute=15, tzinfo=timezone('America/New_York')), AbstractHolidayCalendar(rules=[
1026
- Snow1015LateOpen1967,
1027
- MerrillLynchComputer1015LateOpen1974,
1028
- FireDrill1015LateOpen1974,
1029
- FireDrill1015LateOpen1976,
1030
- ])),
1031
- (time(hour=10, minute=30, tzinfo=timezone('America/New_York')), AbstractHolidayCalendar(rules=[
1032
- TrafficBlockLateOpen1919,
1033
- TrafficBlockLateOpen1920,
1034
- Computer1030LateOpen1995,
1035
- ])),
1036
- (time(hour=10, minute=45, tzinfo=timezone('America/New_York')), AbstractHolidayCalendar(rules=[
1037
- EclipseOfSunLateOpen1925,
1038
- Storm1045LateOpen1969,
1039
- ])),
1040
- (time(11, tzinfo=timezone('America/New_York')), AbstractHolidayCalendar(rules=[
1041
- Snow11amLateOpen1934,
1042
- KingGeorgeVFuneral11amLateOpen1936,
1043
- Snow11amLateOpening1960,
1044
- Snow11amLateOpen1969,
1045
- Ice11amLateOpen1973,
1046
- Snow11amLateOpen1978,
1047
- Fire11amLateOpen1989,
1048
- Snow11amLateOpen1996,
1049
- ])),
1050
- (time(11, 5, tzinfo=timezone('America/New_York')), AbstractHolidayCalendar(rules=[
1051
- PowerFail1105LateOpen,
1052
- ])),
1053
- (time(11, 15, tzinfo=timezone('America/New_York')), AbstractHolidayCalendar(rules=[
1054
- Storm1115LateOpen1976,
1055
- ])),
1056
- (time(12, tzinfo=timezone('America/New_York')), AbstractHolidayCalendar(rules=[
1057
- KingEdwardFuneral12pmOpen1910,
1058
- JPMorganFuneral12pmOpen1913,
1059
- WilliamGaynorFuneral12pmOpen1913,
1060
- Snow12pmLateOpen1978,
1061
- Sept11Anniversary12pmLateOpen2002,
1062
- ])),
1063
- (time(13, tzinfo=timezone('America/New_York')), AbstractHolidayCalendar(rules=[
1064
- AnnunciatorBoardFire1pmLateOpen1921,
1065
- ])),
1066
- ]
1067
-
1068
- #
1069
- @property
1070
- def special_opens_adhoc(self):
1071
- return [
1072
- (time(9, 31, tzinfo=timezone('America/New_York')), TroopsInGulf931LateOpens1991
1073
- ),
1074
- (time(11, tzinfo=timezone('America/New_York')), HeavyVolume11amLateOpen1933
1075
- ),
1076
- (time(12, tzinfo=timezone('America/New_York')),
1077
- BacklogRelief12pmLateOpen1929
1078
- + HeavyVolume12pmLateOpen1933
1079
- ),
1080
- ]
1081
-
1082
- # Override market_calendar.py
1083
- def valid_days(self, start_date, end_date, tz='UTC'):
1084
- """
1085
- Get a DatetimeIndex of valid open business days.
1086
-
1087
- :param start_date: start date
1088
- :param end_date: end date
1089
- :param tz: time zone in either string or pytz.timezone
1090
- :return: DatetimeIndex of valid business days
1091
- """
1092
- trading_days = super().valid_days(start_date, end_date, tz= tz)
1093
-
1094
- # Starting Monday Sept. 29, 1952, no more saturday trading days
1095
- if tz is None: saturday_end = self._saturday_end.tz_localize(None)
1096
- else: saturday_end = self._saturday_end
1097
-
1098
- above_cut_off = trading_days >= saturday_end
1099
- if above_cut_off.any():
1100
- above_and_saturday = (trading_days.weekday == 5) & above_cut_off
1101
- trading_days = trading_days[~above_and_saturday]
1102
-
1103
- return trading_days
1104
-
1105
-
1106
- def days_at_time(self, days, market_time, day_offset=0):
1107
- days = super().days_at_time(days, market_time, day_offset= day_offset)
1108
-
1109
- if market_time == "market_close" and not self.is_custom(market_time):
1110
- days = days.dt.tz_convert(self.tz)
1111
- days = days.where(days.dt.weekday != 5, days.dt.normalize()+ self._tdelta(self._saturday_close))
1112
- days = days.dt.tz_convert("UTC")
1113
- return days
1114
-
1115
- def early_closes(self, schedule):
1116
- """
1117
- Get a DataFrame of the dates that are an early close.
1118
-
1119
- :param schedule: schedule DataFrame
1120
- :return: schedule DataFrame with rows that are early closes
1121
- """
1122
- early = super().early_closes(schedule)
1123
-
1124
- # make sure saturdays are not considered early closes if they are >= 12pm
1125
- mc = early.market_close.dt.tz_convert(self.tz)
1126
- after_noon = (mc - mc.dt.normalize()).ge(self._tdelta(self._saturday_close))
1127
- return early[~(mc.dt.weekday.eq(5) & after_noon)]