Beta site - Does reconstitution work correctly?

P123 - I am running an ETF simulation located here:
https://beta1.portfolio123.com/port_summary.jsp?portid=1502306

The ranking system has one factor: Yield. I have specified 5 positions for reconstitution but the ETFs that are held are not the top 5 yielding ETFs in the universe, not even close. Am I misunderstanding something?

Steve

Try moving Buy2 into a custom ETF universe, as there’s no guarantee the model will buy the top 5 ETFs in the universe if you have additional filters applied after ranking (i.e. buy rules).

Aaron - I tried your suggestion but it makes no difference. The first holding is CSJ with a dividend of 1.57%.

Please look into this further.
Thanks
Steve

Thanks for following up on this issue. [font=courier new]FRank[/font] in the weight formula was erroneously reordering the picks, so after the first stock, all picks would be in the order of [font=courier new]FRank(“Sharpe2Y”)[/font]. The fixed version will be up later today.

Aaron - why is there “cross-talk” between reconstitution and rebalancing the weight? These two functions should have nothing to do with each other. In other words, when the reconstitution picks 5 ETFs, regardless of what screwball bug exists in the rebalancing formula, you should still have the same 5 ETFs. The reconstitution function essentially should set your universe of securities, rebalancing should only work on the reconstituted universe.

Steve

I have found I cannot use FRank in the weight formula, at least not if it’s part of a custom formula. The rebalancing messes up completely when I try to do that, so I just avoid it.

The current implementation of cross-sectional parameters requires them to be explicitly invoked by additional code. The additional code was erroneously requesting it to change the order of the input array (which, in this case, was the stocks sorted by rank).
As long as you have “Illegal Formula Values” set to “Trigger Error”, you will have the same result. We figured that it didn’t make much sense to hold a stock with no weight, so we chose to have it also affect ‘reconstitution without rebalance’ so as to avoid buying something that would be immediately sold at the next rebalance. I guess it could largely depend on the stability of the formula’s output.
If the weight formula (such as your [font=courier new]FRank(…) + 0.001[/font]) is guaranteed to be positive, it won’t make a difference, but you can use “Trigger Error” to be sure of that.

Yuval: Are you having trouble with FRank since the sorting issue was addressed?

Yes, same issue. I got around it very easily though by creating a one-factor rating system that replicates the FRank thing.

Check out this public portfolio and click on the transaction record and you’ll see the problem. https://beta1.portfolio123.com/transact_list.jsp?portid=1502097

  • Yuval

Aaron / P123 -

How does it make sense to have ‘reconstitution without rebalance’???

As for holding a stock with no weight, I was actually going to request that you allow this feature. It is less harmful than P123’s solution of screwing with the reconstituted holdings, which doesn’t make sense to me. If I reconstitute yearly and rebalance weekly then why should a security with zero weight for one week be taken out of the holdings for the rest of the year?

The way I see it, P123 has a problem because they sold the ‘one line equation’ for rebalancing based on the ability to use a ranking system (or FRank). This is wrong for so many reasons, one of which is that zero weights are produced. Besides the zero weight issue, the ranking algorithm has all sorts of quirks (that you can only appreciate after working a long time trying to get an RS to behave in a rational fashion.) And this is complicated by the fact that the algorithm appears to operate on the entire securities universe when most of the time, the port designer probably wants only the reconstituted holdings ranked (for the purpose of weighting). This leads to all sorts of artifacts in a system that truly needs to be predictable and comprehendable, but is neither in its current implementation.

I would like to point out that you guys (P123) have been cleaning up issues (rushed or poor implementation choices) for the last two years. Before you release this very important new functionality (separating reconstitution from rebalance) perhaps you should be stepping back and asking yourselves whether the current implementation is what you should be goiing forward with. It will be cast in stone for a very long time so don’t rush and put in kludgy fixes like dropping securities from the reconstituted holdings. A simple test whether you have something good is to choose a few ETFs and see if you can implement the their underlying rules using P123. Try this one for example: https://stockmarketstudent.com/stock-market-student-blog/how-to-design-a-capital-strength-stock-portfolio-part-1

If you can’t mimick the ETF then you probably need to rethink what you are doing.

Steve

Your input is appreciated, and we do intend to make this sizing method a viable replacement for ‘% of Portfolio Value’, which is contingent on sorting these kinds of things out.
Unfortunately, as you may know, the project has been going on for so long at this point without hitting production, so the current focus is on finalizing the current feature set.
But rest assured, this new position sizing method is a high-priority project for us, and the most important upcoming feature planned is multi-factor position sizing, which will allow more robust control of outliers/invalid values.