FAQ > 金融建模 > 数据提取 > 基本面数据

Q:指数财务指标的提取    

  • A:天软目前提供两种方式获取指数财务指标数据:
    第一种:提取天软衍生数据(范围:申万一二级行业+报告期数据)

    第二种:模型实时计算方式(范围:支持任意组合+支持报告期、TTM、单季度等)

    第一种:提取天软衍生数据
    为了增加板块财务分析指标的提取效率,天软衍生了部分常用行业板块的财务指标,包括每股指
    标(754)、盈利能力(755)、偿债能力(756)、经营能力(757)、投资收益(758)、现金流指标(759)、估
    值指标(762)、成长能力(763)等。相关指标数据通过报告期方式提供,用户可以通过report(指标ID,
    报告期)方式便捷获取。
    相关具体说明请参考:FAQ:2025-03-12-数据更新-指数数据007:关于增加指数财务分析指标数据及其访问方法(更新版)
    要点说明:
    1、数据是衍生好的,只支持除report方式,不支持ttm与单季度模型提取。
    2、目前只衍生了申万一、二级行业代码(代码开头SWHY)。例如:SWHY220000 申万基础化工。
    注:是行业代码SWHY开头的,不是行业指数代码SW开头的。
    取数示例
    Report提取示例:取指定报告期数据,可指定表中的任意指标
    Rdate:=20240930;
       Endt:=inttodate(Rdate);
       swIDS:= StockIndustryLowerArr("SWHY",Endt); //获取所有申万一级行业代码
       ret:=array();
       for i,hy in swIDS do
       begin
         setsysparam(Pn_stock(),hy);
         ret[i,"行业代码"]:=hy;
         ret[i,"行业名称"]:=stockName(hy);
         ret[i,"报告期"]:=Rdate;
         ret[i,"净资产收益率(%)(加权,全部)"]:=report(755002,Rdate);
         ret[i,"每股收益(加权,全部)"]:=report(754002,Rdate);
         ret[i,"存货周转率(加权,全部)"]:=report(757002,Rdate);
       end
       return ret;

    注:多个报告期,则可在上层再套报告期循环
    结果:

    Infotable提取示例:取整表数据,多报告期
    return select ['StockID'],['StockName'],['截止日'],
            ['每股收益(加权,全部)'] as '每股收益',
            ['每股净资产(加权,全部)'] as '每股净资产',
            ['每股现金净流量(加权,全部)'] as '每股现金净流量',
            ['每股营业收入(加权,全部)'] as '每股营业收入'
         from infotable 754 of array("SWHY220000","SWHY230000")
         where ['截止日']>=20220331
         and ['截止日']<= 20221231
        end;

    注:若需要整表指标,则可改为select * from infotable....


    第二种:模型实时计算方式-提取报告期、TTM、季度指标
    指标查找:板块数据专家->扩展指标->股票板块(该类指标目前只支持板块的提取,指数的需要参考下面的实现)
    常用指标函数:FAQ:
    每股指标函数:FAQ:
    Rdate:=20240930;
    Endt:=inttodate(Rdate);
    swIDS:= StockIndustryLowerArr("SWHY",Endt); //获取所有申万一级行业代码
    ret:=array();
    for i,hy in swIDS do
    begin
      stockArr:=getbkbydate(hy,Endt);//取行业成份股
      ret[i,"行业代码"]:=hy;
      ret[i,"行业名称"]:=stockName(hy);
      ret[i,"报告期"]:=Rdate;
      ret[i,"净资产收益率"]:=StocksFinancialRatio(stockArr,Rdate,0,1,0,0.0,16);
      ret[i,"每股收益"]:=StocksFinancialItemPS(stockArr,Rdate,0,1,0,0.0,0);
      ret[i,"每股净资产"]:=StocksFinancialItemPS(stockArr,Rdate,0,1,0,0.0,1);
      ret[i,"总资产报酬率"]:=StocksFinancialRatio(stockArr,Rdate,0,1,0,0.0,14);
      setsysparam(CT_TTMData(),true);//设置提取TTM
      ret[i,"TTM-净资产收益率"]:=StocksFinancialRatio(stockArr,Rdate,0,1,0,0.0,16);
      ret[i,"TTM-每股收益"]:=StocksFinancialItemPS(stockArr,Rdate,0,1,0,0.0,0);
      ret[i,"TTM-每股净资产"]:=StocksFinancialItemPS(stockArr,Rdate,0,1,0,0.0,1);
      ret[i,"TTM-总资产报酬率"]:=StocksFinancialRatio(stockArr,Rdate,0,1,0,0.0,14);
      setsysparam(CT_TTMData(),false); //取消-避免影响下次循环取数
     
      setsysparam(CT_QuarterData(),true);//设置提取季度指标
      ret[i,"季度-净资产收益率"]:=StocksFinancialRatio(stockArr,Rdate,0,1,0,0.0,16);
      ret[i,"季度-每股收益"]:=StocksFinancialItemPS(stockArr,Rdate,0,1,0,0.0,0);
      ret[i,"季度-每股净资产"]:=StocksFinancialItemPS(stockArr,Rdate,0,1,0,0.0,1);
      ret[i,"季度-总资产报酬率"]:=StocksFinancialRatio(stockArr,Rdate,0,1,0,0.0,14);
      setsysparam(CT_QuarterData(),false); //取消-避免影响下次循环取数
    end
    return ret;

    返回: