
[英]Using quant package with R to pull daily stock returns using a For Loop
[英]Storing function returns in a table in R (quant finance)
出于这个问题的目的,我想构造一个数据框或类似的框框,以便能够“堆叠排名”并对从函数生成的各种度量进行排序。
让我们以Performance Analytics
包为例:
为了说明我的问题,我将使用Performance Analytics
包中的table.DownsideRisk
函数,而不仅仅是调用VaR()
。
因此,我可以单独获得以下结果:
SPX.cc
Semi Deviation 0.0095
Gain Deviation 0.0096
Loss Deviation 0.0102
Downside Deviation (MAR=210%) 0.0142
Downside Deviation (Rf=0%) 0.0094
Downside Deviation (0%) 0.0094
Maximum Drawdown 0.5678
Historical VaR (95%) -0.0203
Historical ES (95%) -0.0317
Modified VaR (95%) -0.0193
Modified ES (95%) -0.0273
或者我可以将它们全部放在xts
对象中,然后运行table.DownsideRisk
:
SPX.cc CCMP.cc SX5E.cc
Semi Deviation 0.0095 0.0114 0.0111
Gain Deviation 0.0096 0.0117 0.0114
Loss Deviation 0.0102 0.0116 0.0113
Downside Deviation (MAR=210%) 0.0142 0.0161 0.0161
Downside Deviation (Rf=0%) 0.0094 0.0113 0.0112
Downside Deviation (0%) 0.0094 0.0113 0.0112
Maximum Drawdown 0.5678 0.6103 0.6219
Historical VaR (95%) -0.0203 -0.0260 -0.0249
Historical ES (95%) -0.0317 -0.0370 -0.0372
Modified VaR (95%) -0.0193 -0.0231 -0.0237
Modified ES (95%) -0.0273 -0.0293 -0.0330
但是,让我们说我跑了个别例子无论是作为lapply
或for
循环作为一个更广泛的分析计划的一部分-我想要做的是提取每一个的Historical VaR (95%)
从输出数字table.DownsideRisk
函数在每个元素上运行循环/应用函数 ,并将提取的值放在.GlobalEnv()
中的表中,然后按照(从低到高)的.GlobalEnv()
对该表进行排序
Historical VaR (95%)
SPX.ccl -.0203
SX5E.ccl -.0249
CCMP.ccl -.0260
我知道这对于数据框/表用户来说似乎很基础,但我们非常感谢您的协助。
干杯。
我不确定您对GlobalEnv
意图是什么,但这可能会有帮助:
swapped = data.frame(t(xts))
ordered = swapped[with(swapped, order(Historical.VaR..95..)),]
result = subset(ordered, select=Historical.VaR..95..)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.