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

Q:如何获取指定时间区间内股票预计发布财报的日期?    

  • A:天软提供定期报告披露日期表记录股票财报预计公布日期及变更公布日期的数据,用户可通过该表查询股票指定时间区间内股票预计发布财报的日期。
    实现说明
    实现模型:TSDN_GetQJAnnouncementDate
    使用前需导入模型:附件:TSDN_GetQJAnnouncementDate.fun
    模型代码:
    Function TSDN_GetQJAnnouncementDate(stock,begt,endt);
    Begin
    {**
      %% @return(array) 发布财报的公布日期列表

      %% @explain(说明)获取指定股票指定区间发布财报的公布日列表
      算法:
        a)区间已公布财报的直接取公布日
        b)区间未公布财报的取最新的预约公布日

      %% @params(stock)(string) 股票代码
      %% @params(begt)(datetime) 区间开始日
      %% @params(endt)(datetime) 区间截止日
      **}
    (**
      @example(范例1)
      //获取SZ000001在20260101-20260901财报的公布日期
      return TSDN_GetQJAnnouncementDate("SZ000001",20260101T,20260901T);
    **)

      st:=datetoint(begt);
      et:=datetoint(endt);
      data:=spec(InfoArray(128),stock);
      rt:=array();
      rt&=select stock as "代码",["截止日"],["实际披露日期"] as "公布日"
        from data where ["实际披露日期"]>=st and ["实际披露日期"]<=et end;
      info:=select * from data where not ["实际披露日期"] end;
      for i,tmp in info do
      begin
        gbr:=tmp["第三次变更日期"]?:tmp["第二次变更日期"]?:tmp["第一次变更日期"]?:tmp["首次预约日期"];
        if gbr>=st and gbr<=et then
          rt&=array(("代码":stock,"截止日":tmp["截止日"],"公布日":gbr));
      end
      return rt;
    End;

    取数范例
    范例1:获取个股指定区间的预计财报公布日期数据
      //获取SZ000001在20260101-20260901财报的公布日期
      return TSDN_GetQJAnnouncementDate("SZ000001",20260101T,20260901T);

    执行日期:20260710
    执行结果:


    范例2:获取股票列表指定区间的预计财报公布日数据
      //获取所有A股在20260630-20260830财报预计公布日期
      begt:=20260630t;
      endt:=20260830t;
      stocks:=getAbkByDate("A股",begt);
      rt:=array();
      select rt&=TSDN_GetQJAnnouncementDate(thisrow,begt,endt) from stocks end;
      return rt;

    执行日期:20260710
    部分结果: