FAQ > 金融建模 > 应用案例 > 指标或功能实现

Q:天软中如何计算年化夏普    

  • A:天软目前提供计算夏普比率的公用模型常用的有下面两个:
    1、pf_SharpRatio,根据涨幅序列计算夏普比率,具体用法可参考:FAQ:pf_SharpRatio
    2、FI_Sharpe_ratio,对收益率序列(一维),或收益率矩阵(二维)每列进行计算夏普比率,且可选择进行年化处理。
    下面示例主要展示FI_Sharpe_ratio的使用:
    范例01:取个股120日的年化夏普比率
      stockid:="SH600519";
      N:=120;    //N日
      endt:=20260320T;
     
      setsysparam(pn_stock(),stockid); //当前证券
      setsysparam(pn_cycle(),cy_day()); //周期-日线
      setsysparam(pn_date(),endt);   //截止日
      dt:= Nday(N,"date",sp_time(),"涨幅(%)",stockzf3());
      //年化夏普比率
      rf:=2.25;  //无风险收益率
      YearNum:=250; //年化周期---为0时,不年化
      sharp1:=FI_Sharpe_ratio(dt[:,"涨幅(%)"],rf,YearNum);
      return sharp1;

    返回:-26.3313997810964

    范例02:计算多个股票的年化夏普比率
      stocks:=array("SH600519","SH000905","SH000852");
      N:=120;    //N日
      endt:=20260320T;
     
      setsysparam(pn_stock(),"SH000001"); //市场基准为时间序列
      setsysparam(pn_cycle(),cy_day()); //周期-日线
      setsysparam(pn_date(),endt);   //截止日
      //取组合个券收益率序列
      dt:=array();
      for i,stockid in stocks do
       dt[stockName(stockid)]:=Nday3(N,spec(stockzf3(),stockid));
      dt:=`dt;//转置,计算时需要按列计算
      rf:=2.25;  //无风险收益率
      YearNum:=250; //年化周期---为0时,不年化
      return FI_Sharpe_ratio(dt,rf,YearNum);

    返回结果:带下标的一维数组