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

r - 使用 R 中的 ROI 包对投资组合进行二次效用最大化,返回结果并分配给一项资产

我正在阅读 ROI 包的教程,特别是第 4 节:最大化二次效用。目标是找到一个由 4 种资产组成的最优投资组合,该投资组合使预期收益最大化,同时还惩罚增加投资组合风险的目标函数。求解器返回一个完全分配在资产中的投资组合,方差最小,这不是我预期的结果。可能是我以某种方式错误地指定了问题吗?

0 投票
0 回答
40 浏览

r - 通过重新平衡(进出)计算投资组合的回报

考虑到所有者频繁申请和拯救资金,我如何计算基金组合的回报?我在下面有一个示例数据库,我需要使用NAV 值(基金价格)来了解他从min(Date) 到 Yesterday获得了多少。

我使用了两列表示相同的内容(NAVinitialDate 和 NAVMC *手动计算),因为由于应用日期 x 大写日期问题,值存在一些差异。

0 投票
0 回答
88 浏览

python - python 有效的算法来确定要出售的加密硬币以什么比率最大化您可以从中获得的利润

我有这个问题陈述,在 python 中做这个与数据科学相关的工作对我来说有点新,任何程序或支持都会有帮助

你是投资者。您有兴趣出售您的一些投资组合。但是,您一次只能以当前价格出售最多价值 x 美元的总投资组合。为您提供投资组合中各种加密货币的硬币数量(数量)、每枚硬币的当前售价 ($) 和每枚硬币的利润 ($)。您需要确定每种加密货币硬币的数量(可以以分数形式出售)以及您应该出售每种加密货币的总投资组合的比例以最大化您的利润。要求:

  1. 制定一个有效的算法来确定以什么比率出售哪些加密货币,以最大限度地提高你可以从中获得的利润
  2. 分析算法的时间复杂度。
  3. 使用 Python 3.7 实现上述问题陈述。

Python3解决分数的程序

背包问题

示例输入:例如,您有 6 种数量不等的加密货币,并且想要从可用的加密货币中卖出价值 1000 美元的 x 个硬币,从而使卖出的利润最大化。找出您将出售的每种硬币的数量以最大化利润。加密货币

在此处输入图像描述

意思是要最大化利润,你必须卖出 6 个 C1 币(利润 270)、8 个 C2 币(利润 400)、2 个 C4 币(利润 140)和 1.33 个 C5 币(利润 5.33)。这相当于选择 100% 的可用 C1 硬币、100% 的所有 C2 硬币、100% 的所有 C4 硬币和 66% 的所有 C5 硬币进行出售。在 outputPS1.txt 中显示输出。

我尝试过的一些方法逻辑,但不知道什么是最好的 python 方法 任何程序都会有所帮助

输入 <- 输入要出售的加密货币价值 $ 价值 = 1500$ 每个硬币的利润/售价 < 0.9 (45/60), 0.83(50/60), 0.23(90/400), 0.7(70 /100), 0.27(4/15), 0.12(24/200) > 利润/卖出价格降序 < C1(0.9), C2(0.83), C4(0.7), C5(0.27), C3(0.23) , C6(0.12)> P= [ C1(0.9), C2(0.83), C4(0.7), C5(0.27), C3(0.23), C6(0.12) ] P 使用的算法:考虑使用分数 Knapsnak 来解决这个问题问题。可以正式表示为

  1. 最大化–(每个硬币的利润/售价)的硬币总和(从 1->6)*(加密硬币的数量/分数)
  2. 条件 1 – 硬币总和(从 1->6)(每个硬币的售价)*(加密硬币的数量/分数)
  3. 条件 2 – 0 小于或等于(加密硬币的数量/分数) 小于或等于(投资组合中存在的硬币数量)
0 投票
0 回答
50 浏览

r - R中的矩匹配场景生成

我正在研究投资组合优化算法,部分问题在于生成时刻匹配场景。

由于其简单性和快速性,我的选择是阅读论文“一种用于金融投资组合优化的时刻匹配场景生成算法”(Ponomareva、Roman 和 Date)

问题是,即使数学非常简单,我仍然坚持这样一个事实,即一些概率权重pi是负的,即使论文中的公式应该确保不是这样。如果我放一个循环来运行算法,直到它找到一个积极的组合,它基本上会永远运行。

如果事情卡住了,我会根据论文放置一些代码:

不幸的是,我无法披露包含资金回报的输入数据集。但是,我当然可以更具体。从data.frame()包含 N 个资产的回报开始(在我的例子中,有 11 只基金和从 30/01/2001 到 30/09/2020 的每月回报)。一旦平均返回,协方差矩阵,中心三次和四次矩(不是偏度和峰度)和平均值被计算。正如我在问题中报告的那样,该算法如下所示。我卡住的地方是 p 也取负值。这是一个问题,因为 p 的前 s 个元素后来被用作 P 中的概率。我希望通过这种方式问题更清楚。我还想补充一点,在论文中报告了作者使用的数据,不幸的是,在 R 中导入它们需要手动导入它们。但是我重复任何data.frame()包含资产的回报就可以了。

0 投票
0 回答
26 浏览

optimization - 如何在 R 中将无风险利率更改为我的投资组合优化(我正在使用投资组合分析包)?

我只能在默认假设 rf = 0 的情况下优化我的投资组合。我唯一能够更改 rf 的时间是使用有效边界图函数时。我也希望能够在优化投资组合功能中做到这一点,这样我就可以看到每种资产的具体权重。

提前致谢!

0 投票
1 回答
121 浏览

r - 二次优化 - 投资组合最大化问题

在投资组合分析中,给定期望,我们的目标是找到每个资产的权重以最小化方差

这是代码

我了解 mu 和协方差矩阵的公式,并且知道quadprog绘图的用法

但是,我不明白为什么Amatbvec以这种方式定义,为什么是 6 x 4 矩阵。

$mu0$ 是我们对投资组合的期望值,它固定为 8%

附件是问题在此处输入图像描述

0 投票
0 回答
74 浏览

optimization - Beta中性和美元中性投资组合

我正在运行一个模型,该模型可以识别这三笔交易中的三笔交易,两笔多头和一笔空头,我正在尝试优化实现以下目标的权重组合。我需要做空,但需要组合购买以实现以下目标。

市场中性 - 第一行(在下表中)

多头和空头必须等于 1/-1% - 第二行和第三行

预期回报等于 0.2% - 第四行

美元中性(对于这个例子,我假设每笔交易的总价值是 100,000 美元),即空头的价值等于多头的价值 - 第 5 行

它在我将 MEQ 设置为 4 时有效,但是当我将其更改为 5 以包括美元中性线时它失败了。

非常感谢任何建议。

谢谢

0 投票
1 回答
50 浏览

r - 营业额约束不适用于投资组合分析的投资组合优化

我正在尝试执行标准的投资组合优化,但限制允许投资组合的最终权重偏离一组初始权重。我用这个PortfolioAnalytics包做这个,下面的代码是一个没有任何错误的 MWE。

turnover_target0,所以输出权重应该与输入权重相同,(0.4, 0.3, 0.2, 0.1)但它们的权重相等(0.25, 0.25, 0.25, 0.25)。等权重是默认的初始权重,所以不知何故,我设置的初始权重似乎无法识别。但是查看add.constraintrolling_constraint的文档并没有多大帮助。看起来好像一切都应该正常工作。他们定义初始权重的方式与portfolio.spec的文档相匹配

有谁知道为什么我的初始权重被营业额约束忽略了?

0 投票
0 回答
33 浏览

r - R - PortfolioAnalytics 在使用 optimize.portfolio.rebalancing() 时在特定日期失败

我正在尝试使用简单的最小波动率和使用 edhec 数据的盒子约束来运行年度再平衡,但是在使用 60 个月的滚动窗口时它在 2012-12-31 失败,所以我在下面隔离了那个时期并且问题仍然存在:

我检查了协方差矩阵,一切似乎都很好。特征值是正的,并且两者都solve()产生MASS::ginv()结果,所以我很确定协方差矩阵很好。任何其他想法为什么它会在这个特定时间段内失败?我想也许投资回报率和盒子约束不兼容,但每隔 60 个月就可以正常工作,这是唯一失败的。

谢谢。

0 投票
0 回答
15 浏览

r - CVaR 给出 NULL 结果

我尝试在 R 中的 Portfolio 的 R CVaR 中计算,而不是给我正确的结果,而是给我 NULL 作为值。我用同样的方法计算了投资组合的 VaR,它计算出来了,但是在这里它没有成功。当我将投资组合方法从边际更改为组件时,它会给我结果,但我需要边际结果。谁能分享他们对这个问题的经验以及如何解决这个问题?