A:
一、不同函数算法比较
市盈率相关函数
计算个股市盈率常用的模型有StockPE、StockPE_II、StockPE_III、StockPE_IV、StockPE_VI、StockPE3、StockPE3_II、StockPE3_V、StockPE3_VI。
算法:
市盈率=总市值/净利润
参数DataType说明:
其参数DataType表明分母净利润是否采用扣非净利润,其取值说明:
DataType值 | 净利润取值
|
---|
0 | 归属于母公司所有者净利润(46078),默认值,历史版本取值模式
|
1 | 扣除非经常性损益后的净利润
|
不同模型计算市盈率时取的数据可能会有差异,具体如下:
1)
StockPE(EndT,DataType):与当前股票有关。
指定日市盈率(最新年度报告)=指定日总市值/最新年度报告的净利润
PS:StockPE3(DataType)等同于StockPE(sp_time(1),DataType),与当前股票、时间有关。
2)
StockPE_II(EndT,DataType):与当前股票有关。
市盈率(指定财务数据加权)=指定日总市值/(指定日最新报告期的净利润*加权系数)
其中,加权系数的计算方法:最新报告期Rdate对应的月份m,加权系数=12/m。
PS:StockPE3_II(DataType)等同于StockPE_II(sp_time(1),DataType),与当前股票、时间有关。
3)
StockPE_III(EndT,RDate,DataType):与当前股票有关。
市盈率(指定财务数据加权)=指定日总市值/(指定报告期的净利润*加权系数)
注:与StockPE_II(EndT,DataType)的差别在于StockPE_III的报告期RDate是作为参数传入的,而StockPE_II取的是Endt对应的最新报告期。
4)
StockPE_IV(EndT,DataType):与当前股票有关。
指定日市盈率(专用)=指定日总市值/(指定日当年三季报净利润/3*2+指定日当年中报净利润)
PS:StockPE3_IV(DataType)等同于StockPE_IV(sp_time(1),DataType),与当前股票、时间有关。
5)
StockPE_VI(EndT,DataType):与当前股票有关。
市盈率(最近12个月)=指定日总市值/最近12个月净利润(按公布日)
PS:1、当DataType为空或者0时,
(1)StockPE_V(EndT,DataType)兼容历史版本StockPE_V(EndT),但已被废弃;
(2)StockPE3_V(DataType)兼容历史版本StockPE3_V();
2、StockPE_V(EndT,DataType)等同于StockPE_VI(EndT,DataType),与当前股票有关;
3、StockPE3_V(DataType)等同于StockPE_VI(sp_time(1),DataType),与当前股票、时间有关。
范例一:
// 获取平安银行2020-06-29最新年度报告的市盈率,净利润为归属母公司的净利润
EndT:=20200629T;
SetSysParam(PN_Stock(),'SZ000001');
SetSysParam(PN_ChangedDateMode(),0);//指定日的股本考虑公布日
return StockPE(EndT,0);//8.809922
股票不同市净率函数算法比较
计算市净率常用的模型有StockPNA、StockPNA_II、StockPNA_III、StockPNA_VI、StockPNA3、StockPNA3_II、StockPNACutGW_I、StockPNACutGW_II、StockPNACutGW_III、StockPNACutGW3_I、StockPNACutGW3_II、StockPNACutGW3_III。
每个模型计算的市净率取的数据不同。计算数据及方法如下:
1)
StockPNA(EndT):与当前股票有关。
指定日市净率(最新年度报告)=指定日总市值/最新年度报告净资产
PS:StockPNA3()等同于StockPNA(sp_time(1)),与当前股票、时间有关。
2)
StockPNA_VI(EndT):与当前股票有关。
指定日市净率(最新财务数据,按公布日)=指定日总市值/最近报告期净资产
PS:1、StockPNA_II(EndT)等同于StockPNA_VI(EndT),但已被废弃;
2、StockPNA3_II()等同于StockPNA_VI(sp_time(1)),与当前股票、时间有关。
3)
StockPCF3_III(EndT,RDate):与当前股票有关。
指定日市净率(指定财务数据)=指定日总市值/指定报告期净资产
4)
StockPNACutGW_I(EndT):与当前股票有关。
指定日市净率I(扣除商誉、最新年度报告)=指定日总市值/指定日最新年度报告(净资产-商誉)
净资产取指定日最新年度报告的归属母公司股东权益合计。
PS:StockPNACutGW3_I()等同于StockPNACutGW_I(sp_time(1)),与当前股票、时间有关。
5)
StockPNACutGW_II(EndT):与当前股票有关。
指定日市净率II(扣除商誉、最新财务数据)=指定日总市值/指定日最近报告期(净资产-商誉)
净资产取最近报告期的归属母公司股东权益合计-按公布日
PS:StockPNACutGW3_II()等同于StockPNACutGW_II(sp_time(1)),与当前股票、时间有关。
6)
StockPNACutGW_III(EndT,RDate):与当前股票有关。
指定日市净率III(扣除商誉、指定财务数据)=指定日总市值/指定报告期(净资产-商誉)
净资产取指定报告期的归属母公司股东权益合计。
PS:StockPNACutGW3_III(RDate)等同于StockPNACutGW_III(sp_time(1),RDate),与当前股票、时间有关。
范例二:
// 获取平安银行2020-06-29指定财务数据的扣除商誉的市净率
EndT:=20200629T;
RDate:=20200331;
SetSysParam(PN_Stock(),'SZ000001');
SetSysParam(PN_Date(),EndT);
return StockPNACutGW3_III(RDate);//0.720432
股票不同市现率函数算法比较
计算市现率常用的模型有StockPCF、StockPCF_II、StockPCF_III、StockPCF_VI、StockPCF3、StockPCF3_II、StockPCF3_V。
每个模型计算的市现率取的数据不同。计算数据及方法如下:
1)
StockPCF(EndT):与当前股票有关。
指定日市现率(最新年度报告)=指定日总市值/指定日最新年度报告经营活动产生的现金流量净额
PS:StockPCF3()等同于StockPCF(sp_time(1)),与当前股票、时间有关。
2)
StockPCF_II(EndT):与当前股票有关。
指定日市现率(最新财务数据加权)=指定日收盘价/指定日(最近一期每股经营现金流量*加权系数)
=指定日总市值/指定日(最近一期经营活动产生的现金流量净额*加权系数)
PS:StockPCF3_II()等同于StockPCF_II(sp_time(1)),与当前股票、时间有关。
3)
StockPCF_III(EndT,RDate):与当前股票有关。
指定日市现率(指定财务数据加权)=指定日总市值/(指定报告期经营活动产生的现金流量净额*加权系数)
4)
StockPCF_VI(EndT):与当前股票有关。
指定日市现率(最近12个月,按公布日) =指定日总市值/指定日最近12个月经营活动产生的现金流量净额
PS:1、StockPCF_V(EndT)等同于StockPCF_VI(EndT),但已被废弃。
2、StockPCF3_V()等同于StockPCF_VI(sp_time(1)),与当前股票、时间有关。
范例三:
// 获取平安银行2020-06-29最近12个月经营活动产生的现金流量净额的市现率
EndT:=20200629T;
SetSysParam(PN_Stock(),'SZ000001');
return StockPCF_VI(EndT);// -3.302257
股票不同市销率函数算法比较
计算市现率常用的模型有StockPMI、StockPMI_II、StockPMI_III、StockPMI_VI、StockPMI3、StockPMI3_II、StockPMI3_V。
每个模型计算的市销率取的数据不同。计算数据及方法如下:
1)
StockPMI(EndT):与当前股票有关。
指定日市销率(最新年度报告)=指定日总市值/指定日最新年度报告主营收入
PS:StockPMI3()等同于StockPMI(sp_time(1)),与当前股票、时间有关。
2)
StockPMI_II(EndT):与当前股票有关。
指定日市销率(最新财务数据加权)=指定日总市值/指定日(最近一期主营收入*加权系数)
PS:StockPMI3_II()等同于StockPMI_II(sp_time(1)),与当前股票、时间有关。
3)
StockPMI_III(EndT,RDate):与当前股票有关。
指定日市销率(指定财务数据加权)=指定日总市值/(指定报告期主营收入*加权系数)
4)
StockPMI_VI(EndT):与当前股票有关。
指定日市销率(最近12个月,按公布日) =指定日总市值/指定日最近12个月主营收入
PS:1、StockPMI_V(EndT)等同于StockPMI_VI(EndT),但已被废弃。
2、StockPMI3_V()等同于StockPMI_VI(sp_time(1)),与当前股票、时间有关。
范例四:
// 获取平安银行2020-06-29最新财务数据加权的市销率
EndT:=20200629T;
SetSysParam(PN_Stock(),'SZ000001');
SetSysParam(PN_Date(),EndT);
return StockPMI3_II();// 1.637371
二、对StockTotalValue函数2019-04-15使用影响的特别说明
2019-04-15 主要对2个底层函数GetNShares和StockShares进行了升级,新增一个系统参数PN_ChangedDateMode(),对旧模型进行兼容,详见FAQ:
2019-04-22-数据更新-数据更新019:关于股本函数的升级说明
天软提供的旧模型,主要通过变动日进行判断,获取在EndT前最后一次变动的股本数据。旧模型没有考虑数据的公布日。
获取股本数据时,
(1)升级前,仅考虑变动日;
(2)升级后,同时考虑变动日和公布日,并兼容“仅考虑变动日”的情况。
提供股本及相关函数的使用说明,即在调用股本及相关函数前先设置语句:
(1)“仅考虑变动日”:setsysparam(PN_ChangedDateMode(),1)
(2)“考虑变动日和公布日”:setsysparam(PN_ChangedDateMode(),0)
升级后,默认设置为“考虑变动日和公布日”
由于市盈率、市净率、市现率、市销率指标涉及到StockTotalValue的使用,2019年升级后对部分数据结果可能受影响,用户应注意PN_ChangedDateMode()的使用。
三、不再进行维护的函数,历史版本特别说明(2017-11-14之前的版本)
函数名称 | 函数别名 | 接口 | 算法说明 |
---|
StockPE_V | 指定日市盈率(最近12个月) | EndT,DataType | =指定日(总市值/最近12个月净利润),与当前股票有关。
等同于StockPE_VI(EndT,DataType) |
StockPNA_II | 指定日市净率(最新财务数据) | EndT | =指定日(总市值/最近报告期净资产),与当前股票有关,净资产为归属母公司股东权益合计
等同于StockPNA_VI(EndT) |
StockPCF_V | 指定日市现率(最近12个月) | EndT | =指定日(总市值/最近12个月经营活动产生的现金流量净额),与当前股票有关
等同于StockPCF_VI(EndT) |
StockPMI_V | 指定日市销率(最近12个月) | EndT | =指定日(总市值/最近12个月主营收入),与当前股票有关
等同于StockPMI_VI(EndT)
|