首页 > 解决方案 > 使用熊猫市场日历获取下一个交易日

问题描述

我想修改下面的代码,以便我可以得到 n 天后或 n 天前的交易日:

import pandas_market_calendars as mcal
holidays = nyse.holidays()
mydate = pd.to_datetime("12/24/2019")
holidays(mydate)
Timestamp('2019-12-26 00:00:00')

有没有办法提供天数作为假期()的参数?

我可以像这样在联邦假期中使用它:

from pandas.tseries.holiday import USFederalHolidayCalendar
bday_us1 = CustomBusinessDay(calendar=USFederalHolidayCalendar(), n=2)
mydate + bday_us1
Timestamp('2019-12-27 00:00:00')

标签: pythonpandasdate

解决方案


我会假设你已经在某处有这条线:

nyse = mcal.get_calendar('NYSE')

您可能正在寻找的是这样的:

nyse.valid_days(start_date='2016-12-20', end_date='2017-01-10')

这将返回包含开始日期和结束日期的所有有效日期(非节假日)的列表。要获取此日期范围:

mydate = pd.to_datetime("12/24/2019")
d = datetime.timedelta(days = 10)
start_date = mydate - d
end_date = mydate + d

推荐阅读