使用 ARIMA 循环预测波动率
Looping with ARIMA to predict volatility
关于Stata中循环的一个小问题:
我有一个包含以下变量的数据集:(股票期权的)隐含波动率,以及该期权的 delta(标的期权价格的弹性)。 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'
}
它returns 没什么,它只是运行,然后结束,它不会报错。
Stata 文档似乎没有关于此的任何内容(或者我可能只是找错地方了)。
数据集示例:
所以每个日期都有 20-80 之间的每个增量,增量为 5,每个增量都有一个隐含波动率。所以 1 个日期 > 13 个增量 > 每个增量 1 个波动率。
更有意义的是
foreach 1 of local deltalvl {
arima impl_volatility if delta == `1', ar(1) ma(1)
predict tildevol`1' if delta == `1'
}
但预测这是否会奏效并不容易。
quietly
调试时是个坏主意。您可能需要 Stata 提供的信息。
关于Stata中循环的一个小问题:
我有一个包含以下变量的数据集:(股票期权的)隐含波动率,以及该期权的 delta(标的期权价格的弹性)。 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'
}
它returns 没什么,它只是运行,然后结束,它不会报错。
Stata 文档似乎没有关于此的任何内容(或者我可能只是找错地方了)。
数据集示例:
所以每个日期都有 20-80 之间的每个增量,增量为 5,每个增量都有一个隐含波动率。所以 1 个日期 > 13 个增量 > 每个增量 1 个波动率。
更有意义的是
foreach 1 of local deltalvl {
arima impl_volatility if delta == `1', ar(1) ma(1)
predict tildevol`1' if delta == `1'
}
但预测这是否会奏效并不容易。
quietly
调试时是个坏主意。您可能需要 Stata 提供的信息。