Python

QuantLib-Python:使用函式“holidayList”獲取 D1 和 D2 之間所有假期的列表

  • May 13, 2018

我發現 QuantLib 的 C++ 版本在日曆類中提供了一個名為 holidayList 的函式。

//! Returns the holidays between two dates
static std::vector<Date> holidayList(const Calendar& calendar,
                                    const Date& from,
                                    const Date& to,
                                    bool includeWeekEnds = false);

我試圖通過使用這個呼叫來獲得兩個日期之間的所有假期:

TARGET_calendar = TARGET()
TARGET_calendar.holidayList(TARGET_calendar, Date(1,1,2015), Date(1,1,2016))

AttributeError: 'TARGET' object has no attribute 'holidayList'

由於我對將 C++ 轉換為 Python 不太熟悉,因此我也嘗試過:

holidayList(TARGET_calendar, Date(1,1,2015), Date(1,1,2016))

NameError: name 'holidayList' is not defined

有人可以幫幫我嗎?

非常感謝!

holidayList()函式未在 Python 中公開:https ://github.com/lballabio/QuantLib-SWIG/blob/master/SWIG/calendars.i

您可以送出一個要求添加它的問題,或者通過拉取請求自己完成,或者只是在本地完成,但在最後一種情況下,您必須重建 QuantLib Python 庫等。

作為一種解決方法,您可以使用該isHoliday()函式來獲取此列表,並結合isWeekend()如果您想從假期列表中排除週末:

TARGET_calendar = TARGET()
date = Date(1,1,2015)
holiday_list = []
while date < Date(1,1,2016):
   if(TARGET_calendar.isHoliday(date) and not
      TARGET_calendar.isWeekend(date.weekday())):
       holiday_list.append(date)
   date = date + Period(1, Days)

引用自:https://quant.stackexchange.com/questions/39781