def define_holiday_regressors(X, dates, holidays=None): """ Add columns to the predictor matrix X for a specified list of holidays :param X: (Array) Predictor matrix without columns for the holidays :param dates: Dates :param holidays: (List) holidays :return: Updated predictor matrix """ if holidays is not None: if len(holidays) > 0: if X is None: n = len(dates) else: n = X.shape[0] for holiday in holidays: cal = AbstractHolidayCalendar() cal.rules = [holiday] x = np.zeros(n) x[dates.isin(cal.holidays())] = 1 if X is None: X = x else: X = np.c_[X, x] return X else: return X else: return X
def special_closes(self): return [ (self.regular_early_close, AbstractHolidayCalendar(rules=[ MonTuesThursBeforeIndependenceDay, FridayAfterIndependenceDayExcept2013, USBlackFridayInOrAfter1993, ChristmasEveInOrAfter1993 ])), (time(14), AbstractHolidayCalendar(rules=[ ChristmasEveBefore1993, USBlackFridayBefore1993, ])), ]
def special_closes(self): return [(time(12), AbstractHolidayCalendar(rules=[ USMartinLutherKingJrAfter1998, USPresidentsDay, USMemorialDay, USIndependenceDay, USLaborDay, USThanksgivingDay, ])), (time(12, 15), AbstractHolidayCalendar(rules=[ USBlackFridayInOrAfter1993, ChristmasEveBefore1993, ChristmasEveInOrAfter1993, ]))]
def regular_holidays(self): # Many days that are holidays for the NYSE are an early close day for CME return AbstractHolidayCalendar(rules=[ USNewYearsDay, GoodFriday, Christmas, ])
def regular_holidays(self): """ Rules are guesses based on observations of recent year. Rectify accordingly once the next year's holidays arrangement is published by the government. """ return AbstractHolidayCalendar(rules=[ HKNewYearsDay, SpringFestivalDayBefore1983, SpringFestivalDay2Before1983, SpringFestivalDay3Before1983, SpringFestivalDayBefore2010, SpringFestivalDay2Before2010, SpringFestivalDay3Before2010, SpringFestivalDay, SpringFestivalDay2, SpringFestivalDay3, GoodFriday, EasterMonday, TombSweepingDay, LabourDay, BuddhaShakyamuniDay, DragonBoatFestivalDay, HKRegionEstablishmentDay, MidAutumnFestivalDayBefore1983, MidAutumnFestivalDayBefore2010, MidAutumnFestivalDay, NationalDay, DoubleNinthFestivalDay, Christmas, BoxingDay, CommemoratingAlliedVictory, QueenBirthday, QueenBirthday2, IDontKnow ])
def special_closes(self): return [(time(12), AbstractHolidayCalendar(rules=[ USBlackFridayInOrAfter1993, ChristmasEveBefore1993, ChristmasEveInOrAfter1993, ]))]
def special_closes(self): return [( time(13, 0, tzinfo=self.tz), AbstractHolidayCalendar(rules=[ OSEWednesdayBeforeEaster ]) )]
def regular_holidays(self): return AbstractHolidayCalendar(rules=[ LSENewYearsDay, GoodFriday, EasterMonday, MayBank_pre_1995, MayBank_post_1995_pre_2020, MayBank_post_2020, SpringBank_pre_2002, SpringBank_post_2002_pre_2012, SpringBank_post_2012, SummerBank, Christmas, WeekendChristmas, BoxingDay, WeekendBoxingDay ])
def regular_holidays(self): # https://www.theice.com/publicdocs/futures_us/exchange_notices/NewExNot2016Holidays.pdf # noqa return AbstractHolidayCalendar(rules=[ USNewYearsDay, GoodFriday, Christmas ])
def special_closes(self): return [( time(12, 15), AbstractHolidayCalendar(rules=[ USBlackFridayInOrAfter1993, ]) )]
def regular_holidays(self): return AbstractHolidayCalendar(rules=[ USNewYearsDay, USMartinLutherKingJrAfter1998, USLincolnsBirthDayBefore1954, USWashingtonsBirthDayBefore1964, USWashingtonsBirthDay1964to1970, USPresidentsDay, GoodFriday, USMemorialDayBefore1964, USMemorialDay1964to1969, USMemorialDay, USIndependenceDayBefore1954, USIndependenceDay, USLaborDay, USThanksgivingDayBefore1939, USThanksgivingDay1939to1941, USThanksgivingDay, USElectionDay1848to1967, USElectionDay1968to1980, USVeteransDay1934to1953, USColumbusDayBefore1954, ChristmasBefore1954, Christmas, ])
def special_closes(self): return [( time(12, 30), AbstractHolidayCalendar(rules=[ ChristmasEve, EUREXNewYearsEve, ]) )]
def special_closes(self): return [ (time(13), AbstractHolidayCalendar(rules=[ USMartinLutherKingJrAfter1998, USPresidentsDay, USMemorialDay, USIndependenceDay, USLaborDay, USThanksgivingDay ])) ]
def regular_holidays(self): return AbstractHolidayCalendar(rules=[ EUREXNewYearsDay, GoodFriday, EasterMonday, MayBank, Christmas, WeekendChristmas, BoxingDay, WeekendBoxingDay ])
def regular_holidays(self): return AbstractHolidayCalendar(rules=[ OZNewYearsDay, AustraliaDay, AnzacDay, QueensBirthday, Christmas, BoxingDay, WeekendBoxingDay, GoodFriday, EasterMonday, ])
def regular_holidays(self): return AbstractHolidayCalendar(rules=[ USNewYearsDay, USMartinLutherKingJrAfter1998, USPresidentsDay, GoodFriday, USIndependenceDay, USMemorialDay, USLaborDay, USThanksgivingDay, Christmas ])
def regular_holidays(self): return AbstractHolidayCalendar(rules=[ OSENewYearsDay, OSEMaundyThursday, OSEGoodFriday, OSEEasterMonday, OSELabourDay, OSEConstitutionDay, OSEWhitMonday, OSEAscensionDay, OSEChristmasEve, OSEChristmasDay, OSEBoxingDay, OSENewYearsEve ])
def regular_holidays(self): return AbstractHolidayCalendar(rules=[ TSXNewYearsDay, FamilyDay, GoodFriday, VictoriaDay, CanadaDay, CivicHoliday, LaborDay, Thanksgiving, Christmas, WeekendChristmas, BoxingDay, WeekendBoxingDay ])
def regular_holidays(self): return AbstractHolidayCalendar(rules=[ NewYearsDay, BertholdsDay, GoodFriday, EasterMonday, MayBank, AscensionDay, PentecostMonday, SwissNationalDay, ChristmasEve, Christmas, BoxingDay, NewYearsEve, ])
def regular_holidays(self): # The CME has different holiday rules depending on the type of # instrument. For example, http://www.cmegroup.com/tools-information/holiday-calendar/files/2016-4th-of-july-holiday-schedule.pdf # noqa # shows that Equity, Interest Rate, FX, Energy, Metals & DME Products # close at 1200 CT on July 4, 2016, while Grain, Oilseed & MGEX # Products and Livestock, Dairy & Lumber products are completely # closed. # For now, we will treat the CME as having a single calendar, and just # go with the most conservative hours - and treat July 4 as an early # close at noon. return AbstractHolidayCalendar(rules=[ USNewYearsDay, GoodFriday, Christmas, ])
def regular_holidays(self): return AbstractHolidayCalendar(rules=[ USNewYearsDay, JapanNewYearsDay2, JapanNewYearsDay3, JapanComingOfAgeDay1951To1973, JapanComingOfAgeDay1974To1999, JapanComingOfAgeDay, JapanNationalFoundationDay1969To1973, JapanNationalFoundationDay, JapanEmperorsBirthday, JapanVernalEquinox, JapanShowaDayUntil1972, JapanShowaDay, JapanConstitutionMemorialDayUntil1972, JapanConstitutionMemorialDay, JapanGreeneryDay, JapanChildrensDayUntil1972, JapanChildrensDay, JapanGoldenWeekBonusDay, JapanMarineDay1996To2002, JapanMarineDay2003To2019, JapanMarineDay2020, JapanMarineDay, JapanMountainDay2016to2019, JapanMountainDay2020, JapanMountainDay, JapanRespectForTheAgedDay1966To1972, JapanRespectForTheAgedDay1973To2002, JapanRespectForTheAgedDay, JapanAutumnalEquinox, JapanHealthAndSportsDay1966To1972, JapanHealthAndSportsDay1973To1999, JapanHealthAndSportsDay2000To2019, JapanSportsDay2020, JapanSportsDay, JapanCultureDayUntil1972, JapanCultureDay, JapanLaborThanksgivingDayUntil1972, JapanLaborThanksgivingDay, JapanEmperorAkahitosBirthday, JapanDecember29Until1988, JapanDecember30Until1988, JapanBeforeNewYearsDay, ])
def regular_holidays(self): return AbstractHolidayCalendar(rules=[ republic_day, Mahashivratri, holi, MahavirJayanti, MaharastraDay, Independenceday, Bakri_Id, GaneshChaturthi, Moharram, MahatmaGandhiJayanti, Dasera, DiwaliLaxmiPujan, DiwaliBalipratipada, GurunanakJayanti, Christmas, GoodFriday ])
def get_calendar(ccys, cities=nan): """ Create a calendar which has the holidays and business of the curriences and city inputs. Parameters ---------- cities : array of strings, optional DESCRIPTION. Array of three letter (financial) city codes, The default is None. Returns ------- CustomBusinessDay() object, observing the holiday of the cities """ if pd.isnull(ccys) and pd.isnull(cities): return busdaycalendar() # Muslim/Jewish states have Friday & Sunday as the weekend weekmask = getWeekMask(ccys) holidays = [] if cities is not nan: holidays += [ map_citycode_to_holidays[c] for c in cities if c in map_citycode_to_holidays.keys() ] holidays += [ map_ccy_to_holidays[c] for c in ccys if c in map_ccy_to_holidays.keys() ] # Flattan the list of lists holidays = [h for city_holidays in holidays for h in city_holidays] if holidays == []: return busdaycalendar(weekmask=weekmask) else: cal = HolidayCalendarFactory('Cal', AbstractHolidayCalendar(), holidays) cal_instance = cal() holidays = cal_instance.holidays(datetime(2000, 1, 1), datetime(2100, 1, 1)) return busdaycalendar(holidays=Series(holidays.format()))
def regular_holidays(self): # Ignore gap between 13:20 CST and 14:30 CST for regular trading hours # # The CME has different holiday rules depending on the type of # instrument. For example, http://www.cmegroup.com/tools-information/holiday-calendar/files/2016-4th-of-july-holiday-schedule.pdf # noqa # shows that Equity, Interest Rate, FX, Energy, Metals & DME Products # close at 1200 CT on July 4, 2016, while Grain, Oilseed & MGEX # Products and Livestock, Dairy & Lumber products are completely # closed. return AbstractHolidayCalendar(rules=[ USNewYearsDay, USMartinLutherKingJrAfter1998, USPresidentsDay, GoodFriday, USMemorialDay, USIndependenceDay, USLaborDay, USThanksgivingDay, Christmas, ])
def regular_holidays(self): return AbstractHolidayCalendar(rules=[ ConfUniversal, AniversarioSaoPaulo, CarnavalSegunda, CarnavalTerca, SextaPaixao, CorpusChristi, Tiradentes, DiaTrabalho, Constitucionalista, Independencia, Aparecida, Finados, ProclamacaoRepublica, ConscienciaNegra, VesperaNatal, Natal, AnoNovo, AnoNovoSabado, ])
def regular_holidays(self): return AbstractHolidayCalendar(rules=[ NewYearDay, Christmas, ])
def special_opens(self): return [(time(13, 1), AbstractHolidayCalendar(rules=[QuartaCinzas]))]
def regular_holidays(self): """ Rules are guesses based on observations of recent year. Rectify accordingly once the next year's holidays arrangement is published by the government. """ return AbstractHolidayCalendar(rules=[ Holiday( name="New Year's Day", month=1, day=1, observance=next_monday, start_date=Timestamp(2020, 1, 1), ), Holiday( name="New Year's Day", month=1, day=2, observance=partial(second_day_in_lieu), start_date=Timestamp(2020, 1, 2), ), Holiday( name="New Year's Day", month=1, day=3, observance=partial(third_day_in_lieu), start_date=Timestamp(2020, 1, 3), ), Holiday( name="Spring Festival", month=1, day=20, observance=partial(lunisolar, mapping=sf_mapping, delta=-1), start_date=Timestamp(2020, 1, 20), ), Holiday( name="Spring Festival", month=1, day=21, observance=partial(lunisolar, mapping=sf_mapping, delta=0), start_date=Timestamp(2020, 1, 21), ), Holiday( name="Spring Festival", month=1, day=21, observance=partial(lunisolar, mapping=sf_mapping, delta=1), start_date=Timestamp(2020, 1, 22), ), Holiday( name="Spring Festival", month=1, day=21, observance=partial(lunisolar, mapping=sf_mapping, delta=2), start_date=Timestamp(2020, 1, 23), ), Holiday( name="Spring Festival", month=1, day=21, observance=partial(lunisolar, mapping=sf_mapping, delta=3), start_date=Timestamp(2020, 1, 24), ), Holiday( name="Spring Festival", month=1, day=21, observance=partial(lunisolar, mapping=sf_mapping, delta=4), start_date=Timestamp(2020, 1, 25), ), Holiday( name="Spring Festival", month=1, day=21, observance=partial(lunisolar, mapping=sf_mapping, delta=5), start_date=Timestamp(2020, 1, 26), ), Holiday( name="Labour Day", month=5, day=1, observance=next_monday, start_date=Timestamp(2020, 5, 1), ), Holiday( name="Labour Day", month=5, day=2, observance=second_day_in_lieu, start_date=Timestamp(2020, 5, 2), ), Holiday( name="Labour Day", month=5, day=3, observance=third_day_in_lieu, start_date=Timestamp(2020, 5, 3), ), Holiday( name="Tomb-sweeping Day", month=4, day=4, observance=partial( lunisolar, mapping=tsd_mapping, func=next_monday), start_date=Timestamp(2020, 4, 4), ), Holiday( name="Tomb-sweeping Day", month=4, day=5, observance=partial(lunisolar, mapping=tsd_mapping, func=second_day_in_lieu, delta=1), start_date=Timestamp(2020, 4, 4), ), Holiday( name="Tomb-sweeping Day", month=4, day=6, observance=partial(lunisolar, mapping=tsd_mapping, func=third_day_in_lieu, delta=2), start_date=Timestamp(2020, 4, 4), ), Holiday( name="Dragon Boat Festival", month=5, day=27, observance=partial( lunisolar, mapping=dbf_mapping, func=next_monday), start_date=Timestamp(2020, 5, 27), ), Holiday( name="Dragon Boat Festival", month=5, day=28, observance=partial(lunisolar, mapping=dbf_mapping, func=second_day_in_lieu, delta=1), start_date=Timestamp(2020, 5, 27), ), Holiday( name="Dragon Boat Festival", month=5, day=29, observance=partial(lunisolar, mapping=dbf_mapping, func=third_day_in_lieu, delta=2), start_date=Timestamp(2020, 5, 27), ), Holiday( name="Mid-autumn Festival", month=9, day=7, observance=partial( lunisolar, mapping=maf_mapping, func=next_monday), start_date=Timestamp(2020, 9, 7), ), Holiday( name="Mid-autumn Festival", month=9, day=8, observance=partial(lunisolar, mapping=maf_mapping, func=second_day_in_lieu, delta=1), start_date=Timestamp(2020, 9, 7), ), Holiday( name="Mid-autumn Festival", month=9, day=9, observance=partial(lunisolar, mapping=maf_mapping, func=third_day_in_lieu, delta=2), start_date=Timestamp(2020, 9, 7), ), Holiday( name="National Day", month=10, day=1, start_date=Timestamp(2020, 10, 1), ), Holiday( name="National Day", month=10, day=2, start_date=Timestamp(2020, 10, 2), ), Holiday( name="National Day", month=10, day=3, start_date=Timestamp(2020, 10, 3), ), Holiday( name="National Day", month=10, day=4, start_date=Timestamp(2020, 10, 4), ), Holiday( name="National Day", month=10, day=5, start_date=Timestamp(2020, 10, 5), ), Holiday( name="National Day", month=10, day=6, start_date=Timestamp(2020, 10, 6), ), Holiday( name="National Day", month=10, day=7, start_date=Timestamp(2020, 10, 7), ), ])
def special_closes(self): return [(time(11, 30), AbstractHolidayCalendar( rules=[MonTuesThursBeforeIndependenceDay]))]
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, ), ])