有没有一种简单的方法可以用 R

时间:2020-12-26 12:33:50

标签: r finance portfolio coding-efficiency r-portfolioanalytics

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

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

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

我也看到最近有人在用 python 做这件事,但我想用 R 来做: https://www.youtube.com/watch?v=Isutk-wqJfE


dput(dfRiskReturn):

structure(list(Return = c(12, -2, -4.5), Volatility = c(25, 12, 
34), cluster = structure(c(1L, 2L, 2L), .Label = c("1", "2"), class = "factor"), 
    X5 = c("FALSE", "FALSE", "FALSE")), row.names = c("ACWI", 
"TLT", "GLD"), class = "data.frame")

编辑:

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

1 个答案:

答案 0 :(得分:1)

这是一个例子。我使用 PerformanceAnalytics 的 edhec-data 来计算带有 fPortfolio 的相切组合。

library(fPortfolio)
library(PerformanceAnalytics)

data("edhec")

rets <- edhec

# compute the tangency portfolio
tp <- tangencyPortfolio(as.timeSeries(edhec))

frontier <- portfolioFrontier(as.timeSeries(edhec))
plot(frontier) # select 1 and 3

# get tangency point
> tp@portfolio@portfolio[["targetReturn"]][["mean"]]
[1] 0.004483096
> tp@portfolio@portfolio[["targetRisk"]][["Sigma"]]
[1] 0.006325268

enter image description here