# 数据仓库 / 当日 ### `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 ### `getParmGroupIndustryByEndt(t, endt, by_group)` 得到指定日股票池行业分类。1、用于支持横比行业分类;2、目前多用于101因子的计算中的中间函数IndNeutralize中;3、目前使用申万一二三级行业来处理。 | 参数 | 类型 | 说明 | | ---------- | -------- | --------------------- | | `t` | array | 数组。股票池数据 | | `endt` | datetime | 日期。截止日 | | `by_group` | any | 用户自定义。取值如下: | 返回:array ### `getParmStockArrByEndt(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); ``` ### `pnStockArrFunc()` 当日相关函数。 返回:any ### `pnStockArrName()` 当日相关函数。 返回: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); ``` ### `setParmStockArrFunc(func, stock_arr_name)` 1、用于支持横比动态成分;2、目前多用于101因子的计算中,与GetParm_StockArr_ByEndt一起使用;3、一般客户无需使用。 | 参数 | 类型 | 说明 | | ---------------- | ------ | ------------------ | | `func` | string | 字符串。函数名称 | | `stock_arr_name` | string | 字符串。股票池名称 | 返回:any