我正试图用熊猫创建一个交易日历。我能够基于USFederalHolidayCalendar创建一个cal实例。美国联邦假日日历与交易日历不一致,因为交易日历不包括哥伦布日和退伍军人日。不过,交易日历包括耶稣受难日(不包括在美国联邦假日日历中)。以下代码中除最后一行外的所有内容都有效:
from pandas.tseries.holiday import get_calendar, HolidayCalendarFactory, GoodFriday
from datetime import datetime
cal = get_calendar('USFederalHolidayCalendar') # Create calendar instance
cal.rules.pop(7) # Remove Veteran's Day rule
cal.rules.pop(6) # Remove Columbus Day rule
tradingCal = HolidayCalendarFactory('TradingCalendar', cal, GoodFriday)
传统的例子似乎在我能看到假日规则的情况下起作用。
In[10]: tradingCal.rules
Out[10]:
[Holiday: Labor Day (month=9, day=1, offset=<DateOffset: kwds={'weekday': MO(+1)}>),
Holiday: Presidents Day (month=2, day=1, offset=<DateOffset: kwds={'weekday': MO(+3)}>),
Holiday: Good Friday (month=1, day=1, offset=[<Easter>, <-2 * Days>]),
Holiday: Dr. Martin Luther King Jr. (month=1, day=1, offset=<DateOffset: kwds={'weekday': MO(+3)}>),
Holiday: New Years Day (month=1, day=1, observance=<function nearest_workday at 0x000000000A190BA8>),
Holiday: Thanksgiving (month=11, day=1, offset=<DateOffset: kwds={'weekday': TH(+4)}>),
Holiday: July 4th (month=7, day=4, observance=<function nearest_workday at 0x000000000A190BA8>),
Holiday: Christmas (month=12, day=25, observance=<function nearest_workday at 0x000000000A190BA8>),
Holiday: MemorialDay (month=5, day=31, offset=<DateOffset: kwds={'weekday': MO(-1)}>)]
当我试图在日期范围内列出假日时,会出现以下错误:
In[11]: tradingCal.holidays(datetime(2014, 12, 31), datetime(2016, 12, 31))
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\IPython\core\interactiveshell.py", line 3035, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-12-2708cd2db7a0>", line 1, in <module>
tradingCal.holidays(datetime(2014, 12, 31), datetime(2016, 12, 31))
TypeError: unbound method holidays() must be called with TradingCalendar instance as first argument (got datetime instance instead)
有什么想法吗?
如果有帮助的话,我也同样需要外汇交易日历。全天星计划中隐藏了一些优秀的代码。我提取了相关的部分,并创建了一个新的项目来创建熊猫市场交易日历。链接在这里,具有下面描述的一些功能。
https://github.com/rsheftel/pandas_market_calendars
https://pypi.python.org/pypi/pandas-market-calendars
以下是它可以通过为纽约证交所的所有有效营业时间创建pandas datetime索引来完成的操作:
如果您只想获取熊猫假日日历,该日历可以在其他以该日历为参数的熊猫函数中使用:
或许从头开始创建交易日历更为简单,比如:
您必须创建类的新实例:
cal1 = tradingCal()
。这对我有用。相关问题 更多 >
编程相关推荐