知识库 > 金融建模 > 公用函数 > 扩展函数 > .Net扩展函数 > 板块 > 估值指标

StocksPEPBPMIPNA12_Call    

简述
计算一组股票指定日市盈率、市净率、市销率、市现率(指定财务数据加权)
定义
StocksPEPBPMIPNA12_Call(
StockArr:Array,
EndT:TDateTime,
RightType:Int,
Stype:Int,
SampleSelect:Int,
Criterion:real,
type:Int,
RDateType:Int) : real/array
参数
名称类型说明
StockArrArray,TableArray一维字符串数组,股票列表
EndTTDateTime截止日期
RightTypeinteger加权方式,具体取值如下:
显示名取值
全部-1
总股本加权0
流通股本加权1
中位数2
调和平均数3
Stypeinteger股票类型,具体取值如下:
显示名取值
全部0
只考虑A股1
只考虑B股2
只考虑深圳B股3
只考虑上证B股4
SampleSelectinteger样本股选择,具体取值如下:
显示名取值备注
所有选股方式-1返回各种样本结果
全部0板块中所有个股都参与计算
剔除亏损1剔除每股指标<=0的股票
剔除绩差2剔除每股指标<=Criterion的股票
注:此处的每股指标由参数type决定,详情如下:
取值每股指标
0EndT时点总股本摊薄的最近12个月净利润
1EndT时点总股本摊薄的最近12个月净资产
2EndT时点总股本摊薄的最近12个月主营收入
3EndT时点总股本摊薄的最近12个月经营活动产生的现金流量净额
Criterionreal绩差股标准,和参数SampleSelect结合使用。
场景备注
SampleSelect为0此参数无效
SampleSelect为其他值剔除每股指标<= Criterion的股票
Typeinteger指标类型,具体取值如下:
显示名取值
市盈率0
市净率1
市销率2
市现率3
RightTypeinteger整型,报告期类型,具体取值如下:
显示名取值
最近12个月0
上年度年报1
返回值real1、当RightType<>-1且SampleSelect<>-1,返回按指定样本选择指定加权后得到的指标值,结果为实数。
返回值Array,TableArray2、当RightType<>-1且SampleSelect=-1,返回分别按各种股票样本选择后得到的指标值序列值,结果为3行一维实数数组,其对应如下:
行标样本选择方式
0全部股票
1剔除亏损
2剔除绩差
Array,TableArray3、当RightType=-1 且SampleSelect<>-1,返回分别按各种加权方式选择后得到的指标值序列,结果为4行一维实数数组,其对应如下:
行标加权方式
0总股本加权
1流通股本加权
2中位数
3调和平均数
Array,TableArray4、当RightType=-1 且SampleSelect=-1,返回分别按所有样股选择方式与所有股本加权方式得到的指标值序列,结果为12行的一维数组,其对应如下:
行标样本选股(加权方式)
0全部股票(总股本加权)
1剔除亏损(总股本加权)
2剔除绩差(总股本加权)
3全部股票(流通股本加权)
4剔除亏损(流通股本加权)
5剔除绩差(流通股本加权)
6全部股票(中位数)
7剔除亏损(中位数)
8剔除绩差(中位数)
9全部股票(调和平均数)
10剔除亏损(调和平均数)
11剔除绩差(调和平均数)
  • 算法:
    (1)板块市盈率(总股本加权) =∑(股票i总市值) /∑(股票i最近12个月净利润)
    (2)板块市盈率(流通股本加权) =∑(股票i流通市值) /∑(股票i最近12个月净利润/股票i总股本*股票i流通股本)
    (3)板块市净率(总股本加权) =∑(股票i总市值)/∑(股票i最近12个月净资产)
    (4)板块市净率(流通股本加权) =∑(股票i流通市值)/∑(股票i最近12个月净资产/股票i报告期总股本*股票i报告期流通股本)
    (5)板块市销率(总股本加权)=∑(股票i总市值)/∑(股票i最近12个月主营收入)
    (6)板块市销率(流通股本加权) =∑(股票i流通市值)/∑(股票i最近12个月主营收入/股票i总股本*股票i流通股本)
    (7)板块市现率(总股本加权) =∑(股票i总市值)/∑(股票i最近12个月经营活动产生的现金流量净额)
    (8)板块市现率(流通股本加权) =∑(股票i流通市值)/∑(股票i最近12个月经营活动产生的现金流量净额/股票i总股本*股票i流通股本)
    注:上述总市值、流通市值所在时点由EndT决定;财务指标的报告期为距离EndT最近的报告期。

    范例:
    范例一:

    //返回沪深300成分股全部样本股的市盈率,个股按总股本加权
    EndT := inttodate(20110315);
    setsysparam(pn_date(),EndT);
    Stks := getbkbydate('SH000300',EndT);
    RightType:=0;//0:总股本加权
    SType:=0;//全部
    SampleSelect:=0;//0:全部样本股
    Criterion:=0;
    type:=0;//0:市盈率
    RDateType:=0;//最近12个月
    Return StocksPEPBPMIPNA12_Call(Stks,EndT,RightType,SType,SampleSelect,Criterion,type,RDateType);
    //返回结果:15.9990794773179

    范例二:

    //返回沪深300成分股的市盈率,分别各种样本选择,各种加权方式
    EndT := 20110315T;
    setsysparam(pn_date(),EndT);
    Stks := getbkbydate('SH000300',EndT);
    RightType:=-1;//-1:四种加权方式
    SType:=0;//全部
    SampleSelect:=-1;//-1:按三种样本选择方式
    Criterion:=0;
    type:=0;//0:市盈率
    RDateType:=0;//最近12个月
    Return StocksPEPBPMIPNA12_Call(Stks,EndT,RightType,SType,SampleSelect,Criterion,type,RDateType);
    //返回:

    15.67667
    15.5482
    15.5482
    16.61751
    16.49084
    16.49084
    26.55278
    27.06815
    27.06815
    24.67459
    24.11718
    24.11718


    参考
      
相关