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

Q:定向可转债计算可转债相关指标时会报错?    

  • A:定向可转债是面向特定投资者发行不具有流动性的债券,没有行情等相关数据,计算可转债相关指标时可能会报错。
    在计算可转债风险指标等相关指标时需要剔除定向可转债
    方式1:从可转债板块中剔除“定转”,参考:FAQ:Q:天软中如何判断定向可转债
    方式2:在获取可转债列表时选取可交易的债券:FAQ:CB_GetTransactionByDate
    取数示例
    示例1:在可转债板块中剔除“定转”后取可转债指标
      stocks:=getbkall("可转债");
      stocks:=sselect thisrow from stocks where not ANSIpos("定向",spec(base(502002),thisrow)) end;
      endt:=20260120t;
      setsysparam(pn_date(),endt);
      r:=array();
      for i,stock in stocks do
      begin
        setsysparam(pn_stock(),stock);
        if not istradeday(endt) then continue;
        r[nI,"代码"]:=stock;
        r[nI,"名称"]:=stockname(stock);
        r[nI,"正股价"]:=CB_Stock_Price();
        r[nI,"当期收益率(%)"]:=CB_CurrentYield(endt);
        r[nI,"Delta"]:=CB2_Delta();
        r[nI,"CCB转债估值"]:=CB_CCB();
        r[nI,"BSM转债估值"]:=CB_BSM(0);
        nI++;
      end
      return r;
    部分结果:

    示例2:获取指定日可交易可转债后取可转债指标
      endt:=20260120t;
      stocks:=CB_GetTransactionByDate(endt);
      setsysparam(pn_date(),endt);
      r:=array();
      for i,stock in stocks do
      begin
        setsysparam(pn_stock(),stock);
        r[nI,"代码"]:=stock;
        r[nI,"名称"]:=stockname(stock);
        r[nI,"正股价"]:=CB_Stock_Price();
        r[nI,"当期收益率(%)"]:=CB_CurrentYield(endt);
        r[nI,"Delta"]:=CB2_Delta();
        r[nI,"CCB转债估值"]:=CB_CCB();
        r[nI,"BSM转债估值"]:=CB_BSM(0);
        nI++;
      end
      return r;
    部分结果: