13 KiB
数据仓库 / 向导函数 / 当日
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:调用函数
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
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:调用函数
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:调用函数
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
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
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:调用函数
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:调用函数
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
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
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:调用函数
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:调用函数
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:调用函数
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:调用函数
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:调用函数
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:调用函数
endt := 20221231T;
SetSysParam(pn_stock(), "SH600519");
setsysparam(pn_StockArr(), getbkbydate("SH000300", endt));
return ScaleOfSeriesOftheReport(@ReportOfAll(46002, DefaultRepID()), 20221231, 1);