Оптимизировать портфолио в PortfolioAnalytics без объекта xts

Подобный вопрос был задан некоторое время назад, но я хотел бы снова обсудить его с некоторыми дополнениями: создать эффективную границу в PortfolioAnalytics без объекта xts

Я пытаюсь использовать R Package PackageAnalytics с предопределенными допущениями на рынке капитала, включая ожидаемую доходность, стандартные отклонения и ковариационные матрицы, и поэтому не имею исторического потока возврата для базовых активов. В предыдущем связанном обсуждении я использовал следующий подход для определения пользовательских пользовательских моментов и вызова их при оптимизации:

# num_assets is the number of assets in the portfolio
momentargs = list()
momentargs$mu =  matrix(arithmetic.return.vector, ncol=1)
momentargs$sigma = matrix(cov.matrix, nrow=num_assets, ncol=num_assets)

optimize.portfolio(R=arithmetic.return.vector, portfolio, momentargs=momentargs)

Где arithmetic.return.vector - вектор ожидаемых доходов для различных активов, а cov.matrix - симметричная ковариационная матрица. Когда я запускаю optimize.portfolio, я могу найти максимальный возврат портфеля, но когда я пытаюсь найти минимальное отклонение или максимальное отношение Шарпа, функция optimize.portfolio выдает следующую ошибку:

objective name var generated an error or warning: Error in checkData(R, method = "xts", ...) : 
The data cannot be converted into a time series.  If you are trying to pass in names from a data object with one column, you should use the form 'data[rows, columns, drop = FALSE]'.  Rownames should have standard date formats, such as '1985-03-15'.

Оптимизация будет фактически продолжаться, но решение покажет NA для объективной меры StdDev. Есть идеи, что происходит?

0 ответов

Другие вопросы по тегам