问题标签 [r-portfolioanalytics]

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 回答
522 浏览

r - 计算 R 中收益的滚动回撤

XTS 被称为“x”,具有七种货币的每日回报。

我已经使用 PerformanceAnalytics 函数 Drawdowns 来计算和绘制累积下降,这很好。但是,我也想要滚动 60 天的回撤,并尝试了 rollapply 和 apply.rolling 但没有运气。

任何人都可以推荐一个解决方案吗?

rollapply(x, width = 60, FUN = Drawdowns)

数组中的错误(ans, c(len.a%/%d2, d.ans), if (!is.null(names(dn.ans)) || : 'dimnames' [1] 的长度不等于数组程度

apply.rolling(x, width = 60, FUN = SharpeRatio)

rbind(calcs, calc) 中的错误:矩阵的列数必须匹配(参见参数 2)

0 投票
2 回答
250 浏览

r - r 中的 optiSolve 包

我试图在 5 个约束条件下最大化投资组合回报:

1.- 一定程度的投资组合风险

2.- 与上面相同,但符号相反(我需要风险正好是那个数字)

3.- 权重之和必须为 1

4.-所有权重必须大于或等于cero

5.- 所有权重最多只能为 1

我正在使用 optiSolve 包,因为我没有找到任何其他允许我编写此问题的包(或者至少我了解如何使用它)。

我这里有三个大问题,第一个是生成的权重向量总和大于 1,第二个问题是我不能在二次约束中声明t(w) %*% varcov_matrix %*% w == 0因为它只允许“<=”,最后我不知道如何设置约束以仅获得正面权重

有人知道如何用前面提到的所有约束来解决这个最大化问题,或者告诉我我做错了什么?我真的很感激,因为结果似乎没有考虑到约束。谢谢!

0 投票
0 回答
193 浏览

r - 优化 R(投资组合)中的权重

我在 R 中尝试了几个包,但我真的迷失了应该使用哪个包。我只需要大方向的帮助,我可以自己找到确切的代码。

我正在 R 中尝试投资组合优化。我需要计算权重向量,其中向量中的每个权重代表该股票的百分比。

给定权重,我计算总回报、方差和夏普比率(回报和方差的函数)。

可能存在一些限制,例如总权重应等于 1 (100%),并且可能还有其他一些限制,具体取决于具体情况。

我试图让我的代码变得灵活,以便我可以针对不同的目标进行优化(尽管一次一个)。例如,我可能希望一个模拟中的最小方差或另一个模拟中的最大回报,甚至最大。在其他方面锐化配给。

这在带有求解器包的 excel 中非常简单。一旦我输入了公式,无论我为目标函数选择哪个单元格,它都会根据它计算权重,然后根据这些权重计算其他参数。(例如,如果我基于最小方差进行优化,那么它会计算最小方差的权重,然后根据这些权重计算回报和锐化)。

我想知道如何在 R 中处理它?我在阅读几个 R 包或函数(Lpsolve、Optim、constrOptim、portfoiloAnalytics 等)的文档时迷失了方向,但找不到起点。我的具体问题是

  1. 对于这种分析,哪个是正确的 R 包?
  2. 我是否需要为每个可能的目标定义单独的函数,例如方差、返回和锐化并优化这些函数?这有点棘手,因为夏普取决于方差和回报。所以如果我想优化Sharpe函数,那么我需要将它嵌套在variance和return函数中吗?

我只需要一些关于如何开始的想法,我可以试一试。如果我至少得到正确的包和正确的例子来使用,那就太好了。我在网上搜索了很多,但我真的迷路了。

0 投票
1 回答
67 浏览

r - R中调用函数的动态解决方案

我正在尝试在 R 中实现“动态”解决方案。首先,我确实为 4 种不同的策略运行了投资组合优化:MV、CVaR、熵池和幼稚。

作为下一步,我想计算一些性能测量值,例如 HHI。

我现在的问题是:我怎样才能简化我的代码?如前所述,我得到了 4 种不同的策略,我检索了 4 个具有相应优化权重的不同数据帧。当然有一个解决方案可以简化这一点。

第一部分即通过

第二部分“comp_HHI”是一个函数,我将相应的权重数据帧交给它。

另一个例子:

使用前面介绍的代码,我计算了各个投资组合(comp_perf --> 函数)的性能,其中包含再平衡频率和用于计算最终财富的起始基金。我想动态实现代码 - 简单地说:最好是单行代码。

如上一行所述,我将动态应用带有 * 符号的代码。换言之,即在不同投资组合类型上具有循环的符号。

我的最后一个问题是关于以下代码:

还有一种方法可以动态实现它吗?

提前谢谢。

0 投票
1 回答
783 浏览

r - 有没有一种简单的方法可以用 R 绘制有效边界

我有一个风险回报图和数据框(dfRiskReturn 在下面的 dput 中)。我不想使用雅虎财经下载股票,我已经以另一种方式获得了风险回报数据框。我只想知道现在我有了数据框,如何获得有效前沿。

这是一个旧视频,但它几乎是我想要的。也许我想检查与有效前沿(如果可能的话)的相关性(dput 中的簇列)。只选择彼此不相关的股票或寻找最佳有效边界的东西,我不知道。 https://www.youtube.com/watch?v=zkXIByRwJ-g

我正在阅读 youtube 评论,他们推荐了 fPortfolio 包,但我不知道它是如何工作的。

我还看到最近一个人正在用 python 做这件事,但我想要它在 R 中: https ://www.youtube.com/watch?v=Isutk-wqJfE


输入(dfRiskReturn):


编辑:

我得到了这个问题的答案,但我不知道最佳点的坐标是什么,或者如何获得它。[它在 0.5 左右具有相关性]: https ://quant.stackexchange.com/questions/15178/calculating-the-efficient-frontier-from-expected-returns-and-sd/41182#41182

0 投票
1 回答
97 浏览

r - 显示“ROI 中的错误:L_constraint.........”时的错误是什么?

我正在尝试学习投资组合优化。但是,我无法克服这个错误。有人可以告诉我解决这个问题的方法吗?

这是我的代码:

#计算我们投资组合中所有股票的回报

#现在,我们股票组合的加权回报

#现在,开始优化投资组合。为了做到这一点,我们现在将开始向我们的投资组合添加约束和#specifications

#初始化我们的投资组合对象

#现在,传递一些约束

#约束 1

#约束 2

#type "box" 询问为每只股票分配多少资金

#现在,为投资组合添加目标

#现在,我们将不得不使用求解器来基本求解这些权重 #注意,您可以使用不同的求解器。在这种情况下,我们将使用“ROI”,

我在代码的最后一部分遇到了问题。它显示了这个错误:

0 投票
1 回答
110 浏览

r - 朴素的投资组合选择规则

我有一个 xts 文件,其中包含 17 个行业投资组合的月度回报。数据如下所示:

我的目标是使用简单的投资组合选择规则进行回测。我不想持有等权重的投资组合,而是想根据以下天真的规则来分配权重:

  • 将权重 2/N 分配给具有高于中值历史回报的每项资产
  • 如果低于历史回报中值,则分配权重 0

代替等权向量:

这个权重向量非常适合获得投资组合回报。为此,我使用了此功能:

我坚持将加权函数合并到标准回测脚本(tidyquant、PerformanceAnalytics、quantmod)中。在大多数情况下,只能解决优化问题,而不是简单的幼稚规则。

有人知道如何使用简单的投资组合选择规则进行这样的回测吗?

谢谢你的帮助!

0 投票
1 回答
122 浏览

r - R中的递归优化()函数会导致错误

我正在尝试使用optim()R 中的函数来最小化矩阵运算的值。在这种情况下,我试图最小化一组股票的波动性,这些股票的个人回报彼此共变。被最小化的目标函数是calculate_portfolio_variance

当我手动调用目标函数时,它会按预期返回一个值:

但是,当我使用该optim()函数时,它会返回错误:

我不确定原因,但可能与optim()递归使用allocations变量的方式有关。我能做些什么来解决这个问题?

编辑:FWIW,其他优化策略有效(差分进化,模拟退火),但我更喜欢使用梯度下降,因为它要快得多

0 投票
0 回答
292 浏览

r - 如何使用 R 中的“rusquant”包从investing.com 中抓取信息

我之前发布了一个类似的问题[问题现在已关闭,我将其删除]。从那我开始了解'rusquant'包。我感谢在这里向我介绍包裹“rusquant”的人。我在几次尝试从investing.com 抓取股票数据时尝试了以下代码,但均未成功

现在,getSymbolList 函数起作用了。但是,当我尝试抓取特定股票并遵循https://github.com/arbuzovv/rusquant中的方法时,出现错误。如下:

然后我尝试了 getSymbols.Investing 功能。但我收到以下错误:

请帮帮我。我是编码新手。如果这里发生了什么愚蠢的事情,我深表歉意。提前致谢。

0 投票
0 回答
27 浏览

optimization - 解决具有两个约束的投资组合优化

我编写了一个代码来最小化我拥有的总金额,但是我也希望能够为股票分配权重并使它们的份额为整数。

我怎么能那样做?