addMarketHoliday

语法

addMarketHoliday(marketName, holiday, [dateType = 'holidayDate'])

详情

在线添加一个交易市场节假日或交易日文件,通过此文件生成一个交易日历。调用该函数后,在 marketHolidayDir 指定的目录下会生成一个和 marketName 同名的 csv 文件。

注:
  • 该函数只能由管理员调用。
  • 该函数仅对当前节点有效。集群环境中,通过 pnodeRun 调用该函数,使其在其它节点生效。

参数

marketName 字符串标量,表示交易日历标识,例如:国外交易所的 ISO Code、国内交易所简称或自定义交易日历名称。
注:
  • marketName 必须由4个大写字母组成,且不能与 marketHolidayDir 下的文件名相同。

holiday DATE 类型向量,表示日期。

  • dateType='holidayDate' 时,holiday 需要指定为休市日期,因为系统默认周末为休市日,所以 holiday 只需指定非周末的休市日期。

  • dateType='tradingDate' 时,holiday 需要指定为交易日期。

dateType 字符串,用于指定交易日历文件的数据是休市日期还是交易日期。可选值为 ‘holidayDate’(默认)或 'tradingDate'。

例子

以下例子展示如何通过该函数手动添加名为 "DCBA" 的交易日历标识。

addMarketHoliday("DCBA",2022.01.03 2022.01.05)

运行后,在 /server/marketHoliday/ 路径下会新增一个名为 DCBA.csv 的文件,其中包含了已添加的节假日。

1. DCBA
注: 使用该函数添加已存在于交易日历中的交易日历标识时,会出现 The added market '<marketName>' already exists. 的提示,说明该交易日历标识已存在于 /server/marketHoliday/ 目录下,不需要重复添加。
temporalAdd(2022.01.01,1,"DCBA")

返回:2022.01.04

index = [2022.01.01, 2022.01.02, 2022.01.03, 2022.01.04]
s = indexedSeries(index, 1..4)
s.resample("DCBA", sum);

返回:

label	col1
2021.12.31   6
2022.01.04   4

新创建一个交易日历,其数据为交易日期:

tradingDates=[2024.02.08, 2024.02.09, 2024.02.18, 2024.02.19, 2024.02.20, 2024.02.21]
addMarketHoliday(marketName="AAAA", holiday=tradingDates, dateType='tradingDate')

运行以上代码后,在 /server/marketHoliday/ 路径下会新增一个名为 AAAA.csv 的文件,包含1列数据,字段名称为 tradingDate,数据为 tradingDates。

temporalAdd(2024.02.09, 1, "AAAA") 

返回:2024.02.18

temporalAdd(2024.02.21, 1, "AAAA")
//计算得到的日期如果不在 AAAA.csv 文件中记录,则会报错:The returned date does not exist in trading calendar [AAAA].