Calendar 相关函数
大约 5 分钟
Calendar 相关函数
构建函数
Excel: =McpCalendar(code, dates)
Python: McpCalendar(*args)
- 功能:构造节假日对象。
- 参数:
code
:货币代码(目前仅支持单个货币,不支持货币对)。dates
:货币的节假日数据。*args
:是一个字典,key/value,同Excel参数一样。
- 返回:一个节假日对象,用于后续计算。
Excel: =McpNCalendar(ccys, holidays)
- 功能:通过货币和节假日数据构建 Calendar。
- 参数:
ccys
:一个或多个货币代码。holidays
:对应的节假日数据。
- 返回:一个节假日对象,用于后续计算。
Excel: =McpFCalendar(ccys, path=None)
- 功能:通过货币和节假日文件构建 Calendar。
- 参数:
ccys
:一个或多个货币代码。path
:节假日文件路径(默认使用control/Holidays.txt
)。
- 返回:一个节假日对象,用于后续计算。
使用函数
Excel: =CalendarAddBusinessDays(cal, date, count, calendarCodes="")
Python: AddBusinessDays(*args)
- 功能:给指定日期加上若干个工作日。
- 参数:
cal
:节假日对象。date
:起始日期。count
:需要增加的工作日天数。calendarCodes
:指定使用的货币或货币对的节假日(默认为空,使用整个cal
)。*args
:是一个字典,不需要cal参数,其他参数同Excel的参数。
- 返回:调整后的日期。
- 示例:返回
=CalendarAddBusinessDays(McpCalendar("USD", "USD", "2023-01-01,2023-12-25"), "2023-01-01", 5)
2023-01-09
(假设 2023-01-01 和 2023-01-07 是节假日)。
Excel: =CalendarAddPeriod(cal, date, tenor, dateAdjustRule=DateAdjusterRule.Actual, endOfMonthRule=False, lastOpenDay=False, calendarCodes='')
Python: AddPeriod(*args)
- 功能:给指定日期加上一个期限。
- 参数:
cal
:节假日对象。date
:起始日期。tenor
:期限(如1M
、3M
等)。dateAdjustRule
:日期调整规则(默认Actual
)。endOfMonthRule
:是否启用月末规则(默认False
)。lastOpenDay
:是否考虑最后一个开放交易日(默认False
)。calendarCodes
:指定使用的货币或货币对的节假日(默认为空,使用整个cal
)。*args
:是一个字典,不需要cal参数,其他参数同Excel的参数。
- 返回:调整后的日期。
- 示例:返回
=CalendarAddPeriod(McpCalendar("USD", "USD", "2023-01-01,2023-12-25"), "2023-01-01", "1M")
2023-02-01
(假设 2023-01-01 是节假日)。
Excel: =CalendarValueDate(cal, date, isFollowing=True, calendarCodes='')
Python: ValueDate(*args)
- 功能:基于指定日期计算起息日。
- 参数:
cal
:节假日对象。date
:起始日期。isFollowing
:是否按照Following
规则调整(默认True
)。calendarCodes
:指定使用的货币或货币对的节假日(默认为空,使用整个cal
)。*args
:是一个字典,不需要cal参数,其他参数同Excel的参数。
- 返回:调整后的起息日。
- 示例:返回
=CalendarValueDate(McpCalendar("USD", "USD", "2023-01-01,2023-12-25"), "2023-01-01")
2023-01-03
(假设 2023-01-01 是节假日)。
Excel: =CalendarAdjust(cal, date, rule, calendarCodes="")
Python: Adjust(*args)
- 功能:基于指定日期按照规则调整日期。
- 参数:
cal
:节假日对象。date
:起始日期。rule
:调整规则(枚举值)。calendarCodes
:指定使用的货币或货币对的节假日(默认为空,使用整个cal
)。*args
:是一个字典,不需要cal参数,其他参数同Excel的参数。
- 返回:调整后的日期。
Excel: =CalendarFXOExpiryDate(cal, date, calendarCodes='')
Python: FXOExpiryDate(*args)
- 功能:基于交割日计算到期日。
- 参数:
cal
:节假日对象。date
:交割日期。calendarCodes
:指定使用的货币或货币对的节假日(默认为空,使用整个cal
)。*args
:是一个字典,不需要cal参数,其他参数同Excel的参数。
- 返回:到期日。
Excel: =CalendarFXODeliveryDateFromTenor(cal, referenceDate, tenor, spotDate, calendarCodes='')
Python: FXODeliveryDateFromTenor(*args)
- 功能:根据期限计算交割日。
- 参数:
cal
:节假日对象。referenceDate
:交易日或估值日。tenor
:期限。spotDate
:起息日。calendarCodes
:指定使用的货币或货币对的节假日(默认为空,使用整个cal
)。*args
:是一个字典,不需要cal参数,其他参数同Excel的参数。
- 返回:交割日。
Excel: =CalendarFXOExpiryDateFromTenor(cal, referenceDate, tenor, spotDate, calendarCodes='')
Python: FXOExpiryDateFromTenor(*args)
- 功能:根据期限计算到期日。
- 参数:
cal
:节假日对象。referenceDate
:交易日或估值日。tenor
:期限。spotDate
:起息日。calendarCodes
:指定使用的货币或货币对的节假日(默认为空,使用整个cal
)。*args
:是一个字典,不需要cal参数,其他参数同Excel的参数。
- 返回:到期日。
Excel: =CalendarIsBusinessDay(cal, date, calendarCodes='')
Python: IsBusinessDay(date, calendarCodes)
- 功能:判断指定日期是否为工作日。
- 参数:
cal
:节假日对象。date
:待判断的日期。calendarCodes
:指定使用的货币或货币对的节假日(默认为空,使用整个cal
)。
- 返回:如果是工作日返回
True
,否则返回False
。 - 示例:返回
=CalendarIsBusinessDay(McpCalendar("USD", "USD", "2023-01-01,2023-12-25"), "2023-01-01")
False
(假设 2023-01-01 是节假日)。
Excel: =CalendarValueDateTenor(cal, date, tenor, calendarCodes="", isFarLeg=True)
- 功能:根据交易日或估值日及期限计算近端或远端起息日。
- 参数:
cal
:节假日对象。date
:起始日期。tenor
:期限。calendarCodes
:指定使用的货币或货币对的节假日(默认为空,使用整个cal
)。isFarLeg
:是否计算远端起息日(默认True
,False
时计算近端起息日)。
- 返回:近端或远端起息日。
DayCounter 相关函数
Excel: =McpDayCounter(dayCounter)
- 功能:构造 DayCounter 对象。
- 参数:
dayCounter
:计息规则(枚举值)。
- 返回:一个 DayCounter 对象,用于后续计算。
Excel: =DayCounterYearFraction(dayCounter, startDate, endDate)
- 功能:计算从开始日期到结束日期的年化天数。
- 参数:
dayCounter
:计息规则(枚举值)。startDate
:开始日期。endDate
:结束日期。
- 返回:年化天数。
- 示例:返回
=DayCounterYearFraction(McpDayCounter("Actual/360"), "2023-01-01", "2023-12-31")
1.0
(假设按Actual/360
规则计算)。