0

我可以获得每日收益,但无法获得更多收益。使用以下代码。

# create list of stock tickers – replace the tickers here with those you want to use in your portfolio

TickerList <- c("T", "GOOG", "CSCO", "MSFT", "JNPR", "AAPL", "AMZN", "GOOGL", "JNJ", "FB", "V", "HD", "VZ", "MA", "INTC")

# read closing prices from Yahoo keeping only the closing prices

ClosingPricesRead <- NULL
for (Ticker in TickerList)
  ClosingPricesRead <- cbind(ClosingPricesRead,
                             getSymbols.yahoo(Ticker,
                                              from="2016-12-31",
                                              to="2019-12-31",
                                              verbose=FALSE,
                                              auto.assign=FALSE)[,4]) # [,6] = keep the adjusted prices

# keep only the dates that have closing prices for all tickers

ClosingPrices <- ClosingPricesRead[apply(ClosingPricesRead,1,function(x) all(!is.na(x))),]

# convert prices to daily returns

returns <- as.timeSeries((tail(ClosingPrices,-1) / as.numeric(head(ClosingPrices,-1)))-1)

建立平均方差边界。

我一直在努力做到这一点,因为我不能使用 fPortafolio 包。我还需要帮助才能获得资本市场线(考虑到美联储的免费风险资产。)

4

3 回答 3

1

接下来,您需要找到波动率、平均回报率和相关性。这并不像听起来那么微不足道,因为选择正确的时间范围没有正确的答案。您还需要确保您的退货计算是正确的。即总回报或价格回报。

在此之后,您需要找到一个可用于在每个风险级别构建最佳投资组合的优化器。最有效的方法是从有效边界上的最高风险、最高回报点开始。然后在您向下工作时使用以前的投资组合为算法播种。如果您最波动的股票没有最高的回报,您将不得不处理这种额外的复杂情况。

在此之后是找到资本配置线。第一个问题是决定使用哪种资产。进行此选择的最佳方式可能是与您为 vol 和 return 计算选择的时间范围保持一致。一个你有你需要找到最佳市场投资组合的无风险资产的预期回报。这应该相对简单。

于 2020-06-06T18:03:37.830 回答
0

这个视频帮助了我,真的很容易理解 https://www.youtube.com/watch?v=6Pi0fjARtUI

于 2020-06-08T16:45:14.557 回答
0

如果您的数据准备就绪,只需开始使用package. 构建边界如下所示:

library(fPortfolio)

myData <- as.timeSeries(myData)  # Get the data in the right format

mySpec <- portfolioSpec()  # This depends on the problem at hand
setNFrontierPoints(mySpec) <- 20  # for the chart
longFrontier <- portfolioFrontier(myData, mySpec)  # Default frontier

frontierPlot(longFrontier)  # This will create a chart

还有很多其他选项可用。有关更多详细信息,请按照此处的示例进行操作,ch。18.

刚刚意识到你说没有 fPortfolio

如果您有兴趣自己解决优化问题,这里是一个很好的来源。使用一些二次规划优化包(例如quadprog.

于 2020-06-15T17:00:53.450 回答