The optimal re-balancing strategy takes account of factors including i) objective function, ii) current portfolio weights, iii) expected return vector containing updated views/alpha forecasts, iv) uncertainty in the alpha forecasts, v) transaction costs, vi) risk aversion, and vii) constraints (long-only, turnover, etc.).
Question - Are there any libraries in R that return the optimal weight vector as a function of these inputs and related reporting? Or should I select one of the many optimizers in R and build out all the wonderful optimization reporting (risk budgeting, contribution to risk, etc.) that the rmetrics team has already done?
Below I describe why the rmetrics package does not solve the problem:
The challenge is that the rmetrics optimization procedure identifies the optimal portfolio without reference to current vector of portfolio weights, updated alpha forecasts, and transactions costs. The correct procedure performed periodically would be to specify the path of the portfolio along a line where the marginal transaction cost is just offset by the marginal expected return (or marginal risk reduction) in the utility function. The marginal return would be the output of a forecasting model as opposed to using the mean return. The fPortfolioBacktest anticipates this issue and attempts to smooth the change in weights from period to period. But we can do better by having the optimizer confront the trade-off directly.