A:天软提供了一种可转债隐含波动率的计算,计算模型为:CB_ImpliedVolatility()
其返回值是个百分比数值。
相关算法说明请参考:FAQ:
2022-03-10-应用专题-可转债系列06:基于BSM模型探究可转债估值
下面提供多种场景下的提取范例:
提取范例01:取一个券指定日的隐含波动率
//计算格力转债在2019年10月22日的隐含波动率
SetSysParam(PN_Stock(),'SH110030');
SetSysParam(pn_date(),20191022T);
return CB_ImpliedVolatility();//返回:42.63%
提取范例02:取多个券指定日的隐含波动率
//样本
stocks:=array('SH110038','SH110043','SH110044','SH110045');
endt:=20220418T;
ret:=array();
SetSysParam(pn_date(),endt); //设置指定日
sEndt:=datetostr(endt);
for i:=0 to length(stocks)-1 do
begin
SetSysParam(PN_Stock(),stocks[i]);
echo stocks[i];
ret[i,'StockID']:=stocks[i];
ret[i,'StockName']:=stockName(stocks[i]);
ret[i,'指定日']:=sEndt;
ret[i,'价格']:=close();
ret[i,'隐含波动率(%)']:=CB_ImpliedVolatility();
end
return ret;
返回:
提取范例03:取一个券一段时间内每日的隐含波动率
SetSysParam(PN_Stock(),'SH110030');
SetSysParam(pn_date(),20220418T);
return nday(10,'time',datetostr(sp_time()),'隐含波动率(%)',CB_ImpliedVolatility());
返回:
img id=25254][/img]
提取范例04:取多个券一段时间内每日的隐含波动率
//样本
stocks:=array('SH110038','SH110043','SH110044','SH110045');
begt:=20220410T;
endt:=20220418T;
ret:=array();
k:=0;
Tarr:=MarketTradeDayQk(begt,endt); //获取区间交易日序列
for j:=0 to length(Tarr)-1 do //日期循环
begin
d:=Tarr[j];
SetSysParam(pn_date(),d); //设置指定日
sEndt:=datetostr(d);
for i:=0 to length(stocks)-1 do //股票循环
begin
SetSysParam(PN_Stock(),stocks[i]); //设置当前股票
ret[k,'StockID']:=stocks[i];
ret[k,'StockName']:=stockName(stocks[i]);
ret[k,'指定日']:=sEndt;
ret[k,'价格']:=close();
ret[k,'隐含波动率(%)']:=CB_ImpliedVolatility();
k++;
end
end
return ret;
返回: