'Formula Weight' Position Sizing Method

I third this suggestion. Great job though.

We’ve released Formula Weight again to production. We chased down the major issues affecting the release two weeks ago. Thanks for bearing with us, and let us know if you spot any other issues.

I like the new features!

Thanks for waiting until after the Monday trades to push out the release.

For those of you who have seen a backtest terminated due to ‘Exposure after Rebalance’ (i.e. ‘model exposure deviated X% above/below the target’ for ‘Allow deviation’ and ‘model cound not remain at target exposure’ for ‘Adjust transactions’), functionality has been added to allow the system to issue warnings instead of terminate the backtest. On account of this, all users with simulations set to ‘Allow deviation up to 100%’ are advised to switching them back to ‘Adjust transactions’ or decrease the percentage to a reasonable number depending on which ‘Exposure after Rebalance’ method you prefer. Neither of these options will terminate a backtest moving forward.

It is time to allow this in DM models. What is the hold-up. Here is a 50 position model that gives preference to the smaller and med-cap stocks of the Russell 3000 which can only be done with the new Formula Weight’ Position Sizing Method. Low turnover and a 20% annualized return. The great recession drawdown of 40% looks like it never happened.


As per your request, the restriction has been removed.

Thanks Aaron.
The position weight formula has great potential, especially for targeting the smaller caps of a universe with reverse-cap-weighting.

Hi guys,
You should have a closer look at the Position Weight Formula.


What a great chart, Georg! Thanks!

What do you think about rebalancing based on inverted mktcap versus including mktcap (lower is better) into the ranking system? I think I’m going to experiment with this.

An analysis in The Case For Reverse-Cap-Weighted Indexing provides support for weighting the stocks of the S&P 500 Index inversely to their market capitalization (MktCap) in order to achieve higher returns than the index.
https://seekingalpha.com/article/4122258-case-reverse-cap-weighted-indexing

There is also a new ETF RVRS following this index.

• For the 19 year period the cap-weighted portfolio showed an annualized return of 6.62% with a maximum drawdown of -54%.
• An equal-weighted portfolio would have had an annualized return of 10.27% with a maximum drawdown of -59%.
• A reverse-cap-weighted portfolio would have had an annualized return of 13.22% with a maximum drawdown of -65%.
• The higher return of the reverse-cap-weighted portfolio is attributed to the higher average returns of the smaller cap stocks relative to the larger cap stocks of the S&P 500.

Thanks for the paper, Georg. I was wonder what exactly Reverse-Cap meant.

Walter

Thank you Georg - very interesting. Seems to confirm that smaller caps perform better over time (even if the small caps here are still quite large!)
I must say I could sense the potential but have not had the time to look into how to use the formula Weight.

I just read the tutorial which is helpful albeit limited (in my view). More examples of practical use would be welcomed in it

To test your suggestion on my existing systems - am I correct if I do (this would be my first attempt at using formula weight):

  1. create a custom series that outputs the min mktcap of the universe (here SP500) → call it MinMktCap
  2. create another custom series that outputs the max mktcap of the universe (here SP500) → MaxMktCap
  3. add in the field “Position Weight Formula” → close(0, getseries(“MinMktCap”)) + ( close(0, getseries(“MaxMktCap”)) - Mktcap )

NB: not looking for any special sauce you might have added - just plain vanilla “reverse” mktcap as can be computed on P123

Many thanks

Jerome

Jerome,
It is not as complicated as that.
In the formula box write 1/MktCap fro a reverse-cap-weighted model, MktCap for a cap-weight model, and 1 for an equal weight model.

Ah! Thanks Georg.

Using 1/MktCap, I do get a similar general outcome on the SP500 (a promising likely improvement on existing models for min effort) but still significantly different from yours:

  • Are there further settings in the formula weight area that I need to better understand / become familiar with?
  • To keep things simple I put transaction & slippage at zero and price = next open. I still get a different curve from yours when making that more real (eg variable slippage, my real transaction costs on IB and middle Hi-Lo)

Public sim here → https://www.portfolio123.com/port_summary.jsp?portid=1516760

Thanks

Jerome

Now with a cap-weighted model, you never need to rebalance. As a stock grows in market cap, it takes up more space in your portfolio.

With a reverse-market-cap weighted model, you have to rebalance the hell out of it in order to keep it running. Does your chart take into account the transaction costs of doing so? And how often does it rebalance?

Jerome,
I used next close, and rebalance daily. All transaction costs set to zero and starting capital 1,000,000. The idea of the charts is to compare the index for various weighting systems, not to trade it. If you want to invest in a reverse-cap-weighted ETF then use RVRS, and for equal-weight use RSP.

You may want to set starting capital even higher to get all 500 stocks into the model.

Yuval,
You can build low turnover model with more sophisticated rev-weighted formula.


RVRS rebalances quarterly. They often have to sell their biggest positions, as the lowest-cap stocks drift out of the S&P 500 and get replaced by other stocks. This leads to poor tracking and forced capital gains payouts. The expense ratio is 0.29%, which is three times that of SPY’s, and that’s in a very low-volatility environment; doubtless that expense is going to go up when market volatility goes back to normal.

If you rebalance quarterly and take transaction and cap gain costs into account, what would your chart look like then? Would RVRS really outperform SPY?

Hi! Would anyone be able to share some more sophisticated position sizing formula ideas and settings which either incorporate min/max levels already in the formula (instead of setting it manually based on the # of holdings), control turnover or extreme differences between largest and smallest positions?

I think a while ago I saw usage of log function or something like 100+ Rank() etc. I have only briefly tested the formula weight rebalancing, but so far have been disappointed with the results because alternative rebalancing formulas have either increased concentration or the turnover often mostly outweighed any benefits. Also I find it really complicated and there are so many moving parts (settings) that it is hard to understand where improvements/costs come from.