# 数据仓库 / 当日

## `cacheStrMerge(arg1, arg2, date_value_3)`

当日相关函数。

| 参数           | 类型     | 说明 |
| -------------- | -------- | ---- |
| `arg1`         | string   |      |
| `arg2`         | any      |      |
| `date_value_3` | datetime |      |

返回：string

## `getHbCacheStr(cache_str, fname)`

横比缓存串，多用于101因子中。串中不缓存pn_StockArr，因为无法满足动态指数成分，得需要用pn_StockArrName作唯一标识。

| 参数        | 类型   | 说明             |
| ----------- | ------ | ---------------- |
| `cache_str` | string | 字符串。缓存串   |
| `fname`     | string | 字符串。函数名称 |

返回：string

## `GetParm_GroupIndustry_ByEndt(t, endt, by_group)`

得到指定日股票池行业分类。1、用于支持横比行业分类；2、目前多用于101因子的计算中的中间函数IndNeutralize中；3、目前使用申万一二三级行业来处理。

| 参数       | 类型     | 说明                  |
| ---------- | -------- | --------------------- |
| `t`        | array    | 数组。股票池数据      |
| `endt`     | datetime | 日期。截止日          |
| `by_group` | any      | 用户自定义。取值如下: |

返回：array

## `GetParm_StockArr_ByEndt(end_t)`

得到指定日股票池。1、用于支持横比动态成分；2、目前多用于101因子的计算中。

| 参数    | 类型     | 说明           |
| ------- | -------- | -------------- |
| `end_t` | datetime | 日期。指定日。 |

返回：array

## `indNeutralize4(exp, by_group, cache_str, fill_nan)`

表达式当日中性化,与系统参数证券代码，时间，pn_StockArr()相关。

| 参数        | 类型   | 说明                 |
| ----------- | ------ | -------------------- |
| `exp`       | string | 字符串,函数表达式    |
| `by_group`  | int    | 整数,分类标准        |
| `cache_str` | string | 字符串,缓存串        |
| `fill_nan`  | int    | 整数,非交易日NAN替代 |

返回：float

### 示例

```tsl
endt:=20231010T;
SetSysParam(pn_stock(),"SH600519");
SetSysParam(Pn_date(),20231010T);
setsysparam(pn_StockArr(),getbkbydate("SH000300",endt));
return IndNeutralize4(@close(),0,"",1);
```

## `indNeutralizeOftheReport(exp, report_id, by_group, cache_str)`

表达式当期中性化

| 参数        | 类型   | 说明              |
| ----------- | ------ | ----------------- |
| `exp`       | string | 字符串,函数表达式 |
| `report_id` | int    | 整数,报告期       |
| `by_group`  | int    | 整数,分类标准     |
| `cache_str` | string | 字符串,缓存串     |

返回：float

### 示例

```tsl
endt:=20221231T;
SetSysParam(pn_stock(),"SH600519");
setsysparam(pn_StockArr(),getbkbydate("SH000300",endt));
return IndNeutralizeOftheReport(@ReportOfAll(46002,DefaultRepID()),20221231,0);
```

## `percentRankOftheDay(exp, cache_str)`

当日分位排名。与PercentRankOftheDay2最大的区别，停牌成分设为Nan。

| 参数        | 类型   | 说明               |
| ----------- | ------ | ------------------ |
| `exp`       | string | 字符串。统计表达式 |
| `cache_str` | string | 字符串。缓存串     |

返回：float|void

## `percentRankOftheDay2(exp, cache_str)`

当日分位排名。股票横截面数据排名，x表示一组股票的截面数据，按向量x的元素大小升序排序，序号从0开始，如\[0,1,...,n\]，然后输出排名所占总位数的百分比，即将排名归一到\[0,1\]区间。注意：Nan值不参与排名，输出Nan。

| 参数        | 类型   | 说明               |
| ----------- | ------ | ------------------ |
| `exp`       | string | 字符串。统计表达式 |
| `cache_str` | string | 字符串。缓存串     |

返回：float

## `percentRankOftheDay3(exp, cache_str, fill_nan)`

表达式当日分位排名,个股在pn_StockArr()成分股中的表达式值的分位排名，与系统参数证券代码，时间，pn_StockArr()相关。

| 参数        | 类型   | 说明                 |
| ----------- | ------ | -------------------- |
| `exp`       | string | 字符串,函数表达式    |
| `cache_str` | string | 字符串,缓存串        |
| `fill_nan`  | int    | 整数,非交易日NAN替代 |

返回：float

### 示例

```tsl
endt:=20231010T;
SetSysParam(pn_stock(),"SH600519");
SetSysParam(Pn_date(),20231010T);
setsysparam(pn_StockArr(),getbkbydate("SH000300",endt));
return PercentRankOftheDay3(@close(),"",1);
```

## `percentRankOftheReport(exp, report_id, cache_str)`

表达式当期分位排名,个股在pn_StockArr()成分股中的表达式值的排名，与系统参数证券代码，时间，pn_StockArr()相关。

| 参数        | 类型   | 说明              |
| ----------- | ------ | ----------------- |
| `exp`       | string | 字符串,函数表达式 |
| `report_id` | int    | 整数,报告期       |
| `cache_str` | string | 字符串,缓存串     |

返回：float

### 示例

```tsl
endt:=20221231T;
SetSysParam(pn_stock(),"SH600519");
setsysparam(pn_StockArr(),getbkbydate("SH000300",endt));
return PercentRankOftheReport(@ReportOfAll(46002,DefaultRepID()),20221231);
```

## `pn_StockArrFunc()`

当日相关函数。

返回：any

## `pn_StockArrName()`

当日相关函数。

返回：string

## `rankOftheDay(exp, sort_order, cache_str)`

当日横比排名。注意：pn_StockArr当日无交易的成分设置为Nan；EXp计算为NAN值时，不参与排名，排名为NAN。

| 参数         | 类型   | 说明                      |
| ------------ | ------ | ------------------------- |
| `exp`        | string | 字符串。统计表达式        |
| `sort_order` | int    | 整数。排位方式，取值如下: |
| `cache_str`  | string | 字符串。缓存串            |

返回：int

## `rankOftheDay2(exp, sort_order, cache_str)`

当日最新值横比排名。与RankOftheDay的区别在于：RankOftheDay2不会将pn_StockArr当日的停牌成分设置为Nan。注意：EXp计算为NAN值时，不参与排名，排名为NAN。

| 参数         | 类型   | 说明                      |
| ------------ | ------ | ------------------------- |
| `exp`        | string | 字符串。统计表达式        |
| `sort_order` | int    | 整数。排位方式，取值如下: |
| `cache_str`  | string | 字符串。缓存串            |

返回：int

## `rankOftheDay3(exp, sort_order, cache_str, fill_nan)`

表达式当日排名,个股在pn_StockArr()成分股中的表达式值的排名，与系统参数证券代码，时间，pn_StockArr()相关。

| 参数         | 类型   | 说明                 |
| ------------ | ------ | -------------------- |
| `exp`        | string | 字符串,函数表达式    |
| `sort_order` | int    | 整数,排位方式        |
| `cache_str`  | string | 字符串,缓存串        |
| `fill_nan`   | int    | 整数,非交易日NAN替代 |

返回：float

### 示例

```tsl
endt:=20231010T;
SetSysParam(pn_stock(),"SH600519");
SetSysParam(Pn_date(),20231010T);
setsysparam(pn_StockArr(),getbkbydate("SH000300",endt));
return RankOftheDay3(@close(),0,"",1);
```

## `rankOftheReport(exp, report_id, sort_order, cache_str)`

表达式当期排名,个股在pn_StockArr()成分股中的表达式值的排名，与系统参数证券代码，时间，pn_StockArr()相关。

| 参数         | 类型   | 说明              |
| ------------ | ------ | ----------------- |
| `exp`        | string | 字符串,函数表达式 |
| `report_id`  | int    | 整数,报告期       |
| `sort_order` | int    | 整数,排位方式     |
| `cache_str`  | string | 字符串,缓存串     |

返回：float

### 示例

```tsl
endt:=20221231T;
SetSysParam(pn_stock(),"SH600519");
setsysparam(pn_StockArr(),getbkbydate("SH000300",endt));
return RankOftheReport(@ReportOfAll(46002,DefaultRepID()),20221231,0);
```

## `scaleOfSeries(exp, a, cache_str)`

标准化（无交易成分设为NAN）。将x中的非NAN值进行标准化，使x的绝对值的和为a，默认a=1。注意：NAN值依然输出NAN。

| 参数        | 类型   | 说明               |
| ----------- | ------ | ------------------ |
| `exp`       | string | 字符串。统计表达式 |
| `a`         | float  | 实数。标准化数值   |
| `cache_str` | string | 字符串。缓存串     |

返回：float|void

### 示例

```tsl
endt:=20231010T;
SetSysParam(pn_stock(),"SH600519");
SetSysParam(Pn_date(),20231010T);
setsysparam(pn_StockArr(),getbkbydate("SH000300",endt));
return ScaleOfSeries(@close(),1,"");
```

## `scaleOfSeries2(exp, a, cache_str)`

标准化。将x中的非NAN值进行标准化，使x的绝对值的和为a，默认a=1。注意：NAN值依然输出NAN。

| 参数        | 类型   | 说明               |
| ----------- | ------ | ------------------ |
| `exp`       | string | 字符串。统计表达式 |
| `a`         | float  | 实数。标准化数值   |
| `cache_str` | string | 字符串。缓存串     |

返回：float

### 示例

```tsl
endt:=20231010T;
SetSysParam(pn_stock(),"SH600519");
SetSysParam(Pn_date(),20231010T);
setsysparam(pn_StockArr(),getbkbydate("SH000300",endt));
return ScaleOfSeries2(@close(),1,"");
```

## `scaleOfSeries3(exp, a, cache_str, fill_nan)`

表达式当日标准化,与系统参数证券代码，时间，pn_StockArr()相关。

| 参数        | 类型   | 说明                 |
| ----------- | ------ | -------------------- |
| `exp`       | string | 字符串,函数表达式    |
| `a`         | int    | 整数,标准化数值      |
| `cache_str` | string | 字符串,缓存串        |
| `fill_nan`  | int    | 整数,非交易日NAN替代 |

返回：float

### 示例

```tsl
endt:=20231010T;
SetSysParam(pn_stock(),"SH600519");
SetSysParam(Pn_date(),20231010T);
setsysparam(pn_StockArr(),getbkbydate("SH000300",endt));
return ScaleOfSeries3(@close(),1,"",1);
```

## `scaleOfSeriesOftheReport(exp, report_id, a, cache_str)`

表达式当期标准化

| 参数        | 类型   | 说明              |
| ----------- | ------ | ----------------- |
| `exp`       | string | 字符串,函数表达式 |
| `report_id` | int    | 整数,报告期       |
| `a`         | int    | 整数,标准化数值   |
| `cache_str` | string | 字符串,缓存串     |

返回：float

### 示例

```tsl
endt:=20221231T;
SetSysParam(pn_stock(),"SH600519");
setsysparam(pn_StockArr(),getbkbydate("SH000300",endt));
return ScaleOfSeriesOftheReport(@ReportOfAll(46002,DefaultRepID()),20221231,1);
```

## `SetParm_StockArrFunc(func, stock_arr_name)`

1、用于支持横比动态成分；2、目前多用于101因子的计算中，与GetParm_StockArr_ByEndt一起使用；3、一般客户无需使用。

| 参数             | 类型   | 说明               |
| ---------------- | ------ | ------------------ |
| `func`           | string | 字符串。函数名称   |
| `stock_arr_name` | string | 字符串。股票池名称 |

返回：any
