Now, that we have discussed the volatility targeting approach on the asset level, we can talk about the overall strategy level targeting. In particular, we argued that there is loss in risk exposure, due to the imperfect correlation of the positions held. In simple terms, we need to lever up our entire strategy to ensure that our market exposure is the desired level.
We can treat our entire strategy (as opposed to some stock) as a capital asset with a targeted conditional volatility level. Again, we will discuss the volatility estimation schemes at a later period, and suppose we already have it estimated.
This may be a good idea because
it is a useful framework for deciding nominal exposure as opposed to a discretionary constant value
a stylized fact is the
leverage effect
where the return process is negatively correlated with the volatility process. Therefore an expansion in volatility may be indicative of lower expected returns and hence smaller bet sizing might save trading capital and reduce drawdowns.
The Mathematics
The math is not really any different from the discussion on asset level volatility targeting — after all, we argued they were simply capital assets.
This is a very, very intuitive approach that cannot be simplified further. Ignoring the math, it just says: if historically the leverage was not enough, then raise the leverage, otherwise shrink it towards a dynamic equilibrium.
The Targeting Effect
I would leave the impacts of volatility targeting to a paper, that explains the utilities and changes to the risk profile of the trading strategy better than I can. If there is one thing I would like to add on to the paper, it is that the return on alpha strategies also display volatility clusters
, and choosing a static leverage completely ignores heteroskedasticity in alpha returns — well duh.
Additionally, suppose you had a priori estimates of a strategy’s volatility profile and it was a wrong; a static framework would likely kill the portfolio. If it was an overestimation, this is not too bad, but if you underestimated the risk profile of a left tail event on a fund with a risk mandate, this is a cardinal sin in the absolute return world that would see investor withdrawals.
The Impact of Volatility Targeting:
https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3175538
The Code
As explained before, the functions and modules we reference really do not have anything special about them, but readers said that they would like to see it with their own eyes, so here we go. These are just calculators for like, FX and stuff.
Note that the txn model is not included, and we want to bring up multiple points on that.
IN particular,
If you are trading multi-strat quantitative, the txn costs should be done at the highest level of abstraction. That is, there should be netting effects, where positions cancel between different strategies. Otherwise, an operation trading a unified mega alpha of weaker signals would not be a successful one by the likeliest of chances. Do note that some brokerages create net trades with two separate, open orders instead of modifying the existing one. This is a big no no and if that is the case, you need to program the trade order logic such that you don’t get charged double.
There are many ways to account transaction costs, depending on your trading conditions and markets traded. You can even do it post facto by approximating the turnover and penalising the Sharpe accordingly.
In general you should implement positional inertia so as to prevent too frequent trading, which the transaction model should account for.
Even after you account for transaction costs, the resulting performance is likely to be an optimistic estimate due to slippage. You may argue this should be random noise in general, but it is more likely that the impacts are actually negative since the information has decayed. If you are computing orders on close and submitting on market open, then you face jump risk, and should also compute the PnL accordingly.
The code is provided below for subscribed readers.