Я использую четыре акции, то есть Sunpharma, Maruti, IciciBank и TCS, и пытаюсь найти оптимальный вес всех акций, использующих касательный портфель на эффективной границе. Когда я передаю набор данных возвратов за последние 60 месяцев в следующем коде:
library(timeSeries)
library(PerformanceAnalytics)
library(fPortfolio)
portfolio <- read.csv("c:\\SharePrice.csv")
timeseries_portfolio <- timeSeries(portfolio[,4:6],portfolio[,1])
stockret <- returns(timeseries_portfolio)
tangencyPortfolio(stockret, spec = portfolioSpec(),constraints ="short")
Я не получаю вывод при короткой продаже, даже если я передаю ограничение = "короткая". В основном это приводит к коротким продажам до 0, а затем дается соотношение для оставшихся 3 акций.
Portfolio Weights:
Sun.Pharma Maruti ICICI.Bank TCS
0.1222 0.4329 0.0000 0.4450
Однако, когда я делаю это, используя ручной метод кодирования, это дает -1,33 для IciciBank, это означает, что касательный портфель фактически предлагает короткую продажу акций IciciBank, но библиотека дает неверный результат.
Я хочу понять, как разрешить короткие продажи в R-коде касательного портфеля, который присутствует в библиотеке fPortfolio. Странно то, что когда я рассматриваю только 3 акции в портфеле, это дает правильный вес, который соответствует моему ручному коду без использования библиотеки.