feat(tsl-api-reference): expand and reorganize api catalog

Flatten builtin pages, add third-party and platform scopes, and import financial and data warehouse references.

Keep the existing generated index without rebuilding after signature normalization.
This commit is contained in:
csh
2026-08-10 18:26:24 +08:00
parent 2938300acb
commit 9010829c6d
1186 changed files with 243901 additions and 219769 deletions
@@ -0,0 +1,978 @@
# 金融 / 财务分析 / 中间函数
## `allCosts(r_date)`
声明:function
成本合计
| 参数 | 类型 | 说明 |
| -------- | ------- | ------------ |
| `r_date` | integer | 整数,报告期 |
返回:real
### 示例
范例01:2024年年报白云机场的成本合计
```tsl
// 2024年年报白云机场的成本合计
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), 20250923T);
v := AllCosts(20241231);
return v;
// 输出:6156229603.83
```
范例02:指定2024三季报,取白云机场成本合计的TTM
```tsl
// 指定2024三季报,取白云机场成本合计的TTM
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), 20250923T);
SetSysParam(CT_TTMData(), True); // 计算TTM
v := AllCosts(20240930);
return v;
// 输出:5963808190.57
```
范例03:指定2024年一季报,取白云机场在报告期时的最近1年的会计年度报告期的成本合计
```tsl
// 指定2024年一季报,取白云机场在报告期时的最近1年的会计年度报告期的成本合计
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), 20250923T);
setsysparam(CT_YearData(), true); // 计算最近会计年度
setsysparam(CT_RecentYear(), 1); // 最近1年
v := AllCosts(20240331);
return v;
// 输出:5795008385.86
```
范例04:指定2024三季报,取白云机场第三季度单季度的成本合计
```tsl
// 指定2024三季报,取白云机场第三季度单季度的成本合计
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), 20250923T);
SetSysParam(CT_QuarterData(), True); // 计算单季度
v := AllCosts(20240930);
return v;
// 输出:1555275089.96
```
范例05:取白云机场在2019年年报的成本合计调整前与调整后
```tsl
// 取白云机场在2019年年报的成本合计调整前与调整后
// 20210430公布2020年年报对2019年年报中的营业费用数据进行了调整
setsysparam(pn_stock(), 'SH600004');
RDate := 20191231;
// 调整前:设置指定日早于调整后公布日
setsysparam(pn_date(), 20200630T);
v1 := AllCosts(RDate);
// 调整后:设置指定日晚于调整后公布日
setsysparam(pn_date(), 20210630T);
v2 := AllCosts(RDate);
return array(v1, v2);
// 输出:array(6663821465.96,6931545590.87),由于调整前与调整后参与计算的数据有变动,因此结果有差异
```
## `ct_getNearestQuarter()`
声明:function
返回字符串常量'GetTheNearest',对应最近季度。 该常量需与CT_QuarterData常量配合使用,返回最近1个季度的数据。比如20120630,将返回20120630季报数据
返回:string
### 示例
范例01:对比设置最近1个季报的数据和手算最近一个季报的数据
```tsl
oV := BackupSystemParameters2();
// 对比设置最近1个季报的数据和手算最近一个季报的数据
setsysparam(pn_stock(), 'SZ000002');
v1 := EPS(20120630);
// RP1:20120630净利润、RP2:20120331净利润,20120630季度净利润=RP1-RP2
// 20120630季度每股收益=(RP1-RP2)/TS
RP1 := ReportNew(DataBaseRatioId(9), 20120630);
RP2 := ReportNew(DataBaseRatioId(9), 20120331);
TS := StockTotalShares(inttodate(20120630));
v2 := (RP1-RP2)/TS;
SetSysParam(CT_QuarterData(), True);
SetSysParam(CT_GetNearestQuarter(), True);
v3 := EPS(20120630);
return array("20120630报告期数据":v1, "20120331季报数据":v2, "20120630最近1个季报数据":v3);
```
## `ct_quarterGrowRatio()`
声明:function
返回字符串常量'QuarterGrowRatio',对应季度环比(%)。 该常量需与CT_QuarterData常量配合使用,返回最近1个季度的数据。比如20120630,将返回20120630季报数据
返回:string
### 示例
范例01:调用 CT_QuarterGrowRatio
```tsl
oV := BackupSystemParameters2();
{
手算季度环比:报告期RDate季度数据/上一报告期PRDate季度数据-1。
RDate=20120630;
PRDate=20120331;
PV:PRDate季度主营成本比例(%)
PV=PRDate季度主营业务成本/PRDate季度主营业务收入*100
=(PRDate主营业务成本-PRdate1主营业务成本)/(PRDate季度主营业务收入-PRdate1季度主营业务收入)*100
RDate季度环比=PV;
}
setsysparam(pn_stock(), 'SZ000002');
v1 := MainCostRatio(20120630);
PV := (ReportNew(DataBaseRatioId(2), 20120630)-ReportNew(DataBaseRatioId(2), 20120331))
/(ReportNew(DataBaseRatioId(1), 20120630)-ReportNew(DataBaseRatioId(1), 20120331))*100;
v2 := PV;
SetSysParam(CT_QuarterData(), True);
SetSysParam(CT_QuarterGrowRatio(), True);
v3 := MainCostRatio(20120630);
return array("20120630报告期数据":v1, "20120630季度数据":v2, "20120630最近1个季报数据":v3);
```
## `ct_recentYear()`
声明:function
返回字符串常量'RecentYear',对应最近N年。 该常量需与最近1个会计年度CT_YearData()配合使用。数据将返回Rdate之前的N个会计年度的数据。比如Rdate为20120331、20120630、20120930或者20121231时,设置CT_RecentYear为2时,将返回20101231的数据
返回:string
### 示例
范例01:对比设置最近2年度和没有设置最近2年度的值
```tsl
oV := BackupSystemParameters2();
// 对比设置最近2年度和没有设置最近2年度的值
setsysparam(pn_stock(), 'SZ000002');
v1 := EPS(20120630);
v2 := EPS(20101231);
SetSysParam(CT_YearData(), True);
setsysparam(CT_RecentYear(), 2);
v3 := Call("EPS", 20120630);
return array("20120630报告期数据":v1, "20101231报告期数据":v2, "20120630最近2个年度数据":v3);
```
## `endingBalanceofCashAndEquivalent(r_date)`
声明:function
现金及现金等价物的期末余额,与系统参数(证券代码)相关
| 参数 | 类型 | 说明 |
| -------- | ------- | ------------ |
| `r_date` | integer | 整数,报告期 |
返回:real
### 示例
范例01:2024年年报白云机场的现金及现金等价物的期末余额
```tsl
// 2024年年报白云机场的现金及现金等价物的期末余额
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), 20250930T);
v := EndingBalanceofCashAndEquivalent(20241231);
return v;
// 输出:4718491377.13
```
范例02:指定2024年一季报,取白云机场在报告期时的最近1年的会计年度报告期的现金及现金等价物的期末余额
```tsl
// 指定2024年一季报,取白云机场在报告期时的最近1年的会计年度报告期的现金及现金等价物的期末余额
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), 20250930T);
setsysparam(CT_YearData(), true); // 计算最近会计年度
setsysparam(CT_RecentYear(), 1); // 最近1年
v := EndingBalanceofCashAndEquivalent(20240331);
return v;
// 输出:2521546708.25
```
范例03:取白云机场在2019年年报的现金及现金等价物的期末余额调整前与调整后
```tsl
// 取白云机场在2019年年报的现金及现金等价物的期末余额调整前与调整后
// 20210430公布2020年年报对2019年年报中的期末现金及现金等价物余额数据进行了调整
setsysparam(pn_stock(), 'SH600004');
RDate := 20191231;
// 调整前:设置指定日早于调整后公布日
setsysparam(pn_date(), 20200630T);
v1 := EndingBalanceofCashAndEquivalent(RDate);
// 调整后:设置指定日晚于调整后公布日
setsysparam(pn_date(), 20210630T);
v2 := EndingBalanceofCashAndEquivalent(RDate);
return array(v1, v2);
// 输出:array(1217482250.72,1228464103.1),由于调整前与调整后参与计算的数据有变动,因此结果有差异
```
## `financialItem(r_date, info_id)`
声明:function
计算指定报告期RDate的基本面id为InfoId的财务指标
| 参数 | 类型 | 说明 |
| --------- | ------- | -------------- |
| `r_date` | integer | 整数,报告期; |
| `info_id` | integer | 整数,基本面ID |
返回:real
### 示例
范例01:调用函数
```tsl
// 指定2011年报,取万科A净利润
o_v := BackUpSystemParameters2();
setSysParam(pn_stock(), 'SZ000002');
v := financialItem(20111231, 46033);
return v;
// 输出:11599606211.77
```
## `financialItemPs(r_date, info_id)`
声明:function
每股财务指标=财务指标/总股本
| 参数 | 类型 | 说明 |
| --------- | ------- | -------------- |
| `r_date` | integer | 整数,报告期; |
| `info_id` | integer | 整数,基本面ID |
返回:real
### 示例
范例01:调用函数
```tsl
// 指定2011年报,取万科A每股财务指标
o_v := BackUpSystemParameters2();
setSysParam(pn_stock(), 'SZ000002');
v := financialItemPs (20111231, 46033);
return v;
// 输出:1.05
```
## `financialItemRatio(r_date, info_id_1, info_id_2)`
声明:function
财务比率=财务指标1/财务指标2
| 参数 | 类型 | 说明 |
| ----------- | ------- | --------------- |
| `r_date` | integer | 整数,报告期; |
| `info_id_1` | integer | 整数,基本面ID; |
| `info_id_2` | integer | 整数,基本面ID |
返回:real
### 示例
范例01:调用函数
```tsl
// 指定2011年报,取万科A净利润与股东权益合计的比率(净利润/股东权益合计)
o_v := BackUpSystemParameters2();
setSysParam(pn_stock(), 'SZ000002');
v := financialItemRatio(20111231, 46033, 44111);
return v;
// 输出:0.17
```
## `growRatio2(r_date, info_id)`
声明:function
环比增长率(%)。根据设置最近12个月(setsysparam(CT_TTMData(),true))、最近一个季度(setsysparam(CT_QuarterData(),true))、最近一个会计年度(setsysparam(CT_YearData(),true))、指定报告期(不设置),取出最近12个月、最近一个季度、最近一个会计年度、指定报告期的当期数据v1和上一个报告期的数据v2(v1-v2)/abs(v2)\*100即为环比增长率(%)
| 参数 | 类型 | 说明 |
| --------- | ------- | -------------- |
| `r_date` | integer | 整数。报告期 |
| `info_id` | integer | 整数。基本面ID |
返回:real
### 示例
范例01:调用函数
```tsl
// 指定2011年报,取万科A每股净资产环比增长率(%)
setSysParam(pn_stock(), 'SZ000002');
v := growRatio2(20111231, 42006);
return v;
// 输出:12.88
```
## `growRatioOfHG(r_date, info_id)`
声明:function
同比增长率(宏观)(%)=(对应基本面id的财务指标数据-去年同期报告期对应基本面id的财务指标数据)/去年同期报告期对应基本面id的财务指标数据\*100
| 参数 | 类型 | 说明 |
| --------- | ------- | -------------- |
| `r_date` | integer | 整数,报告期; |
| `info_id` | integer | 整数,基本面id |
返回:real
### 示例
范例01:调用函数
```tsl
// 指定2011年报,取万科A净利润同比增长率(宏观)(%)
o_v := BackUpSystemParameters2();
setSysParam(pn_stock(), 'SZ000002');
v := growRatioOfHg(20111231, 46033);
return v;
// 输出:31.22
```
## `itemToFinancialItem(id, r_date)`
声明:function
返回对照的金融类ID
| 参数 | 类型 | 说明 |
| -------- | ------- | --------------- |
| `id` | integer | 整数,基本面ID; |
| `r_date` | integer | 整数,报告期 |
返回:integer
### 示例
范例01:调用函数
```tsl
o_v := BackupSystemParameters2();
setSysParam(pn_stock(), 'SH600000');
// 金融公司资产负债表中的'资产总计'
id := itemToFinancialItem(dataBaseRatioId(46), 20111231);
v := report(id, 20111231);
return array("金融ID":id, "对应的值":v);
注意:结果中返回的金融ID,是使用天软数据对应的ID,如果使用的是别的数据源,对应的ID是不一样的。
```
## `nonOperatingDifference(r_date)`
声明:function
营业外收支净额
| 参数 | 类型 | 说明 |
| -------- | ------- | ------------ |
| `r_date` | integer | 整数,报告期 |
返回:real
### 示例
范例01:2024年年报白云机场的营业外收支净额
```tsl
// 2024年年报白云机场的营业外收支净额
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), 20250923T);
v := NonOperatingDifference(20241231);
return v;
// 输出:1402961.42
```
范例02:指定2024三季报,取白云机场营业外收支净额的TTM
```tsl
// 指定2024三季报,取白云机场营业外收支净额的TTM
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), 20250923T);
SetSysParam(CT_TTMData(), True); // 计算TTM
v := NonOperatingDifference(20240930);
return v;
// 输出:1398518.16
```
范例03:指定2024年一季报,取白云机场在报告期时的最近1年的会计年度报告期的营业外收支净额
```tsl
// 指定2024年一季报,取白云机场在报告期时的最近1年的会计年度报告期的营业外收支净额
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), 20250923T);
setsysparam(CT_YearData(), true); // 计算最近会计年度
setsysparam(CT_RecentYear(), 1); // 最近1年
v := NonOperatingDifference(20240331);
return v;
// 输出:6462705.93
```
范例04:指定2024三季报,取白云机场第三季度单季度的营业外收支净额
```tsl
// 指定2024三季报,取白云机场第三季度单季度的营业外收支净额
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), 20250923T);
SetSysParam(CT_QuarterData(), True); // 计算单季度
v := NonOperatingDifference(20240930);
return v;
// 输出:-1950069.12
```
范例05:取白云机场在2019年年报的营业外收支净额调整前与调整后
```tsl
// 取白云机场在2019年年报的营业外收支净额调整前与调整后
// 20210430公布2020年年报对2019年年报中的营业外支出数据进行了调整
setsysparam(pn_stock(), 'SH600004');
RDate := 20191231;
// 调整前:设置指定日早于调整后公布日
setsysparam(pn_date(), 20200630T);
v1 := NonOperatingDifference(RDate);
// 调整后:设置指定日晚于调整后公布日
setsysparam(pn_date(), 20210630T);
v2 := NonOperatingDifference(RDate);
return array(v1, v2);
// 输出:array(11650943.91,7768039.85),由于调整前与调整后参与计算的数据有变动,因此结果有差异
```
## `threeExpenses(r_date)`
声明:function
三项费用合计,与系统参数(证券代码)相关
| 参数 | 类型 | 说明 |
| -------- | ------- | ------ |
| `r_date` | integer | 报告期 |
返回:real
### 示例
范例01:2024年年报白云机场的三项费用合计
```tsl
// 2024年年报白云机场的三项费用合计
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), 20250926T);
v := ThreeExpenses(20241231);
return v;
// 输出:577286851.84
```
范例02:指定2024三季报,取白云机场三项费用合计的TTM
```tsl
// 指定2024三季报,取白云机场三项费用合计的TTM
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), 20250926T);
SetSysParam(CT_TTMData(), True); // 计算TTM
v := ThreeExpenses(20240930);
return v;
// 输出:539794407.65
```
范例03:指定2024年一季报,取白云机场在报告期时的最近1年的会计年度报告期的三项费用合计
```tsl
// 指定2024年一季报,取白云机场在报告期时的最近1年的会计年度报告期的三项费用合计
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), 20250926T);
setsysparam(CT_YearData(), true); // 计算最近会计年度
setsysparam(CT_RecentYear(), 1); // 最近1年
v := ThreeExpenses(20240331);
return v;
// 输出:568608993.59
```
范例04:指定2024三季报,取白云机场第三季度单季度的三项费用合计
```tsl
// 指定2024三季报,取白云机场第三季度单季度的三项费用合计
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), 20250926T);
SetSysParam(CT_QuarterData(), True); // 计算单季度
v := ThreeExpenses(20240930);
return v;
// 输出:154451315.03
```
范例05:取白云机场在2019年年报的三项费用合计调整前与调整后
```tsl
// 取白云机场在2019年年报的三项费用合计调整前与调整后
// 20210430公布2020年年报对2019年年报中的营业费用数据进行了调整
setsysparam(pn_stock(), 'SH600004');
RDate := 20191231;
// 调整前:设置指定日早于调整后公布日
setsysparam(pn_date(), 20200630T);
v1 := ThreeExpenses(RDate);
// 调整后:设置指定日晚于调整后公布日
setsysparam(pn_date(), 20210630T);
v2 := ThreeExpenses(RDate);
return array(v1, v2);
// 输出:array(528109417.41,681953437.06),由于调整前与调整后参与计算的数据有变动,因此结果有差异
```
## `totalCashIn(r_date)`
声明:function
现金流入合计,与系统参数(证券代码)相关
| 参数 | 类型 | 说明 |
| -------- | ------- | ------------ |
| `r_date` | integer | 整数,报告期 |
返回:real
### 示例
范例01:2024年年报白云机场的现金流入合计
```tsl
// 2024年年报白云机场的现金流入合计
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), 20250930T);
v := TotalCashIn(20241231);
return v;
// 输出:8577895085.81
```
范例02:指定2024三季报,取白云机场现金流入合计的TTM
```tsl
// 指定2024三季报,取白云机场现金流入合计的TTM
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), 20250930T);
SetSysParam(CT_TTMData(), True); // 计算TTM
v := TotalCashIn(20240930);
return v;
// 输出:7670703406.21
```
范例03:指定2024年一季报,取白云机场在报告期时的最近1年的会计年度报告期的现金流入合计
```tsl
// 指定2024年一季报,取白云机场在报告期时的最近1年的会计年度报告期的现金流入合计
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), 20250930T);
setsysparam(CT_YearData(), true); // 计算最近会计年度
setsysparam(CT_RecentYear(), 1); // 最近1年
v := TotalCashIn(20240331);
return v;
// 输出:7218154136.08
```
范例04:指定2024三季报,取白云机场第三季度单季度的现金流入合计
```tsl
// 指定2024三季报,取白云机场第三季度单季度的现金流入合计
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), 20250930T);
SetSysParam(CT_QuarterData(), True); // 计算单季度
v := TotalCashIn(20240930);
return v;
// 输出:2445692755.73
```
范例05:取白云机场在2015年年报的现金流入合计调整前与调整后
```tsl
// 取白云机场在2015年年报的现金流入合计调整前与调整后
// 20170429公布2016年年报对2015年年报中的筹资活动现金流入小计数据进行了调整
setsysparam(pn_stock(), 'SH600004');
RDate := 20151231;
// 调整前:设置指定日早于调整后公布日
setsysparam(pn_date(), 20160630T);
v1 := TotalCashIn(RDate);
// 调整后:设置指定日晚于调整后公布日
setsysparam(pn_date(), 20170630T);
v2 := TotalCashIn(RDate);
return array(v1, v2);
// 输出:array(6042426276.49,6108072646.23),由于调整前与调整后参与计算的数据有变动,因此结果有差异
```
## `totalCashOut(r_date)`
声明:function
现金流出合计,与系统参数(证券代码)相关
| 参数 | 类型 | 说明 |
| -------- | ------- | ------------ |
| `r_date` | integer | 整数,报告期 |
返回:real
### 示例
范例01:2024年年报白云机场的现金流出合计
```tsl
// 2024年年报白云机场的现金流出合计
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), 20250930T);
v := TotalCashout(20241231);
return v;
// 输出:6380980977.95
```
范例02:指定2024三季报,取白云机场现金流出合计的TTM
```tsl
// 指定2024三季报,取白云机场现金流出合计的TTM
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), 20250930T);
SetSysParam(CT_TTMData(), True); // 计算TTM
v := TotalCashout(20240930);
return v;
// 输出:5697553475.4
```
范例03:指定2024年一季报,取白云机场在报告期时的最近1年的会计年度报告期的现金流出合计
```tsl
// 指定2024年一季报,取白云机场在报告期时的最近1年的会计年度报告期的现金流出合计
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), 20250930T);
setsysparam(CT_YearData(), true); // 计算最近会计年度
setsysparam(CT_RecentYear(), 1); // 最近1年
v := TotalCashout(20240331);
return v;
// 输出:6915790881.25
```
范例04:指定2024三季报,取白云机场第三季度单季度的现金流出合计
```tsl
// 指定2024三季报,取白云机场第三季度单季度的现金流出合计
setsysparam(pn_stock(), 'SH600004');
setsysparam(pn_date(), 20250930T);
SetSysParam(CT_QuarterData(), True); // 计算单季度
v := TotalCashout(20240930);
return v;
// 输出:1990833026.77
```
范例05:取白云机场在2019年三季报的现金流出合计调整前与调整后
```tsl
// 取白云机场在2019年三季报的现金流出合计调整前与调整后
// 20201031公布2020年三季报对2019年三季报中的筹资活动现金流出小计数据进行了调整
setsysparam(pn_stock(), 'SH600004');
RDate := 20190930;
// 调整前:设置指定日早于调整后公布日
setsysparam(pn_date(), 20191231T);
v1 := TotalCashout(RDate);
// 调整后:设置指定日晚于调整后公布日
setsysparam(pn_date(), 20201231T);
v2 := TotalCashout(RDate);
return array(v1, v2);
// 输出:array(7610243745.77,8315668704.67),由于调整前与调整后参与计算的数据有变动,因此结果有差异
```
## `workingCapital(r_date)`
声明:function
营运资金
| 参数 | 类型 | 说明 |
| -------- | ------- | ------------ |
| `r_date` | integer | 整数,报告期 |
返回:real
### 示例
范例01:2024年年报格力电器的营运资金
```tsl
// 2024年年报格力电器的营运资金
oV := BackUpSystemParameters2();
setsysparam(pn_stock(), 'SZ000651');
v := WorkingCapital(20241231);
return v;
// 输出:23677467270.02
```
范例02:指定2024年一季报,取格力电器在报告期时的最近1年的会计年度报告期的营运资金
```tsl
// 指定2024年一季报,取格力电器在报告期时的最近1年的会计年度报告期的营运资金
oV := BackUpSystemParameters2();
setsysparam(pn_stock(), 'SZ000651');
setsysparam(CT_YearData(), true); // 计算最近会计年度
setsysparam(CT_RecentYear(), 1); // 最近1年
v := WorkingCapital(20240331);
return v;
// 输出:27158009714.82
```
范例03:取白云机场在2019年年报的营运资金调整前与调整后
```tsl
// 取白云机场在2019年年报的营运资金调整前与调整后
// 20210430公布的2020年年报对2019年年报中的流动资产合计数据进行了调整
setsysparam(pn_stock(), 'SH600004');
RDate := 20191231;
// 调整前:设置指定日早于调整后公布日
setsysparam(pn_date(), 20200630T);
v1 := WorkingCapital(RDate);
// 调整后:设置指定日晚于调整后公布日
setsysparam(pn_date(), 20211024T);
v2 := WorkingCapital(RDate);
return array(v1, v2); // array(-4506286340.07,-4794148128.5),由于调整前与调整后参与计算的数据有变动,因此结果有差异
```