Files
playbook/docs/tsl/codegen/dotnet/datawarehouse/n.md
T
2026-07-07 08:44:07 +00:00

516 lines
23 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 数据仓库 / N期
## `accOfNReport(exp, report_id, n, report_type, if_stand, return_type)`
N期加速度算子
| 参数 | 类型 | 说明 |
| ------------- | -------- | -------------------------------------------------------------------------------------------------------- |
| `exp` | expr | 表达式类型,计算相关财务指标,一般与报告期相关,如TTM归属母公司净利润:@Last12MData(DefaultRepID(),46078) |
| `report_id` | datetime | 报告期 |
| `n` | int | 整数,最近N期 |
| `report_type` | int | 报告期类型 |
| `if_stand` | bool | 布尔类型,回归数据是否标准化 |
| `return_type` | int | 整型,返回类型 |
返回:float
### 示例
```tsl
setsysparam(pn_stock(),"SH600519");?
return ACCOfNReport(@Last12MData(DefaultRepID(),46078),20201231,8,1);
```
## `accOfNReport2(exp, report_id, n)`
N季加速度,与ACCOfNReport的区别在于仅支持季度数据计算,与系统证券相关
| 参数 | 类型 | 说明 |
| ----------- | -------- | ----------------------------------------------------------------------------------------------------------- |
| `exp` | expr | 表达式类型,计算相关财务指标,一般与报告期相关,;如TTM归属母公司净利润为@Last12MData(DefaultRepID(),46078) |
| `report_id` | datetime | 报告期 |
| `n` | int | 整数,最近N季 |
返回:float
### 示例
```tsl
setsysparam(pn_stock(),"SH600000");
Exp:=@reportofall(9900002,GetSysParam('DefaultRepID'));
ReportID:=20211231;
N:=8;
return RobustACCOfNReport2(Exp,ReportID,N);   //-0.2568
```
## `avgOfNReport(exp, report_id, n, report_type)`
当前时间ReportID向前推N年,返回从ReportID-N到ReportID时间报告期Exp指标平均值,与系统参数(股票)相关。
| 参数 | 类型 | 说明 |
| ------------- | ---- | -------------------------------- |
| `exp` | Expr | 函数表达式 |
| `report_id` | int | 报告期 |
| `n` | int | 整数,期数 |
| `report_type` | int | 整数,0:年度,1:季度,默认年度 |
返回:float
## `avgOfNReport2(exp, report_id, n)`
N个季度报告期数据的平均值,与系统证券相关
| 参数 | 类型 | 说明 |
| ----------- | -------- | ----------------------------------------------------------------------------------------------------------- |
| `exp` | expr | 表达式类型,计算相关财务指标,一般与报告期相关,;如TTM归属母公司净利润为@Last12MData(DefaultRepID(),46078) |
| `report_id` | datetime | 报告期 |
| `n` | int | 整数,最近N季 |
返回:float
### 示例
```tsl
setsysparam(pn_stock(),"SH600000");
Exp:=@reportofall(46002,GetSysParam('DefaultRepID'));
ReportID:=20211231;
N:=8;
return AvgOfNReport2(Exp,ReportID,N);   //122912375000
```
## `continuedMatchOfNReport(exp, report_id, n)`
当前时间ReportID向前推N年,若从ReportID-N到ReportID时间均存在报告Exp则返回1,否则返回0,与系统参数(股票)相关。
| 参数 | 类型 | 说明 |
| ----------- | ---- | -------------- |
| `exp` | Expr | 布尔公式表达式 |
| `report_id` | int | 报告期 |
| `n` | int | 整数 |
返回:bool
### 示例
```tsl
判断2014到2015这两年平安银行年报是否全部存在
SetSysParam(pn_stock(),'SZ000001');
return ContinuedMatchOfNReport(@reportofall(46002,GetSysParam('DefaultRepID')),20151231,2);
```
## `eaaOfNReport(exp, report_id, last_report_type)`
N期加速度EAA
| 参数 | 类型 | 说明 |
| ------------------ | -------- | -------------------------------------------------------------------------------------------------------- |
| `exp` | expr | 表达式类型,计算相关财务指标,一般与报告期相关,如TTM归属母公司净利润:@Last12MData(DefaultRepID(),46078) |
| `report_id` | datetime | 报告期 |
| `last_report_type` | int | 整数,上期报告期类型 |
返回:float
### 示例
```tsl
setsysparam(pn_stock(),"SH600519");
Exp:=@LastQuarterData(DefaultRepID(),46078);
ReportID:=20211231;
LastReportType:=0;
t:=EAAOfNReport(Exp,ReportID,LastReportType);
return t;   //-0.016
```
## `eavOfNReport(exp, report_id, n, report_type, last_report_type)`
N期加速度EAV
| 参数 | 类型 | 说明 |
| ------------------ | -------- | -------------------------------------------------------------------------------------------------------- |
| `exp` | expr | 表达式类型,计算相关财务指标,一般与报告期相关,如TTM归属母公司净利润:@Last12MData(DefaultRepID(),46078) |
| `report_id` | datetime | 报告期 |
| `n` | int | 整数,最近N期 |
| `report_type` | int | 报告期类型 |
| `last_report_type` | int | 整数,上期报告期类型 |
返回:float
### 示例
```tsl
setsysparam(pn_stock(),"SH600519");
Exp:=@LastQuarterData(DefaultRepID(),46078);
ReportID:=20200930;
N:=8;
ReportType:=1; //0:年度,1:季度
LastReportType:=0;
t:=EAVOfNReport(Exp,ReportID,N,ReportType,LastReportType);
return t;    //-0.45
```
## `growthOfNReport(exp, report_id, n, return_type)`
当前时间ReportID向前推N年,返回从ReportID-N与ReportID表达式Exp指标的增长比例,其中returntype决定增长模式,与系统参数(股票)相关。
| 参数 | 类型 | 说明 |
| ------------- | ---- | -------------------- |
| `exp` | Expr | 函数表达式 |
| `report_id` | int | 报告期 |
| `n` | int | 整数 |
| `return_type` | int | 用户自定义,返回类型 |
返回:float
### 示例
```tsl
返回平安银行2014年与2015年报营业收入增长比例
SetSysParam(pn_stock(),'SZ000001');
return GrowthOfNReport(@reportofall(46002,GetSysParam('DefaultRepID')),20151231,1,1);
```
## `highestOfNReport(exp, report_id, n, report_type)`
表达式N期最高
| 参数 | 类型 | 说明 |
| ------------- | ------ | ----------------- |
| `exp` | string | 字符串,函数表达式 |
| `report_id` | int | 整数,报告期 |
| `n` | int | 整数,期数 |
| `report_type` | int | 整数,报告期类型 |
返回:float
### 示例
```tsl
SetSysParam(pn_stock(),"SH600585");
return HighestOfNReport(@ReportOfAll(46080,DefaultRepID()),20221231,5,0);
```
## `highGrowthOfNReport(exp, report_id, n, report_type, range)`
N期高速增长拐点:最近N期中,第N期数据上升且大于前N-1期极差的range倍 max=max(前N-1期数据) min=min(前N-1期数据) 第N期>上期+range\*(max-min)
| 参数 | 类型 | 说明 |
| ------------- | -------- | -------------------------------------------------------------------------------------------------------- |
| `exp` | expr | 表达式类型,计算相关财务指标,一般与报告期相关,如TTM归属母公司净利润:@Last12MData(DefaultRepID(),46078) |
| `report_id` | datetime | 报告期 |
| `n` | int | 整数,最近N期 |
| `report_type` | int | 报告期类型 |
| `range` | float | 实数,前N-1期极差的Range倍,用于衡量高速增长的幅度,默认取3 |
返回:bool
### 示例
```tsl
setsysparam(pn_stock(),"SZ002340");
Exp:=@LastQuarterData(GetSysParam('DefaultRepID'),9900604);
ReportID:=20210331;
N:=5;
ReportType:=1; //0:年度,1:季度
Range:=3;
t:=HighGrowthOfNReport(Exp,ReportID,N,ReportType,Range);
return t;     //1
```
## `lowestOfNReport(exp, report_id, n, report_type)`
表达式N期最低
| 参数 | 类型 | 说明 |
| ------------- | ------ | ----------------- |
| `exp` | string | 字符串,函数表达式 |
| `report_id` | int | 整数,报告期 |
| `n` | int | 整数,期数 |
| `report_type` | int | 整数,报告期类型 |
返回:float
### 示例
```tsl
SetSysParam(pn_stock(),"SH600585");
return lowestOfNReport(@ReportOfAll(46080,DefaultRepID()),20221231,5,0);
```
## `occuredOfNReport(exp, report_id, n)`
当前时间ReportID向前推N年,返回从ReportID-N到ReportID时间发生报告Exp的次数,与系统参数(股票)相关。
| 参数 | 类型 | 说明 |
| ----------- | ---- | -------------- |
| `exp` | Expr | 布尔公式表达式 |
| `report_id` | int | 报告期 |
| `n` | int | 整数 |
返回:int
### 示例
```tsl
返回平安银行截止到2015年12月31日的所有年报数量
SetSysParam(pn_stock(),'SZ000001');
returnOccuredOfNReport(@reportofall(46002,GetSysParam('DefaultRepID')),20151231,100);
```
## `occuredRepIdOfNReport(exp, report_id, n)`
当前时间ReportID向前推N年,若从ReportID-N到ReportID时间存在报告Exp则返回报告期,与系统参数(股票)相关。
| 参数 | 类型 | 说明 |
| ----------- | ------ | -------------- |
| `exp` | any | 布尔公式表达式 |
| `report_id` | string | 报告期 |
| `n` | any | 整数,期数 |
返回:any
## `refReportValue(exp, report_id, n)`
当前时间ReportID向前推N年,返回ReportID-N时间点表达式 Exp指标值,与系统参数(股票)相关。
| 参数 | 类型 | 说明 |
| ----------- | ---- | ---------- |
| `exp` | Expr | 函数表达式 |
| `report_id` | int | 报告期 |
| `n` | int | 整数 |
返回:float
### 示例
```tsl
返回平安银行2015年年报营业收入额
SetSysParam(pn_stock(),'SZ000001');
return RefReportValue(@reportofall(46002,GetSysParam('DefaultRepID')),20161231,1);
```
## `robustAccOfNReport(exp, report_id, n, report_type, last_report_type)`
N期稳健加速度
| 参数 | 类型 | 说明 |
| ------------------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `exp` | expr | 表达式类型,计算相关财务指标,一般与报告期相关,通常以增长率来表示增速。;如TTM净利润增长率(%)表达式为@Last12MData(DefaultRepID(),9900604) |
| `report_id` | datetime | 报告期 |
| `n` | int | 整数,最近N期 |
| `report_type` | int | 报告期类型 |
| `last_report_type` | int | 整数,上期报告期类型,默认与ReportType取值相同(兼容历史) |
返回:float
### 示例
```tsl
setsysparam(pn_stock(),"SH600519");
return RobustACCOfNReport(@Last12MData(DefaultRepID(),9900604),20201231,8,0); // -0.0878801178157446
```
## `robustAccOfNReport2(exp, report_id, n)`
N季稳健加速度,与RobustACCOfNReport的区别在于仅支持季度数据计算,与系统证券相关
| 参数 | 类型 | 说明 |
| ----------- | -------- | ----------------------------------------------------------------------------------------------------------- |
| `exp` | expr | 表达式类型,计算相关财务指标,一般与报告期相关,;如TTM归属母公司净利润为@Last12MData(DefaultRepID(),46078) |
| `report_id` | datetime | 报告期 |
| `n` | int | 整数,最近N季 |
返回:float
### 示例
```tsl
setsysparam(pn_stock(),"SH600000");
Exp:=@reportofall(9900002,GetSysParam('DefaultRepID'));
ReportID:=20211231;
N:=8;
return RobustACCOfNReport2(Exp,ReportID,N);   //-0.2568
```
## `robustGrowthOfNReport2(exp, report_id, n)`
N季稳健增速,与RobustGrowthOfNReport的区别在于仅支持季度数据计算,与系统证券相关
| 参数 | 类型 | 说明 |
| ----------- | -------- | ----------------------------------------------------------------------------------------------------------- |
| `exp` | expr | 表达式类型,计算相关财务指标,一般与报告期相关,;如TTM归属母公司净利润为@Last12MData(DefaultRepID(),46078) |
| `report_id` | datetime | 报告期 |
| `n` | int | 整数,最近N季 |
返回:float
### 示例
```tsl
setsysparam(pn_stock(),"SH600000");
Exp:=@reportofall(9900002,GetSysParam('DefaultRepID'));
ReportID:=20211231;
N:=8;
return RobustGrowthOfNReport2(Exp,ReportID,N); //-0.3269
```
## `secondOrderGrowthOfNReport(exp, report_id, n, report_type)`
N期二阶增长拐点:最近N期中,前N-1期逐渐下降,第N期数据上升 l 参数: Exp:表达式类型,计算相关财务指标,一般与报告期相关,如TTM归属母公司净利润:@Last12MData(DefaultRepID(),46078) ReportID:报告期 N:整数,最近N期 ReportType:报告期类型 取值 含义 备注 0 年度标准(默认) 假设ReportID:=20200930N=2,对应最近N个报告期为20190930、20200930 1 季度标准 假设ReportID:=20200930N=2,对应最近N个报告期为20200630、20200930
| 参数 | 类型 | 说明 |
| ------------- | -------- | ---- |
| `exp` | expr | |
| `report_id` | datetime | |
| `n` | int | |
| `report_type` | int | |
返回:bool
### 示例
```tsl
setsysparam(pn_stock(),"SZ000636");
Exp:=@LastQuarterData(GetSysParam('DefaultRepID'),9900604);
ReportID:=20200331;
N:=5;
ReportType:=1; //0:年度,1:季度
t:=SecondOrderGrowthOfNReport(Exp,ReportID,N,ReportType);
return t;    //1
```
## `standGrowthOfNReport(exp, report_id, n, report_type)`
N期标准化增长率
| 参数 | 类型 | 说明 |
| ------------- | -------- | -------------------------------------------------------------------------------------------------------- |
| `exp` | expr | 表达式类型,计算相关财务指标,一般与报告期相关,如TTM归属母公司净利润:@Last12MData(DefaultRepID(),46078) |
| `report_id` | datetime | 报告期 |
| `n` | int | 整数,最近N期 |
| `report_type` | int | 报告期类型 |
返回:float
### 示例
```tsl
setsysparam(pn_stock(),"SH600519");
Exp:=@LastQuarterData(GetSysParam('DefaultRepID'),46078);
ReportID:=20211231;
N:=8;
ReportType:=1; //0:年度,1:季度
t:=StandGrowthOfNReport(Exp,ReportID,N,ReportType);
return t;   //1.265
```
## `stdOfNReport2(exp, report_id, n)`
N个季度报告期数据的标准差,与系统证券相关
| 参数 | 类型 | 说明 |
| ----------- | -------- | ----------------------------------------------------------------------------------------------------------- |
| `exp` | expr | 表达式类型,计算相关财务指标,一般与报告期相关,;如TTM归属母公司净利润为@Last12MData(DefaultRepID(),46078) |
| `report_id` | datetime | 报告期 |
| `n` | int | 整数,最近N季 |
返回:float
### 示例
```tsl
setsysparam(pn_stock(),"SH600000");
Exp:=@reportofall(46002,GetSysParam('DefaultRepID'));
ReportID:=20211231;
N:=8;
return StdOfNReport2(Exp,ReportID,N);  //56286669451.8528
```
## `sumOfNReport(exp, report_id, n)`
当前时间ReportID向前推N年,返回从ReportID-N到ReportID时间报告期Exp指标和,与系统参数(股票)相关。
| 参数 | 类型 | 说明 |
| ----------- | ---- | ---------- |
| `exp` | Expr | 函数表达式 |
| `report_id` | int | 报告期 |
| `n` | int | 整数,期数 |
返回:float
### 示例
```tsl
计算平安银行2015年报与2014年报营业收入的和
SetSysParam(pn_stock(),'SZ000001');
return SumOfNReport(@reportofall(46002,GetSysParam('DefaultRepID')),20151231,2);
```
## `sumOfNReport2(exp, report_id, n)`
N个季度报告期数据之和,与系统证券相关
| 参数 | 类型 | 说明 |
| ----------- | -------- | --------------------------------------------------------------------------------------------------------- |
| `exp` | expr | 表达式类型,计算相关财务指标,一般与报告期相关,;如TTM归属母公司净利润@Last12MData(DefaultRepID(),46078) |
| `report_id` | datetime | 报告期 |
| `n` | int | 整数,最近N季 |
返回:float
### 示例
```tsl
setsysparam(pn_stock(),"SH600000");
Exp:=@reportofall(46002,GetSysParam('DefaultRepID'));
ReportID:=20211231;
N:=8;
return SumOfNReport2(Exp,ReportID,N);  //983299000000
```
## `turnPositiveOfNReport(exp, report_id, n, report_type)`
N期转正拐点:最近N期中,前N-1期数据小于0,第N期数据大于0
| 参数 | 类型 | 说明 |
| ------------- | -------- | -------------------------------------------------------------------------------------------------------- |
| `exp` | expr | 表达式类型,计算相关财务指标,一般与报告期相关,如TTM归属母公司净利润:@Last12MData(DefaultRepID(),46078) |
| `report_id` | datetime | 报告期 |
| `n` | int | 整数,最近N期 |
| `report_type` | int | 报告期类型 |
返回:bool
### 示例
```tsl
setsysparam(pn_stock(),"SH600110");
Exp:=@LastQuarterData(GetSysParam('DefaultRepID'),42017);  //季度扣非净利润
ReportID:=20210331;
N:=5;
ReportType:=1; //0:年度,1:季度
t:=TurnPositiveOfNReport(Exp,ReportID,N,ReportType);
return t;   //1
```
## `robustGrowthOfNReport(exp, report_id, n, report_type)`
过去N期稳健增速,与系统证券相关
| 参数 | 类型 | 说明 |
| ------------- | ----------- | ----------------------------------------------------------------------- |
| `exp` | TExpression | 表达式类型,计算相关财务指标,一般与报告期相关,通常以增长率来表示增速. |
| `report_id` | RDate | 报告期 |
| `n` | Int | 整数,最近N期 |
| `report_type` | Int | 报告期类型 |
返回:Real
### 示例
```tsl
setSysParam(pn_stock(),"SH600519");
return robustGrowthOfNReport(@last12MData(defaultRepId(),9900604),
20201231,8,0); // 0.916987656203954
```