A:
低频数据计算波动率
可使用已有公用模型:
风险指标可使用:FAQ:
StockBetaAlpha2
波动率函数:FAQ:
StockRisk
支持日线,周线,月线等低频。
示例01:通过指定区间的日线数据计算波动率
//计算万科A在指定区间内的波动率,收益率序列为日线
begt:=20220101T;
endt:=20220630T;
SetSysParam(pn_stock(),'SZ000002');
SetSysParam(pn_cycle(),cy_day()); //日线
return StockRisk('SH000001',begt,endt);
返回:2.83756576955116
示例02:计算指定区间的每日波动率(由最近N日收益率计算)
begt:=20220101T;
endt:=20220630T;
N:=20;//取最近20个交易日的数据计算
SetSysParam(pn_stock(),'SZ000002');
SetSysParam(pn_cycle(),cy_day()); //日线
Nd:=tradedays(begt,endt);
return Nday(Nd,"time",datetostr(sp_time()),
"波动率",StockRisk('SH000001',ref(sp_time(),N-1),sp_time()));
返回:
日内高频数据计算波动率
可使用时间序列模型Nday与sp_std进行计算得到。
示例03:计算指定区间内1分钟线的波动率序列
stockid:="SH600519"; //证券
begt:=20250714.09T;//开始时间
endt:=20250714.16T;//截止时间
N:=20; //N期收益率序列计算波动率
cycle:=cy_1m(); //周期
fName:="波动率"+"@"+stockName(stockid); //指标字段名
setsysparam(pn_cycle(),cycle);
setsysparam(pn_stock(),stockid);
setsysparam(pn_date(),endt);
nd:=tradedays(begt,endt);
t:= Nday(nd,"time",datetimetostr(sp_time()),
fName,sp_std((ln(Close())-ln(ref(Close(),1)))*100,N));
return t;
