There's a massive gap between how optimization in finance (particularly portfolio optimizers) are viewed by non-experts, and how they are used by practitioners. That gap is responsible for some false beliefs, along the lines of "optimization never works" or ...
-
-
impact), current position x0, and some constraints, and you run a quadratic optimization to find a vector of positions "x" which maximises alpha * x - x' * covariance * x - spread * abs(x - x0) - slippage If you do this naively you will get bad results!
Show this thread -
A better approach, the one I use, is to start with a heuristic solution that you know works (i.e. you would make money with it). Then write down an optimization problem that gives you the same result. You're now in a good place because you have a set of parameters for the
Show this thread -
optimizer that definitely give a good result, and you can start making changes to the optimizer to try and improve it. One thing optimizers are good at is finding new solutions that are close to existing solutions, but satisfy extra constraints. That means you can change
Show this thread -
a parameter, and be sure that the constraints will still be satisfied. That's not generally true if you start modifying a heuristic algorithm - changing one component normally requires changes elsewhere as well.
Show this thread -
That's all very vague so let me give an example. You have a vector of signal values "s". Set target positions to be proportional to (s - mean(s)) / sum(abs(s - mean(s))) This has zero net exposure and constant gross book size.
Show this thread -
You then apply some buffering to it, as described in this earlier thread, to determined what trades you should do. This is the heuristic solution. Note that after the buffering it no long has zero net exposure.https://twitter.com/macrocephalopod/status/1373216917058682881?s=20 …
Show this thread -
The quadratic optimization problem that gives this result has a linear term proportional to "s - mean(s)", a diagonal covariance matrix, a risk aversion which is proportional to sum(abs(s - mean(s))) and a simple linear cost term proportional to abs(x - x0)
Show this thread -
The simplest enhancement is to add a zero net exposure constraint, or a quadratic penalty on the total net exposure. That gets you all the benefit of trade buffering but also maintains close to zero net exposure - an instant win.
Show this thread -
Another direction of research could look at varying the risk aversion parameter while introducing a maximum book size constraint. That will put more weight into the highest conviction positions, while zeroing out the low conviction positions.
Show this thread -
Or you could make the linear term proportional to volatility and the quadratic term proportional to volatility^2 and get an optimizer which scales the book up and down in response to current volatility conditions (and keeps the benefit of trade buffering and zero net exposure)
Show this thread -
There are ~unlimited ways to tweak the portfolio optimizer, each of which allows you to control one aspect of the portfolio construction and let the optimizer control the others. So have fun, and don't be scared of optimization.
Show this thread
End of conversation
New conversation -
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.