问题标签 [performanceanalytics]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
2661 浏览

r - Using apply.rolling function over multiple columns

In zoo package, while using rollapply function, we get an logical option 'by.column = TRUE/FALSE'. If TRUE, FUN is applied to each column separately.

However, in apply.rolling function of PerformanceAnalytics package I don't see any such option. While trying to the following:

It give me calculation of only first column. Can someone please tell me how can I run this calculation over all the columns in the dataset.

0 投票
1 回答
1506 浏览

r - 使用 rollapply 函数使用 R 进行 VaR 计算

我为计算 20 个周期滚动窗口内的风险价值 (VaR) 执行了以下操作:

它产生所需的输出,然后我在另一个数据上尝试了同样的操作:

但我收到以下错误:

有人可以告诉我为什么会有这种差异以及如何解决这个错误吗?

0 投票
2 回答
859 浏览

r - 完整缺失列的 VaR 计算

我需要计算股票收益的滚动 VaR。从这篇文章:使用 rollapply 函数使用 R 进行 VaR 计算,我了解到具有完全缺失案例的列会出错。但由于各个公司股票收益的起止日期不同,当数据从长格式转换为宽格式时会产生缺失值。可以仅使用没有缺失值的行进行估计,但这会导致数据严重丢失。因此,有没有办法对具有完整缺失值的列执行计算,对于缺失的列,得到输出“NA”。这就是我所做的:

它执行所需的计算,但是当我尝试使用前 60 行完全缺失“HAM6”列时

我收到以下错误:

我知道错误是由于缺少“HAM6”列,但有没有办法保留缺少的列并为“HAM6”获取输出“NA”而不是删除“HAM6”列?我已经尝试了大多数可用于处理缺失值的方法,但找不到任何合适的解决方案。任何帮助深表感谢。

0 投票
1 回答
2267 浏览

r - 更快地替代功能“rollapply”

我需要对包含大约 7,000 行和 11,000 列的 xts 数据运行滚动窗口函数。我做了以下事情:

我等了 12 个小时,但计算没有完成。但是,当我尝试使用以下小数据集时:

计算在 60 秒内完成。我在配备 Intel i5-2450M CPU、Windows 7 操作系统和 12 GB RAM 的计算机上运行它们。

如果有任何更快的方法可以在大型 xts 数据集上执行上述计算,任何人都可以建议我吗?

0 投票
2 回答
3659 浏览

r - 使用 R 估计滚动风险价值 (VaR)

我需要对每日股票收益进行滚动 VaR 估计。起初我做了以下事情:

它执行计算并返回一个动物园对象,但给出一系列警告,如下所示:

然后,我对我的数据样本进行了同样的尝试,如下所示:

但是 is 不返回任何 zoo 对象并给出以下警告和错误:

从较早的帖子(使用 R 的使用 rollapply 函数进行 VaR 计算)我了解到,如果缺少完整的滚动窗口,则无法执行滚动估计,但在我的数据(sample2.dta)中没有缺失值。

sample2.dta 可以从https://drive.google.com/file/d/0B8usDJAPeV85WDdDQTFEbGQwaUU/edit?usp=sharing下载

谁能帮我解决和理解这个问题?

0 投票
1 回答
1967 浏览

r - R中带有NA的累积回报

我有以下数据框:

我想计算累积回报,但数据框中缺少值。我用了:

结果得到

这里的问题是,如果存在 NA,则后续行将具有 Result NA。有没有办法在不影响下面其余行的情况下计算累积回报?

我想获得以下结果:

我知道 PerformanceAnalytics 包中有一个名为 Return.cumulative 的函数,但这只会获得整个列的累积回报。

有任何想法吗?

0 投票
0 回答
818 浏览

r - 使用 ugarchfit 在 R 中扩展窗口的 Garch 预测

我有 S&P500 的每日数据,并将接近收盘的回报存储在my_data$Return中。我的目标是在此期间每天重新调整 GARCH(1,1)(因此从 2004 年 1 月 1 日的startDate开始),然后计算 30 天的预测。换句话说,我需要模拟我使用期间每个时间点的 GARCH(1, 1) 30 天预测。为了做到这一点,我使用了myFit函数来校准模型并进行预测。然后此函数由apply.fromstart调用,以便我可以从startDate开始每天应用它。

如果我启动它,R 会抱怨,因为ugarchfit需要至少 100 个数据点才能运行。

我看到该函数需要至少 100 个数据,但如何更改函数以避免错误?我还尝试将最后一行替换为:

R显示错误,因为求解器无法收敛。另外,rollapply不允许我使用扩展窗口,而这是我想做的。事实上,我在这里申请了 1 年的滚动窗口。

关于如何在此期间每天获取预测的任何想法?

非常感谢您的帮助。

0 投票
0 回答
642 浏览

r - GARCH 预测扩展窗口:rollapplyr() 和 apply.fromstart()

我的意图是使用来自扩展窗口的数据使用 GARCH(1,1) 生成预测。每天都有一个新的回报进入数据集,我将重做 GARCH 拟合和预测。函数 myFit 执行此操作,但现在我需要将一个每天都在增加的返回窗口作为参数传递。两种方法是 apply.fromstart() 和 rollapplyr()。

在下面的代码中,我决定在收集到至少 100 个回报后开始滚动计算,因为这是 ugarchforecast() 执行预测所需的最小数据量。

最后两行调用 myFit ,从 100 的窗口开始,它们将函数应用于扩展窗口。如果设置如下,我期望 apply.fromstart() 和 rollapplyr() 都提供相同的数据。毕竟他们将相同的功能(myFit)应用于相同的数据。不幸的是,只有第一个值是相同的,然后预测不再对齐。

这是我的健身

这些是 forecastVec1 的元素(因此使用 apply.fromstart() 时的预测):

这些是 forecastVec2 的元素(使用 rollapplyr()):

如前所述,只有第一个元素是相同的。我在 rollapplyr() 中应用增加窗口的方式可能是错误的?我正在传递一个宽度向量,所以我期望在每次迭代中,函数将使用一个窗口 100,然后是 101,然后是 102...103,最后是 104。这应该与 apply.fromstart() 后面的逻辑相同因为我设置了 gap=100 并且每次迭代都应该将窗口增加 1。

你能帮我找出错误吗?谢谢。

0 投票
0 回答
64 浏览

r - 访问第一个图

所以我使用 PerformanceAnalytics 包来绘制一个简单的 PnL 系列的性能摘要,所以

但是,我想在累积 PnL 图表中添加一些描述性文本,例如年化收益、累积收益、标准差和锐化。如何将其粘贴到第一张图中的空白处?

如果我自己绘制图表,我可以用上面的代码来做。但是,由于 charts.PerformanceSummary 函数自动绘制 3 个图,我只能访问它看起来的第 3 个图。有什么方法可以访问函数打印的 3 个图表中的第一个,以便我可以在其上相对于其自身坐标编写文本?

这是我想要的一个例子:http: //i.imgur.com/QXUb2Aq.png。但在这种情况下,我必须手动测试 y 坐标的值,直到我找到可行的方法。谢谢!

0 投票
1 回答
365 浏览

r - 在 PerformanceAnalytics 中向 SharpeRatio 添加权重

使用来自的PerformanceAnalytics.pdf示例

SharpeRatio(edhec, Rf = 0, FUN="VaR" , method="modified")我根据(我假设)等权重投资组合假设获得每单位(VaR)风险的回报,但是当我尝试添加权重时:

我收到错误:

有人知道如何(形式)扩展SharpeRatio功能以合并投资组合权重吗?