예제 #1
0
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
예제 #2
0
 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,
     ])
예제 #5
0
 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
         ])
     )]
예제 #8
0
 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
     ])
예제 #9
0
 def regular_holidays(self):
     # https://www.theice.com/publicdocs/futures_us/exchange_notices/NewExNot2016Holidays.pdf # noqa
     return AbstractHolidayCalendar(rules=[
         USNewYearsDay,
         GoodFriday,
         Christmas
     ])
예제 #10
0
 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,
         ])
     )]
예제 #13
0
 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
     ])
예제 #15
0
	def regular_holidays(self):
		return AbstractHolidayCalendar(rules=[
			OZNewYearsDay,
			AustraliaDay,
			AnzacDay,
			QueensBirthday,
			Christmas,
			BoxingDay,
			WeekendBoxingDay,
			GoodFriday,
			EasterMonday,
		])
예제 #16
0
 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,
        ])
예제 #21
0
 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,
     ])
예제 #22
0
 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
         ])
예제 #23
0
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,
     ])
예제 #26
0
 def regular_holidays(self):
     return AbstractHolidayCalendar(rules=[
         NewYearDay,
         Christmas,
     ])
 def special_opens(self):
     return [(time(13, 1), AbstractHolidayCalendar(rules=[QuartaCinzas]))]
예제 #28
0
    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),
            ),
        ])
예제 #29
0
 def special_closes(self):
     return [(time(11, 30),
              AbstractHolidayCalendar(
                  rules=[MonTuesThursBeforeIndependenceDay]))]
예제 #30
0
 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,
         ),
     ])