return dt + timedelta(1) return dt #################################################### # US New Years Day Jan 1 # Closed every year since the stock market opened ##################################################### USNewYearsDayNYSEpost1952 = Holiday( 'New Years Day', month=1, day=1, start_date=Timestamp('1952-09-29'), # When Jan 1 is a Sunday, US markets observe the subsequent Monday. # When Jan 1 is a Saturday (as in 2005 and 2011), no holiday is observed. observance=sunday_to_monday, days_of_week=( MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, )) USNewYearsDayNYSEpre1952 = Holiday( 'New Years Day Before Saturday Trading Ceased', month=1, day=1, end_date=Timestamp('1952-09-28'), observance=sunday_to_monday, days_of_week=(
# Nearest workday makeups mon_makeups = holidays[holidays.weekday == SUNDAY] + timedelta(1) fri_makeups = holidays[holidays.weekday == SATURDAY] - timedelta(1) # Only observe rule after 2013 extras = pd.to_datetime(list(chain(mon, mon_makeups, fri, fri_makeups))) extras = extras[extras.year > 2013] return holidays.append(extras) NewYearsDay = new_years_day(observance=taiwan_makeup_rule) PeaceMemorialDay = Holiday( "Peace Memorial Day", month=2, day=28, observance=taiwan_makeup_rule, ) WomenAndChildrensDay = Holiday( "Women and Children's Day", month=4, day=4, start_date="2011", observance=taiwan_makeup_rule, ) LabourDay = european_labour_day(observance=sunday_to_monday) NationalDay = Holiday( "National Day of the Republic of China",
from pandas.tseries.holiday import ( Holiday, Easter, Day, GoodFriday, previous_friday, ) from pytz import timezone from .common_holidays import corpus_christi from .trading_calendar import (TradingCalendar, HolidayCalendar) # Universal Confraternization (new years day) ConfUniversal = Holiday( 'Dia da Confraternizacao Universal', month=1, day=1, ) # Sao Paulo city birthday AniversarioSaoPaulo = Holiday( 'Aniversario de Sao Paulo', month=1, day=25, ) # Carnival Monday CarnavalSegunda = Holiday('Carnaval Segunda', month=1, day=1, offset=[Easter(), Day(-48)]) # Carnival Tuesday CarnavalTerca = Holiday('Carnaval Terca',
MO, weekend_to_monday, previous_friday, GoodFriday, EasterMonday, ) from pytz import timezone from pandas.tseries.holiday import AbstractHolidayCalendar from .market_calendar import ( MarketCalendar, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY ) # New Year's Eve EUREXNewYearsEve = Holiday( "New Year's Eve", month=12, day=31, observance=previous_friday, ) # New Year's Day EUREXNewYearsDay = Holiday( "New Year's Day", month=1, day=1, days_of_week=(MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY), ) # Early May bank holiday MayBank = Holiday( "Early May Bank Holiday", month=5, offset=DateOffset(weekday=MO(1)), day=1,
christmas, boxing_day, new_years_eve, ) from .trading_calendar import HolidayCalendar, TradingCalendar, WEEKDAYS NewYearsDay = new_years_day() AscensionDay = ascension_day(end_date='2001') WhitMonday = whit_monday(end_date='2002') LabourDay = european_labour_day() BelgiumIndependenceDay = Holiday( 'Belgium Independence Day', month=7, day=21, end_date='2002', ) ChristmasEve = christmas_eve(days_of_week=WEEKDAYS) Christmas = christmas() BoxingDay = boxing_day() NewYearsEveBefore2002 = new_years_eve(end_date='2002') NewYearsEveInOrAfter2002 = new_years_eve( start_date='2002', days_of_week=WEEKDAYS, ) class XBRUExchangeCalendar(TradingCalendar):
GoodFriday, EasterMonday, ) from pytz import timezone from .trading_calendar import ( TradingCalendar, MONDAY, TUESDAY, HolidayCalendar ) # New Year's Day LSENewYearsDay = Holiday( "New Year's Day", month=1, day=1, observance=weekend_to_monday, ) # Early May bank holiday MayBank = Holiday( "Early May Bank Holiday", month=5, offset=DateOffset(weekday=MO(1)), day=1, ) # Spring bank holiday SpringBank = Holiday( "Spring Bank Holiday", month=5, day=31, offset=DateOffset(weekday=MO(-1)),
"2006-02-02", # Federal Territory Day made up b.c. Muharram "2004-01-21", # Chinese New Year extra day "2003-11-24", # Eid al-Fitr extra day "2003-02-04", # Chinese New Year extra day "2003-01-31", # Chinese New Year extra day "2002-04-25", # Installation of Yang di-Pertuan Agong "2002-02-11", # Chinese New Year extra day ]) NewYearsDay = new_years_day(observance=sunday_to_monday) Thaipusam = thaipusam FederalTerritoryDay = Holiday( "Federal Territory Day", month=2, day=1, observance=sunday_to_monday, ) ChineseNewYear = pd.to_datetime( chinese_lunar_new_year_dates.map(lambda d: sunday_to_monday(d))) ChineseNewYearDay2 = (ChineseNewYear + timedelta(1)).map(lambda d: sunday_to_monday(d)) LabourDay = european_labour_day(observance=sunday_to_monday) WesakDay = wesak_day NuzulAlQuran = malaysia_nuzul_al_quran.map(lambda d: sunday_to_monday(d))
date of holiday. """ day_of_week = dt.weekday() if day_of_week == SUNDAY: while is_holiday_or_weekend(holidays, dt): dt += timedelta(1) return dt NewYearsHolidayJan1 = new_years_day() NewYearsHolidayJan2 = Holiday( "New Year's Holiday (Jan 2)", month=1, day=2, ) NewYearsHolidayJan3 = Holiday( "New Year's Holiday (Jan 3)", month=1, day=3, ) ComingOfAgeDay = Holiday( "Coming of Age Day", month=1, day=1, offset=DateOffset(weekday=MO(2)), )
def not_2010(holidays): """ In 2010 Independence Day fell on a Saturday. Normally this would mean that Friday is a half day, but instead it is a full day off, so we need to exclude it from the usual half day rules. """ return holidays[holidays.year != 2010] NewYearsDay = new_years_day() MaundyThursday = maundy_thursday() MondayPriorToCorpusChristi = Holiday( "Monday Prior to Corpus Christi", month=1, day=1, offset=[Easter(), Day(57)], end_date="2008", ) LabourDay = european_labour_day() NavyDay = Holiday("Navy Day", month=5, day=21) SaintPeterAndSaintPaulDay = saint_peter_and_saint_paul_day( observance=nearest_monday, ) OurLadyOfMountCarmelDay = Holiday( "Our Lady of Mount Carmel's Day", month=7, day=16,
HolidayCalendar, TradingCalendar, WEEKDAYS, ) NewYearsDay = new_years_day() Epiphany = epiphany(end_date='2007') LabourDay = european_labour_day() AssumptionDay = assumption_day(end_date='2005', observance=weekend_to_monday) NationalDay = Holiday( 'National Day', month=10, day=12, end_date='2005', ) AllSaintsDay = all_saints_day(end_date='2005') ConstitutionDay = Holiday( 'Constitution Day', month=12, day=6, end_date='2005', ) ImmaculateConception = immaculate_conception(end_date='2005') ChristmasEveThrough2010 = christmas_eve(end_date='2011')
# These have the same definition, but are used in different places because the # NYSE closed at 2:00 PM on Christmas Eve until 1993. def july_5th_holiday_observance(datetime_index): return datetime_index[datetime_index.year < 2013] def following_tuesday_every_four_years_observance(dt): return dt + DateOffset(years=(4 - (dt.year % 4)) % 4, weekday=TU(1)) ChristmasEveBefore1993 = Holiday( 'Christmas Eve', month=12, day=24, end_date=Timestamp('1993-01-01'), # When Christmas is a Saturday, the 24th is a full holiday. days_of_week=(MONDAY, TUESDAY, WEDNESDAY, THURSDAY), ) ChristmasEveInOrAfter1993 = Holiday( 'Christmas Eve', month=12, day=24, start_date=Timestamp('1993-01-01'), # When Christmas is a Saturday, the 24th is a full holiday. days_of_week=(MONDAY, TUESDAY, WEDNESDAY, THURSDAY), ) USNewYearsDay = Holiday( 'New Years Day', month=1, day=1,
christmas_weekday = Christmas.observance(pd.Timestamp(year_str + "-12-25")).weekday() nyd_weekday = USNewYearsDay.observance(pd.Timestamp(year_str + "-01-01")).weekday() if christmas_weekday != 4 and nyd_weekday != 4: return GoodFriday._apply_rule( pd.Timestamp( str(dt.year) + "-" + str(dt.month) + "-" + str(dt.day))) else: # compatibility for pandas 0.18.1 return pd.NaT GoodFridayUnlessChristmasNYEFriday = Holiday( name="Good Friday XCBF", month=1, day=1, observance=good_friday_unless_christmas_nye_friday, ) class XCBFExchangeCalendar(ExchangeCalendar): """ Exchange calendar for the CBOE Futures Exchange (XCBF). http://cfe.cboe.com/aboutcfe/expirationcalendar.aspx Open Time: 8:30am, America/Chicago Close Time: 3:15pm, America/Chicago (We are ignoring extended trading hours for now) """
from .trading_calendar import (TradingCalendar, HolidayCalendar) # Regular Holidays # ---------------- NewYearsDay = new_years_day() EuropeanLabourDay = european_labour_day() # Whit Monday observed in 2007, before it became regularly observed # starting in 2015. WhitMonday2007AdHoc = Timestamp('2007-05-28', tz=UTC) WhitMonday = whit_monday(start_date='2015-01-01') DayOfGermanUnity = Holiday("Day of German Unity", month=10, day=3, start_date='2014-01-01') # Reformation Day was a German national holiday in 2017. ReformationDay500thAnniversaryAdHoc = Timestamp('2017-10-31', tz=UTC) ChristmasEve = christmas_eve() Christmas = christmas() BoxingDay = boxing_day() NewYearsEve = new_years_eve() # Early Closes # ------------
new_years_day, new_years_eve, whit_monday, ) from .exchange_calendar import WEEKDAYS, HolidayCalendar, ExchangeCalendar NewYearsDay = new_years_day() AscensionDay = ascension_day(end_date="2001") WhitMonday = whit_monday(end_date="2002") LabourDay = european_labour_day() BelgiumIndependenceDay = Holiday( "Belgium Independence Day", month=7, day=21, end_date="2002", ) ChristmasEve = christmas_eve(days_of_week=WEEKDAYS) Christmas = christmas() BoxingDay = boxing_day() NewYearsEveBefore2002 = new_years_eve(end_date="2002") NewYearsEveInOrAfter2002 = new_years_eve( start_date="2002", days_of_week=WEEKDAYS, ) class XBRUExchangeCalendar(ExchangeCalendar):
""" return dt[dt.weekday == FRIDAY] # All pre-2011 holidays are pre-computed, so we define Holidays starting # in 2011. NewYearsDay = new_years_day(start_date='2011') # Chinese New Year's only observed after 2011 ChineseNewYear = chinese_lunar_new_year_dates ChineseNewYearAfter2011 = ChineseNewYear[ChineseNewYear.year > 2011] PeoplePowerRevolution = Holiday( 'People Power Revolution', month=2, day=25, start_date='2016', ) ArawNgKagitingan = Holiday( 'Araw Ng Kagitingan', month=4, day=9, start_date='2011', ) MaundyThursday = maundy_thursday(start_date='2011') LabourDay = european_labour_day(start_date='2011') IndependenceDay = Holiday(
class TweetHolidays(AbstractHolidayCalendar): rules = [ Holiday('New Years Day', month=1, day=1, observance=nearest_workday), USMartinLutherKingJr, Holiday("Valentines's Day", month=2, day=14), USPresidentsDay, Holiday('Pi Day', month=3, day=14), Holiday("Saint Patrick's Day", month=3, day=17), Holiday('April Fools', month=4, day=1), Holiday('Earth Day', month=4, day=22), Holiday("Easter", month=1, day=1, offset=[Easter(), Day(0)]), Holiday('May the Fourth', month=5, day=4), Holiday("Mothers's Day", month=5, day=1, offset=DateOffset(weekday=SU(2))), USMemorialDay, Holiday("Father's Day", month=6, day=1, offset=DateOffset(weekday=SU(3))), Holiday('July 4th', month=7, day=4, observance=nearest_workday), USLaborDay, Holiday('Halloween', month=10, day=31), USColumbusDay, Holiday('Veterans Day', month=11, day=11, observance=nearest_workday), USThanksgivingDay, Holiday('Christmas', month=12, day=25, observance=nearest_workday) ]
from datetime import time from pandas.tseries.holiday import (AbstractHolidayCalendar, Day, Easter, EasterMonday, GoodFriday, Holiday, previous_friday) from pytz import timezone from .market_calendar import (FRIDAY, MONDAY, MarketCalendar, THURSDAY, TUESDAY, WEDNESDAY) # New Year's Eve NewYearsEve = Holiday( "New Year's Eve", month=12, day=31, observance=previous_friday, ) # New Year's Day NewYearsDay = Holiday( "New Year's Day", month=1, day=1, days_of_week=(MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY), ) # Berthold's Day BertholdsDay = Holiday( "Berthold's Day", month=1, day=2, days_of_week=(MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY), )
""" Christmas Eve is a holiday every year except for whatever reason it was a trading day in 2004. """ return datetime_index[datetime_index.year != 2004] NewYearsDay = new_years_day() Epiphany = epiphany(start_date='2011') LabourDay = european_labour_day() May3ConstitutionDay = Holiday( "Celabration of Declaration of the Constitution of 3 May", month=5, day=3, ) CorpusChristi = corpus_christi() ArmedForcesDay = Holiday( "Armed Forces Day", month=8, day=15, ) AllSaintsDay = all_saints_day() IndependenceDay = Holiday( "National Independence Day",
) NewYearsDay = new_years_day() Epiphany = epiphany(end_date='2019') AscensionDay = ascension_day(end_date='2019') WhitMonday = whit_monday() CorpusChristi = corpus_christi(end_date='2019') LabourDay = european_labour_day() AssumptionDay = assumption_day(end_date='2019') NationalHoliday = Holiday('National Holiday', month=10, day=26) AllSaintsDay = all_saints_day(end_date='2019') ImmaculateConception = immaculate_conception(end_date='2019') ChristmasEve = christmas_eve() Christmas = christmas() SaintStephensDay = Holiday("Saint Stephen's Day", month=12, day=26) # Prior to 2016, when New Year's Eve fell on the weekend, it was observed # on the preceding Friday. In 2016 and after, it is not made up. NewYearsEveThrough2015 = new_years_eve( observance=previous_friday, end_date='2016',
# # kewlfft # from datetime import time from pandas.tseries.holiday import AbstractHolidayCalendar, EasterMonday, GoodFriday, Holiday, previous_friday from pytz import timezone from .market_calendar import (FRIDAY, MONDAY, MarketCalendar, THURSDAY, TUESDAY, WEDNESDAY) # New Year's Eve EUREXNewYearsEve = Holiday( "New Year's Eve", month=12, day=31, observance=previous_friday, ) # New Year's Day EUREXNewYearsDay = Holiday( "New Year's Day", month=1, day=1, days_of_week=(MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY), ) # Early May bank holiday MayBank = Holiday( "Early May Bank Holiday", month=5, day=1, days_of_week=(MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY),
from datetime import time from pandas.tseries.holiday import (Holiday, DateOffset, MO, weekend_to_monday, GoodFriday) from pytz import timezone from .market_calendar import MarketCalendar from pandas.tseries.holiday import AbstractHolidayCalendar from .us_holidays import Christmas from .exchange_calendar_lse import (WeekendChristmas, BoxingDay, WeekendBoxingDay) # New Year's Day TSXNewYearsDay = Holiday( "New Year's Day", month=1, day=1, observance=weekend_to_monday, ) # Ontario Family Day FamilyDay = Holiday( "Family Day", month=2, day=1, offset=DateOffset(weekday=MO(3)), start_date='2008-01-01', ) # Victoria Day VictoriaDay = Holiday( 'Victoria Day', month=5, day=24,
class USTradingCalendar(AbstractHolidayCalendar): rules = [ USColumbusDay, Holiday('Veterans Day', month=11, day=11, observance=None), ]
'2006-02-02', # Federal Territory Day made up b.c. Muharram '2004-01-21', # Chinese New Year extra day '2003-11-24', # Eid al-Fitr extra day '2003-02-04', # Chinese New Year extra day '2003-01-31', # Chinese New Year extra day '2002-04-25', # Installation of Yang di-Pertuan Agong '2002-02-11', # Chinese New Year extra day ]) NewYearsDay = new_years_day(observance=sunday_to_monday) Thaipusam = thaipusam FederalTerritoryDay = Holiday( 'Federal Territory Day', month=2, day=1, observance=sunday_to_monday, ) ChineseNewYear = pd.to_datetime( chinese_lunar_new_year_dates.map(lambda d: sunday_to_monday(d))) ChineseNewYearDay2 = (ChineseNewYear + timedelta(1)).map(lambda d: sunday_to_monday(d)) LabourDay = european_labour_day(observance=sunday_to_monday) WesakDay = wesak_day NuzulAlQuran = malaysia_nuzul_al_quran.map(lambda d: sunday_to_monday(d))
# distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. from datetime import time from pandas.tseries.holiday import AbstractHolidayCalendar, Day, Easter, GoodFriday, Holiday from pytz import timezone from .market_calendar import (FRIDAY, MarketCalendar) # Universal Confraternization (new years day) ConfUniversal = Holiday( 'Dia da Confraternizacao Universal', month=1, day=1, ) # Sao Paulo city birthday AniversarioSaoPaulo = Holiday( 'Aniversario de Sao Paulo', month=1, day=25, ) # Carnival Monday CarnavalSegunda = Holiday('Carnaval Segunda', month=1, day=1, offset=[Easter(), Day(-48)]) # Carnival Tuesday CarnavalTerca = Holiday('Carnaval Terca',
maundy_thursday, ascension_day, whit_monday, christmas_eve, christmas, boxing_day, new_years_eve, ) from .trading_calendar import HolidayCalendar, TradingCalendar NewYearsDay = new_years_day() MaundyThursday = maundy_thursday() GeneralPrayerDay = Holiday( 'General Prayer Day', month=1, day=1, offset=[Easter(), Day(26)], ) AscensionDay = ascension_day() BankHoliday = Holiday( 'Bank Holiday', month=1, day=1, offset=[Easter(), Day(40)], start_date='2009', ) WhitMonday = whit_monday() ConstitutionDay = Holiday('Constitution Day', month=6, day=5) ChristmasEve = christmas_eve()
def regular_holidays(self): return AbstractHolidayCalendar(rules=[ USNewYearsDay, Holiday( name="New Year's Day", month=1, day=2, observance=sunday_to_monday, ), Holiday( name="New Year's Day", month=1, day=3, observance=sunday_to_monday, ), Holiday( # second monday of january name="Coming of Age Day", month=1, day=1, offset=DateOffset(weekday=MO(2)), ), Holiday( name="National foundation day", month=2, day=11, observance=sunday_to_monday, ), Holiday(name="Vernal Equinox", month=3, day=20, observance=vernal_equinox), Holiday( name="Showa day", month=4, day=29, observance=sunday_to_monday, ), Holiday( name="Constitution memorial day", month=5, day=3, observance=sunday_to_monday, ), Holiday( name="Greenery day", month=5, day=4, observance=sunday_to_monday, ), Holiday( name="Children's day", month=5, day=5, observance=sunday_to_monday, ), Holiday( name="Marine day", month=7, day=1, offset=DateOffset(weekday=MO(3)), ), Holiday( name="Mountain day", month=8, day=11, observance=sunday_to_monday, ), Holiday( name="Respect for the aged day", month=9, day=1, offset=DateOffset(weekday=MO(3)), ), Holiday( name="Autumnal equinox", month=9, day=22, observance=autumnal_equinox, ), Holiday( name="Health and sports day", month=10, day=1, offset=DateOffset(weekday=MO(2)), ), Holiday( name="Culture day", month=11, day=3, observance=sunday_to_monday, ), Holiday( name="Labor Thanksgiving Day", month=11, day=23, observance=sunday_to_monday, ), Holiday( name="Emperor's Birthday", month=12, day=23, observance=sunday_to_monday, ), Holiday( name="Before New Year's Day", month=12, day=31, observance=sunday_to_monday, ), ])
def test_both_offset_observance_raises(self): # see gh-10217 with pytest.raises(NotImplementedError): Holiday("Cyber Monday", month=11, day=1, offset=[DateOffset(weekday=SA(4))], observance=next_monday)
class HolidayCalendar(AbstractHolidayCalendar): rules = [ Holiday('Nyårsdagen', month=1, day=1), Holiday('Trettondedag jul',month=1, day=6), GoodFriday, EasterMonday, Holiday('Första maj',month=5, day=1), Holiday('Kristi himmelfärdsdag',month=5, day=30), Holiday('Sveriges nationaldag',month=6, day=6), Holiday('Julafton', month=12, day=24), Holiday('Juldagen', month=12, day=25), Holiday('Annandag jul',month=12, day=26), Holiday('Nyårsafton',month=12, day=31), #fyll in andra röda dagar tex midsommar osv Holiday('midsommarafton',year=2019,month=6, day=21), Holiday('midsommardagen',year=2019,month=6, day=22) ]
datetime(2020, 12, 31), [ datetime(2011, 5, 30), datetime(2012, 5, 28), datetime(2013, 5, 27), datetime(2014, 5, 26), datetime(2015, 5, 25), datetime(2016, 5, 30), datetime(2017, 5, 29), datetime(2018, 5, 28), datetime(2019, 5, 27), datetime(2020, 5, 25), ], ), ( Holiday("July 4th Eve", month=7, day=3), "2001-01-01", "2003-03-03", [Timestamp("2001-07-03 00:00:00"), Timestamp("2002-07-03 00:00:00")], ), ( Holiday("July 4th Eve", month=7, day=3, days_of_week=(0, 1, 2, 3)), "2001-01-01", "2008-03-03", [ Timestamp("2001-07-03 00:00:00"), Timestamp("2002-07-03 00:00:00"), Timestamp("2003-07-03 00:00:00"), Timestamp("2006-07-03 00:00:00"), Timestamp("2007-07-03 00:00:00"), ],
""" return pd.to_datetime([ easter(year, method=EASTER_ORTHODOX) for year in range(int(start_date), int(end_date)) ]).tz_localize(UTC) NewYearsDay = new_years_day() Epiphany = epiphany() OrthodoxAshMonday = orthodox_easter() - timedelta(48) NationalHoliday1 = Holiday( 'National Holiday 1', month=3, day=25, ) OrthodoxGoodFriday = orthodox_easter() - timedelta(2) OrthodoxEasterMonday = orthodox_easter() + timedelta(1) LabourDay = european_labour_day() OrthodoxWhitMonday = orthodox_easter() + timedelta(50) AssumptionDay = assumption_day() NationalHoliday2 = Holiday( 'National Holiday 2',