我有一个风险回报图和数据框(下面 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
答案 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