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

Q:基金日收益率异常时,如何处理得到平滑的净值曲线?    

简述
当基金发生大额赎回时,一般大额的赎回费用会导致基金的净值提升很大,导致收益率很大
用户在研究基金时,不认为该收益是由基金正常运作而来,所以一般我们会考虑剔除掉该类收益的影响。
  • 案例说明:本案例中,粗暴判定,当日收益率大于10%时,则认定为异常收益率,当日收益率用业绩基准当日的收益率来替代,最后计算出后复权的单位净值曲线。

    具体实现代码如下:
    注:范例中的代码'OF003741'在20190612日发生大额赎回,导致收益率达到30%+

       setsysparam(pn_stock(),'OF003741');
       t:= select ['截止日'],['单位净值'],['累计净值'],
          FundNAWZf4(inttodate(['截止日'])) as '日收益率(%)'
          from infotable 328 of DefaultStockID()
          where ['截止日']>=20170222 end;
       t[:,'修正收益率(%)']:=t[:,'日收益率(%)'];
       t[0,'后复权-单位净值']:=t[0,'单位净值'];
       for i:=1 to length(t)-1 do
       begin
         if t[i,'修正收益率(%)']>=10 then
          t[i,'修正收益率(%)']:=spec(stockzf4(inttodate(t[i,'截止日'])),'CSIH11009');
          //mean(t[i-6:i-1,'修正收益率(%)']);//最近5日平均
          //spec(stockzf4(inttodate(t[i,'截止日'])),'CSIH11009'); //或用当日业绩基准的
         t[i,'后复权-单位净值']:=t[i-1,'后复权-单位净值']*(1+t[i,'修正收益率(%)']/100);
       end
       return t;

    返回结果作图: