问题标签 [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 投票
1 回答
1328 浏览

r - 使用性能分析包计算风险价值

我试图计算 auf Stock Returns 列表的风险价值。有 1000 个观察值,但我想计算如下:

如您所见,结果将是 500 次计算。

为了解决这个问题,我尝试使用if带有for循环的条件。

像这样:

if(x < 501 & y < 1000){for(i in KO.Returns){VaR(KO.Returns[x: y], p = 0.95, method = "historical")}}

如果我使用提到的代码,我会收到以下错误代码:

VaR 计算对第 1 列产生不可靠的结果(反向风险):

0 投票
1 回答
515 浏览

r - R使用PerformanceAnalytics包绘制“xy.coords(x,y)中的错误”

Error in xy.coords(x, y) : 'x' and 'y' lengths differ 绘制 xts 对象返回时出现错误。使用的绘图函数charts.PerformanceSummary来自PerformanceAnalytics包。

有人知道如何解决这个问题吗?无论错误如何,它都会绘制,但存在错误会使使用 knitr 包转换为 HTML 失败。有趣的是,在类似的 xts 对象上运行相同的绘图功能可以正常工作。我很困惑。

0 投票
1 回答
656 浏览

r - R 中 PerformanceAnalytics 的并排图

以下脚本并排绘制 2 个图表:

以下脚本无法并排绘制 2 个图表:

有谁知道如何让后一个脚本并排绘制 2 个图表?

如果可能的话,我想避免使用另一个包。谢谢。

0 投票
1 回答
74 浏览

r - 使用 PerformanceAnalytics 在一张图表上绘制超过 12 个数据组

我正在使用这个函数来调用情节:

它工作正常,但是我有超过 12 组数据需要显示。但是charts.PerformanceSummary 最多只显示12。

ncol = 25实际上。我知道我可以将数据分成两组。

是否有可能实现此功能的极限?

谢谢你。

0 投票
2 回答
298 浏览

r - chart.Drawdown 性能分析中的问题,需要有限的“ylim”值错误

所以我目前正在尝试为每日损益创建一个回撤图。使用:

我能够轻松地绘制它以获取回报(其值大部分小于 10)。但是,在尝试使用这种完全相同的方法来计算利润/损失时,其值达到 10e+09 的范围,我得到了错误:

最奇怪的部分是,当我简单地将数据表 pdrawdown 中的每个值除以 10,000,000 时pdrawdown = pdrawdown/10000000,问题就解决了,它可以绘制它。那么我能做些什么来正确地绘制图表而不必使用这个奇怪的技巧呢?

0 投票
1 回答
216 浏览

r - 性能分析缩编功能不起作用 r

我正在尝试使用 Performance Analytics 包绘制每日利润的缩编图。我已经设法用代码做到了这一点:

对于百分比回报。但是,当我使用利润(处理更大的数字)时,图形窗口甚至不显示任何表格,也不会产生错误或警告消息。

我的 pdrawdown 数据的结构如下:

更新:设置一个 ylim 值,即

导致图表出现,但它仍然有效地显示无意义的数据,无论我对 ylim 的下限是多少。然而,有了回报,这个 ylim 项按预期工作,固定了图的轴。

0 投票
2 回答
583 浏览

r - 性能分析中的 MaxDrawdown 给出了不正确的值 r

我曾尝试在返回数据列上使用 PerformanceAnalytics 的 maxdrawdown 函数,但在某些情况下它给出的值稍微不正确(在其他情况下值非常不正确)。我采用了相同的数据集,并通过计算累积收益、找到运行的最大收益然后从该运行最大值中减去每天的累积收益来计算 excel 中的 maxdrawdown。据我了解,结果列的最大值是最大回撤。在 r 中使用 maxDrawdown 函数时,maxdrawdown 的较大值存在相当大的偏差。

有谁知道为什么会这样?我是否在 excel 中计算不同的回撤指标?r中的舍入错误?任何想法都会有所帮助。

还有什么方法可以让我访问 maxDrawdown 函数的基本代码,以便更好地了解它在做什么?

0 投票
0 回答
409 浏览

r - 使用 PerformanceAnalytics 滚动预期短缺和尾部风险

由于滚动 VaR 在缺少完整窗口时会出错,因此我做了以下估算 36 个月的滚动 VaR(HAM5 和 HAM6 缺少 36 个月的窗口):

这工作正常,但在估计预期短缺和预期尾部损失时会出错:

错误:

非常感谢“ES”和“ETL”的更正代码。

0 投票
2 回答
922 浏览

r - rollapply 使用 sparklyr 处理大数据

我想估计大约 2250 万个观测值的数据集的滚动风险价值,因此我想使用 sparklyr 进行快速计算。这是我所做的(使用示例数据库):

现在我使用 dplyr 和 PerformanceAnalytics 包估计 VaR:

这工作正常。现在我这样做是为了利用 sparklyr:

但这会产生以下错误:

谁能告诉我错误在哪里,正确的代码是什么?或者任何其他更快地估计滚动 VaR 的解决方案也值得赞赏。

0 投票
1 回答
203 浏览

r - 计算投资组合水平的回报

EDIT UPDATED我发现了performanceAnalytics 的作者的一篇很棒的帖子。这篇文章基本上总结了累积投资组合回报的来龙去脉,正如作者所展示的那样,这非常棘手(他也弄错了)!这里供参考:https ://tradeblotter.wordpress.com/2014/09/25/aggregate-portfolio-contributions-through-time/

所以我遇到了一个小问题,我的两个数字应该加起来,但事实并非如此。这是一个示例数据框,其中包含股票选择及其投资组合权重的上下文:

然后我将使用Return.portfolio 函数和weather.index = TRUE 来显示我的投资组合的回报。

我使用 dygraph 来可视化美元的增长。

对于这个例子,我将使用 5 月 1 日作为投资的初始点。在这个投资组合中,我从 5 月 1 日获得了 11.5% 的回报——通过将当前价值(1.37 美元)除以 5 月 1 日(1.23057 美元)计算得出,收益率为 11.33%。

但是,当我使用不同的方法时,我会得到不同的答案,这很奇怪,因为我认为第二种方法是计算投资组合回报的准确方法。

首先,我创建了一个数据框,其中包含 5 月 1 日的股票价值及其当前价值。然后我将两者乘以它们在投资组合中的权重。这是输出:

现在,当我将 May1C 和 CurrentC 相加时,我得到:

我认为这将是投资组合的当前价值,因为它是股票选择*它们各自的权重。这仅增加了 6.015%。

我的问题是: return.portfolio 函数如何返回 11.3% 的增长,而第二种方法返回 6.015%?

在回复评论时进行编辑,我发现使用 return.portfolio 时,verbose = TRUE 函数会返回随时间变化的股票权重。此输出显示随着 EOP 和 BOP 随时间变化的权重。

作为参考,这是运行 dygraph 输出的完整代码: