有没有办法从大量股票中提取特定数量的夏普比率最高的股票?

Is there a way to extract a specific number of stocks with the highest Sharpe ratio from a large number of stocks?

我正在尝试使用 R 从 2018 年 1 月 1 日到 2018 年 1 月 31 日每天使用 returns 提取夏普比率最高的股票 到目前为止,我已经设法使用

将数据转换为时间序列
library(zoo)
library(PerformanceAnalytics)
prices<-zoo(Project.Data.File,seq(from = as.Date("2018-01-01"), to = as.Date("2019-12-31"), by = 1))

为了进一步的统计计算,我无法计算每日 returns。 我试过使用

CalculateReturns(prices, method=c("discrete","log"))

但是我收到一个错误。 我也对如何处理丢失的数据感到困惑。任何帮助将不胜感激。请找到附加到此 post 的 excel 文件。 提前致谢!

Blockquote

该错误信息量很大。您的数据不是数字。这是因为您的原始数据在第一列中有日期。在创建动物园对象时删除此列。

library(zoo)
library(PerformanceAnalytics)

prices <- zoo(Project.Data.File[,-1],seq(from = as.Date("2018-01-01"), to = as.Date("2019-12-31"), by = 1))

stock_returns <- CalculateReturns(prices, "discrete")

head(stock_returns[,1:3])

           A2.MILK.CO.LTD ADELAIDE.BRIGHTON.LTD ABACUS.PROPERTY.GROUP
2018-01-01             NA                    NA                    NA
2018-01-02    0.017639077          -0.003067485           0.000000000
2018-01-03   -0.009333333          -0.003076923          -0.002427184
2018-01-04    0.009421265          -0.004629630          -0.012165450
2018-01-05    0.006666667           0.015503876          -0.002463054
2018-01-06    0.017218543           0.004580153           0.000000000