stata - 使用 ARIMA 循环预测波动率
问题描述
关于Stata中循环的一个小问题:
我有一个数据集,其中包含以下变量:隐含波动率(股票期权)和该期权的 delta(期权价格对标的物的弹性)。Delta 严格来说在 20 到 80 之间,增量为 5。隐含波动率通常是几个百分点。
我想得到这个:
quietly arima impl_volatility if delta == 20, ar(1) ma(1)
predict tildevol20 if delta == 20
为 (20, 25, 30, 35, ..., 80)的每个值循环delta
,因此循环中的下一个将是:
quietly arima impl_volatility if delta == 25, ar(1) ma(1)
predict tildevol25 if delta == 25
变量 tildevol(delta) 应该从 delta 开始tildevol20
并随着 delta 的增加而增加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 文档似乎对此一无所知(或者我可能只是在错误的地方寻找)。
数据集示例:
因此,每个日期的每个增量都在 20-80 之间,增量为 5,并且每个增量都有隐含波动率。所以 1 个日期 > 13 个 deltas > 每个 delta 1 波动率。
解决方案
更有意义的是
foreach 1 of local deltalvl {
arima impl_volatility if delta == `1', ar(1) ma(1)
predict tildevol`1' if delta == `1'
}
但很难预测这是否会奏效。
quietly
当调试是一个坏主意时。您可能需要 Stata 提供的信息。
推荐阅读
- reactjs - 如何阻止 Throttled Scroll 从传播到父级?
- flutter - 如何分配未来
- 将类型返回给变量?
- php - 如何通过 Eloquent 中具有多对多关系的外部表中的列聚合进行分组?
- amazon-web-services - CodePipeline 在 CodeDeploy 阶段失败
- mysql - Excel VBA MySql 参数化更新'无效参数类型'
- python - Mantain 存储单元格中的字符串列表
- rabbitmq - 作为 Spring XD 1.3.0.RELEASE 的消息总线的最高 RabbitMq 兼容性
- tensorflow - `get_variable()` 中的 `tf.zeros_initializer` 有什么问题?
- excel - 如何在文件更新时运行 Excel 宏?
- mysql - 如何根据执行时间进行选择