Я использовал случайный лес в 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
Таким образом, портфель будет содержать акции F, A, B, E и G в течение первых 10 дней, а затем сбалансировать его с акциями с наивысшим процентом.
Я не очень хорошо разбираюсь в кодировании и R и пробовал искать варианты того, как я могу сделать это с помощью PortfolioAnalytics, PerformanceAnalytics и tidyquant, но я не могу найти решение, в котором я понимаю, как это сделать, поскольку я не заинтересованы в использовании любых форм оптимизации. Мне нужен простой портфель, определяемый моими расчетными процентами, с ребалансировкой.
Если у кого-то есть предложения, как я могу это сделать, я был бы очень признателен. И если это неправильный форум для размещения этого вопроса, я прошу прощения и отправлю его где-нибудь еще.