FAQ > 金融建模 > 建模问题 > 期权相关

Q:期权高频风险指标中,出现NAN,0,499.9999这类异常值    

  • A:出现这种情况,可能有两种原因:
    1.期权合约当天到期,按照天软BS定价模型方式计算出的结果就会出现异常值。因此不支持计算当天到期的期权风险指标。
    2.期权现价超过理论现价时,计算出的结果为NAN。
    对于上述第二种情况,天软提供如下验证范例,用户可自行进行验证。

    setsysparam(pn_stock(),'io2002-c-3300');
    setsysparam(pn_date(),20200220T);
    setsysparam(Pn_cycle(),cy_day());
    t:=nday(14,'date',sp_time(),'g',t:=OP_Greeks(),
       'IV',t[0,'IV'],'Delta',t[0,'Delta'],
       'Gamma',t[0,'Gamma'],
       'Theta',t[0,'Theta'],
       'Vega',t[0,'Vega'],
       'Rho',t[0,'Rho'],
       '期权类型',
       OptionType:=base(720008),
       '行权价',X:=Base(720010),
       '期权价格',C:=close(),
       '标的价格',
       S:=specall(close(),array(pn_stock():base(720004),pn_rate():0)),
       '无风险利率(%)',
       R:=OP_GetRiskFreeRate(sp_time(),0),
       '剩余期限(年)',
       T:=OP_GetDaysMaturity(int(sp_time()),inttodate(base(720015)))/12,
       '理论上界',maxS:=(OptionType='认购')?s:(X*exp(-R/100*T)),
       '理论下界',
       should:=((OptionType='认购')?max(S-X*exp(-R/100*T),0):max(X*exp(-R/100*T)-S,0)),
       '期权价格是否低于下界',C<=should,
       '期权价格是否高于上界',C>=maxS);
    return select ['date'],['Gamma'],['期权价格'],['理论上界'],['理论下界'],
        ['期权价格是否低于下界'],['期权价格是否高于上界'] from t end;

    结果截图: