Files
playbook/skills/tsl-api-reference/references/codegen/dotnet/financial/financial_analysis-intermediate.md
T
csh 9010829c6d 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.
2026-08-10 18:26:24 +08:00

23 KiB
Raw Blame History

金融 / 财务分析 / 中间函数

allCosts(r_date)

声明:function

成本合计

参数 类型 说明
r_date integer 整数,报告期

返回:real

示例

范例01:2024年年报白云机场的成本合计

// 2024年年报白云机场的成本合计

setsysparam(pn_stock(), 'SH600004');

setsysparam(pn_date(), 20250923T);

v := AllCosts(20241231);

return v;
// 输出:6156229603.83

范例02:指定2024三季报,取白云机场成本合计的TTM

// 指定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年的会计年度报告期的成本合计

// 指定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三季报,取白云机场第三季度单季度的成本合计

// 指定2024三季报,取白云机场第三季度单季度的成本合计

setsysparam(pn_stock(), 'SH600004');

setsysparam(pn_date(), 20250923T);

SetSysParam(CT_QuarterData(), True); // 计算单季度

v := AllCosts(20240930);

return v;
// 输出:1555275089.96

范例05:取白云机场在2019年年报的成本合计调整前与调整后

// 取白云机场在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个季报的数据和手算最近一个季报的数据

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

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年度的值

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年年报白云机场的现金及现金等价物的期末余额

// 2024年年报白云机场的现金及现金等价物的期末余额

setsysparam(pn_stock(), 'SH600004');

setsysparam(pn_date(), 20250930T);

v := EndingBalanceofCashAndEquivalent(20241231);

return v;
// 输出:4718491377.13

范例02:指定2024年一季报,取白云机场在报告期时的最近1年的会计年度报告期的现金及现金等价物的期末余额

// 指定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年年报的现金及现金等价物的期末余额调整前与调整后

// 取白云机场在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:调用函数

// 指定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:调用函数

// 指定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:调用函数

// 指定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:调用函数

// 指定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:调用函数

// 指定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:调用函数

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年年报白云机场的营业外收支净额

// 2024年年报白云机场的营业外收支净额

setsysparam(pn_stock(), 'SH600004');

setsysparam(pn_date(), 20250923T);

v := NonOperatingDifference(20241231);

return v;
// 输出:1402961.42

范例02:指定2024三季报,取白云机场营业外收支净额的TTM

// 指定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年的会计年度报告期的营业外收支净额

// 指定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三季报,取白云机场第三季度单季度的营业外收支净额

// 指定2024三季报,取白云机场第三季度单季度的营业外收支净额

setsysparam(pn_stock(), 'SH600004');

setsysparam(pn_date(), 20250923T);

SetSysParam(CT_QuarterData(), True); // 计算单季度

v := NonOperatingDifference(20240930);

return v;
// 输出:-1950069.12

范例05:取白云机场在2019年年报的营业外收支净额调整前与调整后

// 取白云机场在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年年报白云机场的三项费用合计

// 2024年年报白云机场的三项费用合计

setsysparam(pn_stock(), 'SH600004');

setsysparam(pn_date(), 20250926T);

v := ThreeExpenses(20241231);

return v;
// 输出:577286851.84

范例02:指定2024三季报,取白云机场三项费用合计的TTM

// 指定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年的会计年度报告期的三项费用合计

// 指定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三季报,取白云机场第三季度单季度的三项费用合计

// 指定2024三季报,取白云机场第三季度单季度的三项费用合计

setsysparam(pn_stock(), 'SH600004');

setsysparam(pn_date(), 20250926T);

SetSysParam(CT_QuarterData(), True); // 计算单季度

v := ThreeExpenses(20240930);

return v;
// 输出:154451315.03

范例05:取白云机场在2019年年报的三项费用合计调整前与调整后

// 取白云机场在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年年报白云机场的现金流入合计

// 2024年年报白云机场的现金流入合计

setsysparam(pn_stock(), 'SH600004');

setsysparam(pn_date(), 20250930T);

v := TotalCashIn(20241231);

return v;
// 输出:8577895085.81

范例02:指定2024三季报,取白云机场现金流入合计的TTM

// 指定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年的会计年度报告期的现金流入合计

// 指定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三季报,取白云机场第三季度单季度的现金流入合计

// 指定2024三季报,取白云机场第三季度单季度的现金流入合计

setsysparam(pn_stock(), 'SH600004');

setsysparam(pn_date(), 20250930T);

SetSysParam(CT_QuarterData(), True); // 计算单季度

v := TotalCashIn(20240930);

return v;
// 输出:2445692755.73

范例05:取白云机场在2015年年报的现金流入合计调整前与调整后

// 取白云机场在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年年报白云机场的现金流出合计

// 2024年年报白云机场的现金流出合计

setsysparam(pn_stock(), 'SH600004');

setsysparam(pn_date(), 20250930T);

v := TotalCashout(20241231);

return v;
// 输出:6380980977.95

范例02:指定2024三季报,取白云机场现金流出合计的TTM

// 指定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年的会计年度报告期的现金流出合计

// 指定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三季报,取白云机场第三季度单季度的现金流出合计

// 指定2024三季报,取白云机场第三季度单季度的现金流出合计

setsysparam(pn_stock(), 'SH600004');

setsysparam(pn_date(), 20250930T);

SetSysParam(CT_QuarterData(), True); // 计算单季度

v := TotalCashout(20240930);

return v;
// 输出:1990833026.77

范例05:取白云机场在2019年三季报的现金流出合计调整前与调整后

// 取白云机场在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年年报格力电器的营运资金

// 2024年年报格力电器的营运资金

oV := BackUpSystemParameters2();

setsysparam(pn_stock(), 'SZ000651');

v := WorkingCapital(20241231);

return v;
// 输出:23677467270.02

范例02:指定2024年一季报,取格力电器在报告期时的最近1年的会计年度报告期的营运资金

// 指定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年年报的营运资金调整前与调整后

// 取白云机场在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),由于调整前与调整后参与计算的数据有变动,因此结果有差异