Perhaps it is more straightforward to create the trade calendar from scratch, like so:
import datetime as dt
from pandas.tseries.holiday import AbstractHolidayCalendar, Holiday, nearest_workday, \
USMartinLutherKingJr, USPresidentsDay, GoodFriday, USMemorialDay, \
USLaborDay, USThanksgivingDay
class USTradingCalendar(AbstractHolidayCalendar):
rules = [
Holiday('NewYearsDay', month=1, day=1, observance=nearest_workday),
USMartinLutherKingJr,
USPresidentsDay,
GoodFriday,
USMemorialDay,
Holiday('USIndependenceDay', month=7, day=4, observance=nearest_workday),
USLaborDay,
USThanksgivingDay,
Holiday('Christmas', month=12, day=25, observance=nearest_workday)
]
def get_trading_close_holidays(year):
inst = USTradingCalendar()
return inst.holidays(dt.datetime(year-1, 12, 31), dt.datetime(year, 12, 31))
if __name__ == '__main__':
print(get_trading_close_holidays(2016))
# DatetimeIndex(['2016-01-01', '2016-01-18', '2016-02-15', '2016-03-25',
# '2016-05-30', '2016-07-04', '2016-09-05', '2016-11-24',
# '2016-12-26'],
# dtype="datetime64[ns]", freq=None)