453 lines
19 KiB
Markdown
453 lines
19 KiB
Markdown
# 量化择时 / 宏观因子
|
||
|
||
## `TS_HGDataProcess`
|
||
|
||
声明:class
|
||
|
||
基于宏观因子的批量择时数据处理框架
|
||
|
||
<!-- tags: 因子分析 因子指标 宏观经济 宏观择时 批量计算 数据处理 -->
|
||
|
||
### `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
|
||
|
||
获取区间原始数据
|
||
|
||
<!-- tags: 查询 原始宏观数据 时序数据 区间数据 -->
|
||
|
||
可见性:`public`
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------- | ---- | ---------------- |
|
||
| `beg_t` | date | Date,区间开始日 |
|
||
| `end_t` | date | Date,区间截止日 |
|
||
|
||
返回:array
|
||
|
||
### `getPostProcessData(beg_t, end_t)`
|
||
|
||
声明:function
|
||
|
||
获取区间数据处理后的宏观数据
|
||
|
||
<!-- tags: 查询 宏观经济 -->
|
||
|
||
可见性:`public`
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------- | ---- | ---------------- |
|
||
| `beg_t` | date | Date,区间开始日 |
|
||
| `end_t` | date | Date,区间截止日 |
|
||
|
||
返回:array
|
||
|
||
### `getMidProcessData(beg_t, end_t)`
|
||
|
||
声明:function
|
||
|
||
获取区间数据处理的中间过程
|
||
|
||
<!-- tags: 查询 中间过程 数据处理 时序数据 -->
|
||
|
||
可见性:`public`
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------- | ---- | ---------------- |
|
||
| `beg_t` | date | Date,区间开始日 |
|
||
| `end_t` | date | Date,区间截止日 |
|
||
|
||
返回:array
|
||
|
||
### `getComData(beg_t, end_t)`
|
||
|
||
声明:function
|
||
|
||
获取区间合成大类宏观因子
|
||
|
||
<!-- tags: 查询 因子分析 因子指标 宏观经济 组件对象模型 自动化 -->
|
||
|
||
可见性:`public`
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------- | ---- | ---------------- |
|
||
| `beg_t` | date | Date,区间开始日 |
|
||
| `end_t` | date | Date,区间截止日 |
|
||
|
||
返回:array
|
||
|
||
### `getComWeight()`
|
||
|
||
声明:function
|
||
|
||
合成因子权重,各大类因子在小类因子上的合成比例
|
||
|
||
<!-- tags: 查询 因子分析 因子指标 组合权重 资产配置 组件对象模型 自动化 -->
|
||
|
||
可见性:`public`
|
||
|
||
返回:array
|
||
|
||
### `tsd_HG_GetDataByQK(beg_t, end_t, cycle, zb_arr)`
|
||
|
||
声明:function
|
||
|
||
提取区间宏观数据,仅支持以"HG000001" 代码取数的天软宏观数据
|
||
|
||
<!-- tags: 查询 宏观经济 -->
|
||
|
||
可见性:`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
|
||
|
||
时序数据缺失值填充
|
||
|
||
<!-- tags: 填充 缺失值 时序数据 -->
|
||
|
||
可见性:`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
|
||
|
||
时序数据统一口径处理
|
||
|
||
<!-- tags: 统一口径 频率转换 时序数据 -->
|
||
|
||
可见性:`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
|
||
|
||
时序数据平滑处理
|
||
|
||
<!-- tags: 平滑 滤波 时序数据 -->
|
||
|
||
可见性:`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
|
||
|
||
短期高低点-均线
|
||
|
||
<!-- tags: 择时信号 短期高低点 均线 -->
|
||
|
||
可见性:`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
|
||
|
||
短期高低点-分位点
|
||
|
||
<!-- tags: 择时信号 短期高低点 分位数 -->
|
||
|
||
可见性:`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
|
||
|
||
短期新高新低
|
||
|
||
<!-- tags: 择时信号 新高新低 突破 -->
|
||
|
||
可见性:`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 期的历
|
||
|
||
<!-- tags: 创建 宏观择时 -->
|
||
|
||
可见性:`public`
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---------- | ------ | ------------------------------------------------------------------- |
|
||
| `data` | array | Array,时序数据,包含"截止日"与"ColName"字段,按"截止日"升序排列 |
|
||
| `col_name` | string | String,字段名称,仅支持单个字段,默认取 Data除"截止日"的第一个字段 |
|
||
|
||
返回:array
|
||
|
||
### `tsd_ET_ContinueUpDown(data, k, col_name)`
|
||
|
||
声明:function
|
||
|
||
连续上涨下跌
|
||
|
||
<!-- tags: 择时信号 连续涨跌 趋势 -->
|
||
|
||
可见性:`public`
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---------- | ------ | ------------------------------------------------------------------- |
|
||
| `data` | array | Array,时序数据,包含"截止日"与"ColName"字段,按"截止日"升序排列 |
|
||
| `k` | int | Int,连续 K 期,默认取 3 |
|
||
| `col_name` | string | String,字段名称,仅支持单个字段,默认取 Data除"截止日"的第一个字段 |
|
||
|
||
返回:array
|
||
|
||
### `tsd_ET_ReversalUpDown(data, k, col_name)`
|
||
|
||
声明:function
|
||
|
||
反转上涨下跌
|
||
|
||
<!-- tags: 择时信号 涨跌反转 反转 -->
|
||
|
||
可见性:`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
|
||
|
||
多事件信号发生器,支持单个宏观指标。底层调用单事件各接口,将"信号标记"整合到一
|
||
|
||
<!-- tags: 执行 打标 事件驱动 事件研究 宏观经济 -->
|
||
|
||
可见性:`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
|
||
|
||
事件信号统计评价,支持多事件、单资产
|
||
|
||
<!-- tags: 评估 汇总 事件驱动 事件研究 -->
|
||
|
||
可见性:`public`
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------------- | ------ | ------------------------------------------------------------------------------------------------ |
|
||
| `signal_data` | array | Array,多事件信号时序数据,包含"截止日"与各事件信号发生标记,可参考 TSD_ET_SignalGenerator的返回 |
|
||
| `index_id` | string | String,标的指数代码,仅支持单个指数(单资产) |
|
||
| `cycle` | string | String,指数未来收益周期,默认为月线,一般与 SignalData数据周期相同 |
|
||
| `n` | int | Int,指数未来收益期数,默认为 1,如未来 1个月的收益 |
|