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: =McpCalenders(ccy)
- 功能:构造节假日对象。
- 参数:
ccy:货币简称(如CNY),多个货币时用逗号分隔。
- 返回:一个节假日对象,用于后续计算。
使用函数
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规则计算)。
