我在 R 中使用随机森林来获取股票属于某个类别的概率。有了这些概率,我想构建包含数据集第一个日期概率最高的 5 只股票的投资组合,然后每 10 天用当时排名最高的股票重新平衡一次。投资组合应该是等权重的。
这是我认为可以代表我的数据的一些示例数据。
Date <- rep(seq(as.Date("2009/01/01"), by = "day", length.out = 100), 10)
Name <- c(rep("Stock A", 100), rep("Stock B",100), rep("Stock C", 100), rep("Stock D", 100), rep("Stock E",100), rep("Stock F",100), rep("Stock G",100), rep("Stock H",100), rep("Stock I", 100), rep("Stock J", 100))
Return <- rnorm(1000)
Prob <- runif(1000)
DF <- data.frame(Date, Name, Return, Prob)
DF <- DF %>% arrange(Date, desc(Prob))
> head(DF)
Date Name Return Prob
1 2009-01-01 Stock F 0.52259644 0.8084277
2 2009-01-01 Stock A 0.57720376 0.7617348
3 2009-01-01 Stock B -0.09864981 0.7256358
4 2009-01-01 Stock E -1.26136381 0.6200346
5 2009-01-01 Stock G -1.37360527 0.5680765
6 2009-01-01 Stock D -0.04794049 0.4793370
因此,投资组合将在前 10 天包含股票 F、A、B、E 和 G,然后将其与百分比最高的股票重新平衡。
我不太擅长编码和 R,并尝试查看如何使用 PortfolioAnalytics、PerformanceAnalytics 和 tidyquant 执行此操作的选项,但我无法找到我了解如何执行此操作的解决方案,因为我不是有兴趣使用任何形式的优化。我需要一个由我计算的百分比确定的简单投资组合,并进行再平衡。
如果有人对我如何做到这一点有任何建议,我将不胜感激。如果这是发布此问题的错误论坛,我很抱歉并将其发布到其他地方。