# 数据仓库 / 向导函数 / 当日 ## `indNeutralize(exp, by_group, cache_str)` 声明:function 中性化操作,分组去均值化。将数据指标Exp按照ByGroup分类,对每个类别按照Exp=Exp–mean(Exp)进行中性化处理,处理之后Exp的均值为0。注:因分类标准不明确,此函数暂时不进行分类,即按整个市场,只对Exp进行中性化处理 | 参数 | 类型 | 说明 | | ----------- | ------ | --------------------- | | `exp` | string | 字符串。统计表达式 | | `by_group` | int | 用户自定义。取值如下: | | `cache_str` | string | 字符串。缓存串 | 返回:float|void ### 示例 范例01:调用函数 ```tsl SetSysParam(pn_stock(), "SH600519"); SetSysParam(Pn_date(), 20231010T); setsysparam(pn_StockArr(), getbkbydate("SH000300", 20231010T)); return IndNeutralize(@open(), 0, ""); ``` ## `indNeutralize2(exp, by_group, cache_str)` 声明:function 中性化操作,分组去均值化。将数据指标Exp按照ByGroup分类,对每个类别按照Exp=Exp–mean(Exp)进行中性化处理,处理之后Exp的均值为0。注:因分类标准不明确,此函数暂时不进行分类,即按整个市场,只对Exp进行中性化处理 | 参数 | 类型 | 说明 | | ----------- | ------- | --------------------- | | `exp` | string | 字符串。统计表达式 | | `by_group` | integer | 用户自定义。取值如下: | | `cache_str` | string | 字符串。缓存串 | 返回:float ### 示例 范例01:结果:1735.87966666667 ```tsl SetSysParam(pn_stock(), "SH600519"); SetSysParam(Pn_date(), 20231010T); setsysparam(pn_StockArr(), getbkbydate("SH000300", 20231010T)); return IndNeutralize2(@open(), 0, ""); // 输出:1735.87966666667 ``` ## `indNeutralize4(exp, by_group, cache_str, fill_nan)` 声明:function 表达式当日中性化,与系统参数证券代码,时间,pn_StockArr()相关 | 参数 | 类型 | 说明 | | ----------- | ------ | -------------------- | | `exp` | string | 字符串,函数表达式 | | `by_group` | int | 整数,分类标准 | | `cache_str` | string | 字符串,缓存串 | | `fill_nan` | int | 整数,非交易日NAN替代 | 返回:float ### 示例 范例01:调用函数 ```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)` 声明:function 表达式当期中性化 | 参数 | 类型 | 说明 | | ----------- | ------ | ----------------- | | `exp` | string | 字符串,函数表达式 | | `report_id` | int | 整数,报告期 | | `by_group` | int | 整数,分类标准 | | `cache_str` | string | 字符串,缓存串 | 返回:float ### 示例 范例01:调用函数 ```tsl endt := 20221231T; SetSysParam(pn_stock(), "SH600519"); setsysparam(pn_StockArr(), getbkbydate("SH000300", endt)); return IndNeutralizeOftheReport(@ReportOfAll(46002, DefaultRepID()), 20221231, 0); ``` ## `percentRankOftheDay(exp, cache_str)` 声明:function 当日分位排名。与PercentRankOftheDay2最大的区别,停牌成分设为Nan | 参数 | 类型 | 说明 | | ----------- | ------ | ------------------ | | `exp` | string | 字符串。统计表达式 | | `cache_str` | string | 字符串。缓存串 | 返回:float|void ### 示例 范例01:结果:0.4615 ```tsl sp_s(PN_Stock(), 'SH600000'); endt := 20190701T; sp_s(PN_Date(), endt); sp_s(PN_Rate(), 1); sp_s(PN_RateDay(), endt); sp_s(pn_StockArr(), GetBKByDate('SH000300', endt)); Exp := @close(); return PercentRankOftheDay(exp); // 输出:0.4615 ``` ## `percentRankOftheDay2(exp, cache_str)` 声明:function 当日分位排名。股票横截面数据排名,x表示一组股票的截面数据,按向量x的元素大小升序排序,序号从0开始,如\[0,1,...,n\],然后输出排名所占总位数的百分比,即将排名归一到\[0,1\]区间。注意:Nan值不参与排名,输出Nan | 参数 | 类型 | 说明 | | ----------- | ------ | ------------------ | | `exp` | string | 字符串。统计表达式 | | `cache_str` | string | 字符串。缓存串 | 返回:float ### 示例 范例01:结果:0.4615 ```tsl sp_s(PN_Stock(), 'SH600000'); endt := 20190701T; sp_s(PN_Date(), endt); sp_s(PN_Rate(), 1); sp_s(PN_RateDay(), endt); sp_s(pn_StockArr(), GetBKByDate('SH000300', endt)); Exp := @close(); return PercentRankOftheDay2(exp); // 输出:0.4615 ``` ## `percentRankOftheDay3(exp, cache_str, fill_nan)` 声明:function 表达式当日分位排名,个股在pn_StockArr()成分股中的表达式值的分位排名,与系统参数证券代码,时间,pn_StockArr()相关 | 参数 | 类型 | 说明 | | ----------- | ------ | -------------------- | | `exp` | string | 字符串,函数表达式 | | `cache_str` | string | 字符串,缓存串 | | `fill_nan` | int | 整数,非交易日NAN替代 | 返回:float ### 示例 范例01:调用函数 ```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)` 声明:function 表达式当期分位排名,个股在pn_StockArr()成分股中的表达式值的排名,与系统参数证券代码,时间,pn_StockArr()相关 | 参数 | 类型 | 说明 | | ----------- | ------ | ----------------- | | `exp` | string | 字符串,函数表达式 | | `report_id` | int | 整数,报告期 | | `cache_str` | string | 字符串,缓存串 | 返回:float ### 示例 范例01:调用函数 ```tsl endt := 20221231T; SetSysParam(pn_stock(), "SH600519"); setsysparam(pn_StockArr(), getbkbydate("SH000300", endt)); return PercentRankOftheReport(@ReportOfAll(46002, DefaultRepID()), 20221231); ``` ## `rankOftheDay(exp, sort_order, cache_str)` 声明:function 当日横比排名。注意:pn_StockArr当日无交易的成分设置为Nan;EXp计算为NAN值时,不参与排名,排名为NAN | 参数 | 类型 | 说明 | | ------------ | ------ | ------------------------- | | `exp` | string | 字符串。统计表达式 | | `sort_order` | int | 整数。排位方式,取值如下: | | `cache_str` | string | 字符串。缓存串 | 返回:int ### 示例 范例01:结果:161 ```tsl sp_s(PN_Stock(), 'SH600000'); endt := 20190701T; sp_s(PN_Date(), endt); sp_s(PN_Rate(), 1); sp_s(PN_RateDay(), endt); sp_s(pn_StockArr(), GetBKByDate('SH000300', endt)); Exp := @close(); return RankOftheDay(exp, 0); // 输出:161 ``` ## `rankOftheDay2(exp, sort_order, cache_str)` 声明:function 当日最新值横比排名。与RankOftheDay的区别在于:RankOftheDay2不会将pn_StockArr当日的停牌成分设置为Nan。注意:EXp计算为NAN值时,不参与排名,排名为NAN | 参数 | 类型 | 说明 | | ------------ | ------ | ------------------------- | | `exp` | string | 字符串。统计表达式 | | `sort_order` | int | 整数。排位方式,取值如下: | | `cache_str` | string | 字符串。缓存串 | 返回:int ### 示例 范例01:结果:161 ```tsl sp_s(PN_Stock(), 'SH600000'); endt := 20190701T; sp_s(PN_Date(), endt); sp_s(PN_Rate(), 1); sp_s(PN_RateDay(), endt); sp_s(pn_StockArr(), GetBKByDate('SH000300', endt)); Exp := @close(); return RankOftheDay2(exp, 0); // 输出:161 ``` ## `rankOftheDay3(exp, sort_order, cache_str, fill_nan)` 声明:function 表达式当日排名,个股在pn_StockArr()成分股中的表达式值的排名,与系统参数证券代码,时间,pn_StockArr()相关 | 参数 | 类型 | 说明 | | ------------ | ------ | -------------------- | | `exp` | string | 字符串,函数表达式 | | `sort_order` | int | 整数,排位方式 | | `cache_str` | string | 字符串,缓存串 | | `fill_nan` | int | 整数,非交易日NAN替代 | 返回:float ### 示例 范例01:调用函数 ```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)` 声明:function 表达式当期排名,个股在pn_StockArr()成分股中的表达式值的排名,与系统参数证券代码,时间,pn_StockArr()相关 | 参数 | 类型 | 说明 | | ------------ | ------ | ----------------- | | `exp` | string | 字符串,函数表达式 | | `report_id` | int | 整数,报告期 | | `sort_order` | int | 整数,排位方式 | | `cache_str` | string | 字符串,缓存串 | 返回:float ### 示例 范例01:调用函数 ```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)` 声明:function 标准化(无交易成分设为NAN)。将x中的非NAN值进行标准化,使x的绝对值的和为a,默认a=1。注意:NAN值依然输出NAN | 参数 | 类型 | 说明 | | ----------- | ------ | ------------------ | | `exp` | string | 字符串。统计表达式 | | `a` | float | 实数。标准化数值 | | `cache_str` | string | 字符串。缓存串 | 返回:float|void ### 示例 范例01:调用函数 ```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)` 声明:function 标准化。将x中的非NAN值进行标准化,使x的绝对值的和为a,默认a=1。注意:NAN值依然输出NAN | 参数 | 类型 | 说明 | | ----------- | ------ | ------------------ | | `exp` | string | 字符串。统计表达式 | | `a` | float | 实数。标准化数值 | | `cache_str` | string | 字符串。缓存串 | 返回:float ### 示例 范例01:调用函数 ```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)` 声明:function 表达式当日标准化,与系统参数证券代码,时间,pn_StockArr()相关 | 参数 | 类型 | 说明 | | ----------- | ------ | -------------------- | | `exp` | string | 字符串,函数表达式 | | `a` | int | 整数,标准化数值 | | `cache_str` | string | 字符串,缓存串 | | `fill_nan` | int | 整数,非交易日NAN替代 | 返回:float ### 示例 范例01:调用函数 ```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)` 声明:function 表达式当期标准化 | 参数 | 类型 | 说明 | | ----------- | ------ | ----------------- | | `exp` | string | 字符串,函数表达式 | | `report_id` | int | 整数,报告期 | | `a` | int | 整数,标准化数值 | | `cache_str` | string | 字符串,缓存串 | 返回:float ### 示例 范例01:调用函数 ```tsl endt := 20221231T; SetSysParam(pn_stock(), "SH600519"); setsysparam(pn_StockArr(), getbkbydate("SH000300", endt)); return ScaleOfSeriesOftheReport(@ReportOfAll(46002, DefaultRepID()), 20221231, 1); ```