FAQ > 金融建模 > 建模问题 > 债券相关

Q:怎么提取十年国债到期收益率?    

  • A:参考FAQ:2017-03-20-应用专题-数据提取专题06:债券收益率曲线数据提取专题。注意,只能提取2011年之后的数据,2011年之前的数据暂未提供。
    下面给出一个10年期国债收益率的提取范例和指定日债券期限结构的范例,专题中有更详细的说明及相关范例。
    范例1:提取一段时间10年期的国债到期收益率

    //BTS000033是天软提取中证指数国债收益率数据的代码
    StockID := "BTS000033";
    SetSysParam(pn_stock(),"SH000012");
    SetSysParam(pn_date(),20170315T);
    //最近 10 个交易日 10 年期国债到期收益率
    Return nday(10,"time",sp_time(),
          "10 年期国债到期收益率%)",
     spec(GetBondTermStructureByRemainDuration(2,10),StockID));

    结果截图:


    范例2:提取所有期限指定日期的债券期限结构

    StockID := "BTS000033";
    EndT := 20170301T;
    SetSysParam(pn_stock(),StockID);
    SetSysParam(PN_Date(),EndT);
    Return md("债券期限结构");

    结果截图:


    范例3:提取一段时间内的10年期的国债到期收益率

    //BTS000033是天软提取中证指数国债收益率数据的代码
    StockID := "BTS000033";
    begt:=20230101T;
    endt:=20231020T;
    SetSysParam(pn_stock(),"SH000012"); //Nday推移需要有交易日序列
    SetSysParam(pn_date(),endt);
    N:=tradedays(begt,endt);
    echo N;
    //一段时间内的 10 年期国债到期收益率
    Return nday(N,"time",sp_time(),
       "10 年期国债到期收益率(%)",
       spec(GetBondTermStructureByRemainDuration(2,10),StockID));


    部分结果截图:

    注:这种方式提取会比较慢。