估算滚动风险价值(Rolling VaR)时Stata命令无结果的问题
Stata滚动风险价值(VaR)命令排障
常见问题与修正方案
日期转换与时间序列校验
先确认Date变量的格式确实是月/日/年(MDY),执行list Date daily in 1/10检查daily变量是否有缺失值。如果格式不符,修改date()函数的格式参数(比如DMY)。另外,给daily加上日期格式:format daily %td,再执行tsset daily,确保输出无报错,时间序列设置成功。滚动窗口参数必须具体化
命令里的window(#)要替换成实际的窗口大小数值,比如用60个交易日作为滚动窗口就写window(60),不能保留#占位符。VaR的数值转换
5%分位数的对数收益率通常为负数,而VaR表示的是最大损失值,需要对结果取反:gen VaR = -cent,这样得到的才是常规的VaR数值(正数代表损失规模)。数据集保留问题
clear选项会直接清空当前数据生成新结果集,如果需要保留原数据,要么提前保存原数据:save raw_data.dta, replace,要么去掉clear选项。
修正后的完整命令示例
* 转换日期并设置时间序列 gen daily = date(Date, "MDY") format daily %td tsset daily * 计算滚动5%分位数(替换60为你的目标窗口大小) rolling cent=r(c_1), window(60): centile lnreturn, centile(5) * 转换为标准VaR值 gen VaR = -cent
内容的提问来源于stack exchange,提问作者Younis Ahmed
相关产品推荐
相关产品推荐

