我可以获得每日收益,但无法获得更多收益。使用以下代码。
# 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软件包。我还需要帮助来获得资本市场线(考虑从联邦储备中获得免费风险资产。)
您接下来需要找到波动率,均值收益率和相关性。这并不是听起来那么简单,因为没有正确的答案来选择正确的时间范围。您还需要确保您的退货计算正确。也就是说,总收益或价格收益。
此后,您需要找到可用于在每个风险级别构建最优投资组合的优化器。最有效的方法是从有效边界上的最高风险,最高回报点入手。然后,随着工作的进行,将算法与先前的投资组合一起播种。如果您波动最大的股票没有最高的回报,那么您将不得不应对这种额外的麻烦。
此后找到资本分配行。第一个问题是确定要使用的资产。进行此选择的最佳方法可能是与您为成交量和收益计算选择的时间范围保持一致。一个人拥有寻找最佳市场投资组合所需的无风险资产的预期收益。这应该相对简单。
此视频帮助了我,非常容易理解https://www.youtube.com/watch?v=6Pi0fjARtUI