I am testing various optimization methods for a currency-only portfolio. I have a vector of expected returns for the major developed currencies vs. the USD each week (based on a proprietary model). I then take the annualized vol of each currency and dump it all into an optimizer, looking to run a portfolio of currency bets that maximize my return for a given level of risk. I have multiple issues and would appreciate any insights:
Firstly, the forecast model will sometimes generate across-the-board short positions in all currencies in my model against the USD. Since currencies are a relative value game, how do I incorporate exposure to the USD in the optimizer? Should the expected returns and the vol on the USD simply be an unweighted inverse average of all the other currencies? Also, since I cannot be net long or short the currency market, do I impose the constraint that the weights must sum to zero? Am I even thinking about this problem correctly?
Secondly, when I do the above, the weights swing dramatically and often assign positive weights when the model of expected returns is indicating a short (and vice versa). It's typically happens for positions with a low expected return and one could argue these are hedging positions. Is the ideal solution here to impose a constraint that the sign of the weight needs to match the sign of the expected returns?
Alternatively should I try Black Litterman? What are the market equilibrium returns for currencies?
Or should I drop the vector of expected returns from the optimizer, use it to simply generate long-short positions, and then simply run the optimizer to minimize my risk?
Appreciate any suggestions