<div dir="ltr">All,<div><br></div><div>I am close to wrapping up adding support for regime switching as per my proposal. I added a demo so you can see an example of the functionality (see demo/regime_switching.R).</div><div>
<br></div><div>There is one issue that came up that I would like some input on. The case is running optimize.portfolio.rebalancing with optimize_method="random".  If the rp object is not passed in as an argument to optimize.portfolio.rebalancing, then we try to generate the random portfolios there so the random portfolios are not (re)generated inside the loop in optimize.portfolio. </div>
<div><br></div><div>Since the regime portfolio has N portfolios for N regimes, the challenge here is knowing what portfolio to use for generating the random portfolios because the constraints could be very different in each portfolio. This only impacts optimize.portfolio.rebalancing because we do not know the portfolio specification based on the regime at the time we check the rp object. We do know inside optimize.portfolio.</div>
<div><br></div><div>The check for rp in optimize.portfolio.rebalancing looks like this</div><div><div>if(optimize_method=="random"){</div><div>    if(is.null(rp))<br></div><div>      rp<-random_portfolios(portfolio=portfolio, permutations=search_size)</div>
<div>  }</div></div><div><br></div><div>I have a couple proposed solutions</div><div><br></div><div>Solution 1:</div><div>Require that the user pass in a random portfolios object for the rp argument. We don't try to generate random portfolios and we throw an error if rp is null. We could just use a single rp object or allow for a list of rp objects with one rp object for each regime portfolio.</div>
<div><br></div><div>Solution 2:</div><div>Bypass this check and let optimize.portfolio generate random portfolios for each regime at each iteration. This is flexible, but could result in very long run times.</div><div><br>
</div><div>Are there any other solutions I should consider.</div><div><br></div><div>Please let me know your thoughts on this.</div><div><br></div><div>Thanks,</div><div>Ross</div><div><br></div><div><br></div></div>