与ARIMA一起循环以预测波动性

时间:2019-12-05 17:54:45

标签: stata arima

关于Stata中循环的一个小问题:

我有一个包含以下变量的数据集:(股票期权的)隐含波动率和该期权的差额(基础期权价格的弹性)。 Delta严格地在20到80之间,并以5为增量。隐含波动率通常为百分之几。

我想要这个:

quietly arima impl_volatility if delta == 20, ar(1) ma(1)
predict tildevol20 if delta == 20

针对delta的每个值(20、25、30、35,...,80)进行循环,因此循环中的下一个将是:

quietly arima impl_volatility if delta == 25, ar(1) ma(1)
predict tildevol25 if delta == 25

变量tildevol(delta)应该从tildevol20开始,并随着增量而增加,直到tildevol80

我已经尝试过此方法以及其他两次迭代,但是似乎无法使其正常工作(deltalvl是delta的本地存储值的名称,20-80)。

levelsof delta, local(deltalvl)
foreach 1 of local deltalvl {
   quietly arima impl_volatility if delta == `deltalvl', ar(1) ma(1)
   predict tildevol`deltalvl' if delta == `deltalvl'
}

它什么也不返回,它只是运行,然后结束,它没有给出错误。

Stata文档似乎没有任何内容(或者我可能只是在错误的位置看)。

数据集示例:

example 1

example 2

因此,每个日期的每个增量都在20-80之间,增量为5,每个增量都有隐含的波动性。因此,1个日期> 13个增量>每个增量1波动率。

1 个答案:

答案 0 :(得分:1)

更有意义的是

foreach 1 of local deltalvl {
   arima impl_volatility if delta == `1', ar(1) ma(1)
   predict tildevol`1' if delta == `1'
}

,但要预测是否可行并不容易。

quietly是一个不好的主意。您可能需要Stata提供的信息。