# 量化择时 / 宏观因子 ## `TS_HGDataProcess` 声明:class 基于宏观因子的批量择时数据处理框架 ### `factorArr` 声明:field 因子列表 可见性:`public` 类型:array ### `fBegT` 声明:field 开始日 2023/1/1 可见性:`public` 类型:date ### `fEndT` 声明:field 截止日 2024/12/31 可见性:`public` 类型:date ### `fCycle` 声明:field 数据频率 月线 可见性:`public` 类型:string ### `fFactorArr` 声明:field 因子设置 array() 可见性:`public` 类型:array ### `fUnifiedType` 声明:field 统一口径处理 0 可见性:`public` 类型:int ### `fSmoothType` 声明:field 平滑处理 0 可见性:`public` 类型:int ### `fFillMoveN` 声明:field 填充移动期数 4 可见性:`public` 类型:int ### `ftbMoveN` 声明:field 同比移动期数 12 可见性:`public` 类型:int ### `fInvalidDataPro` 声明:field 无效数据处理 1 可见性:`public` 类型:int ### `fSmoothMoveN` 声明:field 平滑移动期数 4 可见性:`public` 类型:int ### `fhpLambda` 声明:field HP 滤波平滑参数 1 可见性:`public` 类型:real ### `fComFactorArr` 声明:field 合成因子库 array() 可见性:`public` 类型:array ### `fWeightType` 声明:field 加权方式 0 可见性:`public` 类型:int ### `getRawData(beg_t, end_t)` 声明:function 获取区间原始数据 可见性:`public` | 参数 | 类型 | 说明 | | ------- | ---- | ---------------- | | `beg_t` | date | Date,区间开始日 | | `end_t` | date | Date,区间截止日 | 返回:array ### `getPostProcessData(beg_t, end_t)` 声明:function 获取区间数据处理后的宏观数据 可见性:`public` | 参数 | 类型 | 说明 | | ------- | ---- | ---------------- | | `beg_t` | date | Date,区间开始日 | | `end_t` | date | Date,区间截止日 | 返回:array ### `getMidProcessData(beg_t, end_t)` 声明:function 获取区间数据处理的中间过程 可见性:`public` | 参数 | 类型 | 说明 | | ------- | ---- | ---------------- | | `beg_t` | date | Date,区间开始日 | | `end_t` | date | Date,区间截止日 | 返回:array ### `getComData(beg_t, end_t)` 声明:function 获取区间合成大类宏观因子 可见性:`public` | 参数 | 类型 | 说明 | | ------- | ---- | ---------------- | | `beg_t` | date | Date,区间开始日 | | `end_t` | date | Date,区间截止日 | 返回:array ### `getComWeight()` 声明:function 合成因子权重,各大类因子在小类因子上的合成比例 可见性:`public` 返回:array ### `tsd_HG_GetDataByQK(beg_t, end_t, cycle, zb_arr)` 声明:function 提取区间宏观数据,仅支持以"HG000001" 代码取数的天软宏观数据 可见性:`public` | 参数 | 类型 | 说明 | | -------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `beg_t` | date | Date,区间开始日 | | `end_t` | date | Date,区间截止日 | | `cycle` | string | String,取数周期,目前仅支持月线与季线,根据 zbArr中的宏观因子数据频率来定 | | `zb_arr` | array | Array,指标列表 字段 类型 含义 非空 备注 因子名称 String 宏观因子名称 是 因子 ID Int 宏观指标 ID 是 框架自动取天软宏观因子 滞后期 Int 宏观数据公布滞后性 否 默认取 0,不考虑滞后,主要用于事后分析 如: 因子名称 因子 ID 滞后期 工业增加值同比(%) 802004 1 PMI 823002 0 社零总额同比(%) 805028 1 | 返回:array ### `tsd_HG_FillMiss(data, fill_type, move_n, date_field)` 声明:function 时序数据缺失值填充 可见性:`public` | 参数 | 类型 | 说明 | | ------------ | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `data` | array | Array,原始时序数据,支持一维数组与二维数据表类型 二维时,对每列进行填充,不含【DateField】列 | | `fill_type` | int | Int,缺失值填充方法,详情可参考缺失值处理 取值 含义 方法说明 0(默认) 不处理 1 移动平均 历史 N 期均值 2 移动中位数 历史 N 期中位数 3 一阶差分中位数 上期+历史 N 期一阶差分中位数 4 线性插值 前后两期有效值线性插值 | | `move_n` | int | Int,移动期数,当 FillType取 1或 2时使用 | | `date_field` | string | String,日期列名,默认"截止日",当 Data为二维数据表时,对除【DateField】列 进行填充 | 返回:array ### `tsd_HG_UnifiedCaliber(data, unified_type, tb_move_n, invalid_data_pro, date_field)` 声明:function 时序数据统一口径处理 可见性:`public` | 参数 | 类型 | 说明 | | ------------------ | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `data` | array | Array,原始时序数据,支持一维数组与二维数据表类型 | | `unified_type` | int | Int,统一口径处理方法 取值 含义 方法说明 0(默认) 不处理 1 同比增速(%) (本期-去年同期)/去年同期*100 2 同比差分 本期-去年同期 3 环比增速(%) (本期-上期)/上期*100 4 环比差分 本期-上期 | | `tb_move_n` | int | Int,同比移动期数,默认取 12,当 UnifiedType取 1 或 2 时使用 | | `invalid_data_pro` | int | Int,无效数据处理,当 UnifiedType取非 0值时,开头数据无效,默认会剔除 取值 含义 备注 0(默认) 剔除 影响输出数据长度 1 填第一个有效值 不影响数据长度 2 填 nil 不推荐使用 | | `date_field` | string | String,日期列名,默认"截止日",当 Data为二维数据表时,对除【DateField】列 进行统一口径处理 | 返回:array ### `tsd_HG_Smooth(data, smooth_type, move_n, hp_lambda, date_field)` 声明:function 时序数据平滑处理 可见性:`public` | 参数 | 类型 | 说明 | | ------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------- | | `data` | array | Array,原始时序数据,支持一维数组与二维数据表类型 二维时,对每列进行平滑处理,不含【DateField】列 | | `smooth_type` | int | Int,平滑处理方法 取值 含义 方法说明 0(默认) 不处理 1 移动平均 历史 N 期均值,不足 N 期使用已有数据 2 HP 滤波 使用模型 filter_hp | | `move_n` | int | Int,移动期数,默认取 6,当 SmoothType取 1 时使用 | | `hp_lambda` | real | Real,HP滤波平滑参数,默认取 1,当 SmoothType取 2时使用 | | `date_field` | string | String,日期列名,默认"截止日",当 Data为二维数据表时,对除【DateField】列 进行平滑处理 | 返回:array ### `tsd_ET_ShortTermHighLow_Avg(data, k, b, col_name)` 声明:function 短期高低点-均线 可见性:`public` | 参数 | 类型 | 说明 | | ---------- | ------ | ------------------------------------------------------------------- | | `data` | array | Array,时序数据,包含"截止日"与"ColName"字段,按"截止日"升序排列 | | `k` | int | Int,历史 K 期,默认取 12 | | `b` | real | Real,b倍标准差,默认取 2 | | `col_name` | string | String,字段名称,仅支持单个字段,默认取 Data除"截止日"的第一个字段 | 返回:array ### `tsd_ET_ShortTermHighLow_Percent(data, k, percent, col_name)` 声明:function 短期高低点-分位点 可见性:`public` | 参数 | 类型 | 说明 | | ---------- | ------ | ------------------------------------------------------------------------------ | | `data` | array | Array,时序数据,包含"截止日"与"ColName"字段,按"截止日"升序排列 | | `k` | int | Int,历史 K 期,默认取 12 | | `percent` | real | Real,分位点,默认取 0.75,当 Percent>0.5表示上分位点、Percent<0.5表示下分位点 | | `col_name` | string | String,字段名称,仅支持单个字段,默认取 Data除"截止日"的第一个字段 | 返回:array ### `tsd_ET_ShortTermNewHighLow(data, k, col_name)` 声明:function 短期新高新低 可见性:`public` | 参数 | 类型 | 说明 | | ---------- | ------ | ------------------------------------------------------------------- | | `data` | array | Array,时序数据,包含"截止日"与"ColName"字段,按"截止日"升序排列 | | `k` | int | Int,历史 K 期,默认取 12 | | `col_name` | string | String,字段名称,仅支持单个字段,默认取 Data除"截止日"的第一个字段 | 返回:array ### `tsd_ET_HistNewHighLow(data, col_name)` 声明:function 历史新高新低,以传入 Data作为全区间数据来衡量,Data第 1 期至第 T-1期作为第 T 期的历 可见性:`public` | 参数 | 类型 | 说明 | | ---------- | ------ | ------------------------------------------------------------------- | | `data` | array | Array,时序数据,包含"截止日"与"ColName"字段,按"截止日"升序排列 | | `col_name` | string | String,字段名称,仅支持单个字段,默认取 Data除"截止日"的第一个字段 | 返回:array ### `tsd_ET_ContinueUpDown(data, k, col_name)` 声明:function 连续上涨下跌 可见性:`public` | 参数 | 类型 | 说明 | | ---------- | ------ | ------------------------------------------------------------------- | | `data` | array | Array,时序数据,包含"截止日"与"ColName"字段,按"截止日"升序排列 | | `k` | int | Int,连续 K 期,默认取 3 | | `col_name` | string | String,字段名称,仅支持单个字段,默认取 Data除"截止日"的第一个字段 | 返回:array ### `tsd_ET_ReversalUpDown(data, k, col_name)` 声明:function 反转上涨下跌 可见性:`public` | 参数 | 类型 | 说明 | | ---------- | ------ | ------------------------------------------------------------------- | | `data` | array | Array,时序数据,包含"截止日"与"ColName"字段,按"截止日"升序排列 | | `k` | int | Int,连续 K 期,默认取 3 | | `col_name` | string | String,字段名称,仅支持单个字段,默认取 Data除"截止日"的第一个字段 | 返回:array ### `tsd_ET_SignalGenerator(data, col_name, event_arr, drop_first_n)` 声明:function 多事件信号发生器,支持单个宏观指标。底层调用单事件各接口,将"信号标记"整合到一 可见性:`public` | 参数 | 类型 | 说明 | | -------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `data` | array | Array,时序数据,包含"截止日"与"ColName"字段,按"截止日"升序排列 | | `col_name` | string | String,字段名称,仅支持单个字段,默认取 Data除"截止日"的第一个字段 | | `event_arr` | array | Array,事件列表, 二维数据表,可参考事件列表 字段 类型 含义 是否非空 说明 事件名称 String 信号标记,事件配对出现 是 不可重复 事件公式 String 事件构造公式,包括函数及参 数 是 eval 解析,参数 Data、ColName固定不变,其 他参数可调整 是否生效 Bool 事件是否生效 是 1 表示生效;0 表示不生效 公式说明 String 对事件公式进行说明 否 | | `drop_first_n` | int | Int,剔除历史前 N期数据,默认取 12,前期事件信号可能存在噪音,为了信号准 确性,Data尽可能取长一些 | 返回:array ### `tsd_ET_SignalStat(signal_data, index_id, cycle, n)` 声明:function 事件信号统计评价,支持多事件、单资产 可见性:`public` | 参数 | 类型 | 说明 | | ------------- | ------ | ------------------------------------------------------------------------------------------------ | | `signal_data` | array | Array,多事件信号时序数据,包含"截止日"与各事件信号发生标记,可参考 TSD_ET_SignalGenerator的返回 | | `index_id` | string | String,标的指数代码,仅支持单个指数(单资产) | | `cycle` | string | String,指数未来收益周期,默认为月线,一般与 SignalData数据周期相同 | | `n` | int | Int,指数未来收益期数,默认为 1,如未来 1个月的收益 |