У меня есть график возврата риска и фрейм данных (dfRiskReturn в выводе ниже). Я не хочу использовать Yahoo Finance для загрузки акций, я уже получил данные о доходности риска другим способом. Все, что я хочу знать, это то, что теперь, когда у меня есть фрейм данных, как мне получить эффективную границу.
Это старое видео, но это в значительной степени то, что я хочу. Возможно, я хотел бы проверить корреляцию (столбец кластера в dput) с эффективной границей (если это возможно). Выбирайте только некоррелированные акции друг с другом или что-то в этом роде, чтобы найти наилучшую эффективную границу, я не знаю. https://thewikihow.com/video_zkXIByRwJ-g
Я читал комментарии на YouTube, и они рекомендовали пакет fPortfolio, но я понятия не имею, как он работает.
Я также вижу, что в последнее время парень делает это с python, но я хочу это в R: https://thewikihow.com/video_Isutk-wqJfE
вывод (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
Вот пример. Я использовал данные edhec из PerformanceAnalytics для расчета портфеля тангенций с помощью 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