Portfolio Rebalancing with Forecast Uncertainty and Transaction Costs
Summary
The document describes the inputs needed for periodic portfolio rebalancing: current weights, updated expected returns or alpha forecasts, forecast uncertainty, transaction costs, risk aversion, objective function, and portfolio constraints. Its central proposal is to optimize the trade-off between expected return or risk reduction and the marginal cost of changing positions, rather than choosing target weights without regard to the existing portfolio.
The discussion contrasts this approach with R portfolio tools that may produce weights without current holdings or direct transaction-cost modeling. It points to PortfolioAnalytics as a source of optimization and reporting features, while other replies provide conference materials and package references. These recommendations are pointers, not a demonstration that a particular library implements the full proposed method. The document does not compare implementations, provide a worked example, or establish how forecast uncertainty and trading costs should be estimated in practice.
Key ideas
- A rebalancing decision should account for existing portfolio weights and forecast updates.
- Transaction costs can be incorporated by trading only when expected benefit justifies the marginal cost.
- Portfolio objectives, risk aversion, and constraints shape the optimal target weights.
- PortfolioAnalytics is mentioned as an R option for portfolio optimization and reporting.
- The document does not verify that the suggested packages directly solve the full transaction-cost problem.
Tags
Full text
# robust portfolio optimization re-balancing with transaction costs # robust portfolio optimization re-balancing with transaction costs 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. ## Answer by Brian G. Peterson (score 8, accepted) https://quant.stackexchange.com/a/1539 The PortfolioAnalytics package will create weights without reference to current weights, if that's what you want. It should also have much of the reporting that you like from Rmetrics fPortfolio. There is a longer seminar presentation on Portfolioanalytics from 2010's R/Finance conference here: Complex Portfolio Optimization with Generalized Business Objectives ## Answer by strimp099 (score 7) https://quant.stackexchange.com/a/1506 This is the website to the R/Finance conference this year. Tons of great links. http://www.rinfinance.com/agenda/ Brian Peterson's slide (Building and Testing Quantitative Strategy Models in R) mentions Portfolio-Analytics (which I think is based on R/Metrics). And here is a paper based on Portfolio-Analytics. http://cran.r-project.org/web/packages/portfolio/vignettes/portfolio.pdf I am a Python guy (not R) so I can't say if my response exactly answers your question but it may be a good starting place.
Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.