Weighting Formulas

You got that right, more or less.

Here are the two changes I’d like to see made, but I think they’re quite different from each other. I think I can state them quite succinctly.

  1. Give us the option to reverse the priorities of the buy and sell rules. Right now you can only buy a stock when a sell rule is fulfilled. At that point you automatically buy the highest-ranked stock. I want the option to reverse that so that you only sell a stock when a buy rule is fulfilled (e.g. rankpos < 10). At that point you automatically sell the lowest-ranked stock.

  2. Make it possible to reconstitute based on a weighting formula without a rebalance. This would necessarily involve deprioritizing the number of stocks in the portfolio (make that subject to variation) and prioritize instead the weight of the new buys. As the system is currently configured, if you choose the weighted formula option and you jigger it so that no rebalance takes place, then the size of the buys is more or less the same as the size of the sold positions, which can vary greatly from one week to another.

There are algorithms governing the way the simulations run, and either of these changes would involve moving some nodes up and down. That’s not necessarily an easy thing to do, I realize. In the meantime I’ll just use the old simulations. My transaction costs are high enough that rebalancing my existing positions isn’t worth doing.

Thanks,

  • Yuval

I will read Yuval’s post in detail.

But I think using the present weighting formula and setting priorities for the funding is at least the beginning of a simple algorithm that accomplishes most of his suggestions. Simply start funding the higher ranked stocks with the help of tolerance and rebalance minimum to control this. Sell the stocks that cannot be funded.

For some ports this will clearly be the most rational algorithm. Other ports may do better with a lot of buy/sell difference and a tight rebalance minimum.

I think Yuval’s general idea is excellent.

-Jim

Walter:
Rebalance will happen regardless of your buy/sell rules.
Here’s a few way to cut down on rebalance transactions:
You can set ‘Total Drift Tolerance’, and the simulation will forgo the rebalance for a single period if the sum over each position of the differences between actual and ideal % does not exceed that ‘Total Drift Tolerance’.
You can set ‘Rebalance Minimum’ to eliminate transactions below a specific amount when rebalancing.
There’s currently no other way to control rebalance transactions for this position sizing method.

Yuval & James:
I would ask that you refrain from discussion of such enhancements/modifications on this thread, as it’s off-topic. Thanks.

Will do. Sorry. And as I have said before this is great just as it is.

-Jim

Aaron, whenever I greatly reduce rebalance transactions as you suggest above I end up with buys that vary hugely from the “ideal weight” in the transaction records, because, especially with small portfolios, the program replaces large positions sold with large buys and small positions sold with small buys. Is there a way to fix this? Can you add, for example, a button that specifies the percentage difference from ideal weight for a new position? Or vary the number of stocks in the portfolio? Here’s an example. Let’s say I have a portfolio of 10 stocks and I set rebalance minimum to 200%. A position grows to 18% of the portfolio and then gets sold. The highest ranking stock, according to my rebalance criteria, should have an ideal weight of 7.5%. But the program will buy it at 18% of my weight. The next week two stocks get sold, and because their price has gone way down since my initial buy, together they constitute 12% of my portfolio. The two highest ranking stocks have ideal weights of 12%. But they get bought at 6% of weight because there has to be exactly 10 stocks in the portfolio. Thanks, - Yuval

Yuval, please read the rest of the post you quoted.

Marc,
Is the appendix to Dynamic Position Sizing on Portfolio123 new? In any case, I missed it the first time and I found it helpful.

For me it helped me to understand that there is always scaling/normalization going on. And now I understand the scaling a little better. BTW I like the scaling: just an observation and something I am still learning about.

So first of all, understanding this makes me realize that I can completely control the ideal weighs. But if I want to do this I have to do the scaling myself. Basically this just means I have to make all of the position weights add up to 100%. It is a little bit of a hassle but just High School Algebra when I need to do it.

But also the built-in scaling is excellent. For a 50 stock model I just use 51-RankPos. That is it. Now I am not going to have a 50% weight for the highest ranked stock. But I don’t want to and I like the way it is scaled when I use this simple formula. Furthermore, with rebalancing, this is clearly better than equally weighted holdings (for my sims). I do not even need a sell rule with this or almost any rule works: it just sells if RankPos >50 due to “No Weight.” Nothing could be easier.

I played with an exponential decay of weightings this morning and it was not better. Lines are the best curve for me. Pow(2.718,-RankPos) and its variations do give pretty exponential curves for the holdings however.

I hope this is on topic: a discussion of weighting in general and 2 different equations I have played with. Probably, I think.

Anyway, for me and so far it has been performing exactly as intended.

-Jim

The only valid reason to weight differently than equal weight is if you have information that suggests one stock should be weighted more than another.

Information on which you can forecast return (at least), if not volatility and covariance.

Predicting which group of stocks will outperform is hard enough. Predicting which stocks out of that group will perform the best is a crap shoot unless you have information.

What are the sources of information? Ranking system is the logical choice.

This works better in a 50- or 100-stock portfolio than it does a 5- or 10-stock portfolio. Why? Because in the 50- or 100-stock portfolio (such as a smart beta ETF), if you’ve got a good ranking system, then the potential performance difference between #1 and #100 is going to be large.

In a 5- or 10-stock portfolio assuming a decent-sized universe, you already are in the 98th or 99th percentile of your ranking system. Unless your ranking system is highly accurate at the top of the range, you are splitting hairs at this point.

Parker,

I think this is so true! The other thing I keep thinking is this: if there is some new wonderful factor (new information) to use in weighting why didn’t it work in the ranking system? For sure, if I just found this wonderful factor, I will try it in the ranking system first. It will still be there in the weighting if it is in the ranking system and I weight by the ranking system.

Also, ranking has smaller, manageable gradations (too small for 5-10 stock models as you state). As Marc illustrates factors like Market Cap have such large variation that they really are not useful: you end up owning too little or too much of one stock. I do not want to own 99% Apple Stock. He has a good idea to use Rating to compress the difference to some extent. ZScore could also be used. But is this enough smoothing/compression? When you can use Rank or RankPos the curve is very smooth—progressing as you define it.

Market cap is actually a great example. It is already taken into account in my universe and many of my ranking systems. If it is so important that it is the one factor that I want to use for weighting position size then maybe I need to go back and increase the weight in my ranking system or change my universe. Mathematically, you would never do this unless Market Cap does not behave in a linear fashion or has too much “collinearity” in your ranking system which can be the case. But even then using a new factor for the small number of stocks purchased in a sim is likely to lead to overfitting and unpredictable out-of-sample results.

Finally, when you speak of “information” it makes me go all the way back to Kelly’s original paper (Kelly Criterion fame). While I am not advocating using the Kelly Criterion the idea of changing bet size according to expectations (and information) will not go away. Here is our chance to do that.

BTW, when I actually have some can you manage my money? No joke.

-Jim

Miro:
“This works better in a 50- or 100-stock portfolio than it does a 5- or 10-stock portfolio.”

Yes, I just ran this on a 50 position port and using weighting by Basic: Sentiment increased the performance by 70% compared to a 20 position trial. I tried again using a simple valuation measure instead (YieldEarnYieldBookValTTM/Mktcap) and got a similar improvement . Amazing. (It is an ROE based design)
I have not seen that kind of improvement on my 10 or 20 position ports when expanding to 50 postions.
So your point seems to work (at least for this one). thanks for pointing this out.

Interesting thing I noticed is that the design is 100% invested all the time (virtually never in cash) but the number of positions invested in varies from 20-50. Now I think I beginning to see how this works.

Parker,

I agree with you 100%. This is definitely one of the wisest posts I’ve read on rebalancing.

But there is one exception to your rule that “The only valid reason to weight differently than equal weight is if you have information that suggests one stock should be weighted more than another,” and that is liquidity. With a large portfolio, a small number of holdings, and a universe that includes stocks with low volume, one absolutely needs to underweight less liquid stocks. It’s simply too risky to spend $25,000 on a stock with a daily dollar volume of $50,000, even if you’re planning to hold it for a long time, because it could take you ages to sell it if the liquidity gets a lot lower, and the market impact of your doing so would be formidable. The traditional approach is to exclude illiquid stocks. But spending less on stocks with low liquidity may be better than excluding them from your portfolio altogether. And that’s why the introduction of the possibility of weighting one’s portfolio is so wonderful for me.

Bear in mind that we can never have information that qualifies as wonderful because the information we want comes from the future; something we cannot hope to know (until it is too late to act upon). We’re dealing with ideas, expectations and probabilities. So no matter what we do, there is always room to hope for better.

We already are accustomed to working with probabilities in two ways:(1) the binary pass-fail protocols of the universes and buy/sell rules, and (2) the hierarchical protocols of the best-to-worst grey scale of the ranking systems.

Weighting (except when liquidity driven as would be the case with a size-based formula applied to a very large portfolio) simply adds a third probability-tacking protocol to our arsenal; the ability to express varying degrees of confidence above and beyond the strict hierarchy of the ranking system.

You don’t ever have to use formula weighting. P123 users have been getting by without it all along and in many cases achieving considerable success. Similarly, you don’t have to use ranking (aside from a minimally generic one just to get past that part of the portfolio platform); I used screening only successfully for years before I got to p123 and got the ability to rank. And you don’t have to use screening, and many on p123 omit this or use it just minimally.

This is where the art of strategy development comes into play. Be aware of how screening-ranking-weightng contribute to a model, and use whichever ones or combinations seem to you best able to translate your thoughts into computer-speak. All that’s happening here is that the number of big-picture ways (protocols) to express your ideas increases from two to three.

I applaud the feature addition, Marc. I just think it works best in bigger models.

To me, just like with the other big picture protocols available here, the method you choose for formula weighting must have some relevance to the theory behind the model. (Or address a trading issue like poor liquidity as Yuval notes). Otherwise, it has the danger of becoming another curve-fitting trap for the unwary.

For example, if I was building a “sentiment value” model and stumbled across a growth weighting formula that tested well with that model, I’d be hesitant to use it since that’s not the factor I’m trying to exploit. I would be worried I was torturing the data.

Thanks Yuval. That makes sense. I don’t build micro cap models, so I wasn’t thinking in those terms.

Just to be clear, I like this addition and will be using it.

More than likely it will be for the liquidity concerns that you have mentioned in one of the PDFs: requiring me to expand my number of holdings. It does seem to become more important with a larger number of holdings.

How, exactly, will I be using in then? I hope to have learned a few new things by that time.

But ask me in 730-1095 days: I will be able to tell you what I am doing 2-3 years from now :wink:

Along those lines: the number of different combination of things that you can do at P123 just grew exponentially: Universe, Buy/Sell rules, Rank factors, formulas, rank weight, custom series and market timing. Now positions weights. I believe you have pointed out that individual factors may not work alone but may work very well (and non-linearly) when combined.

There is enough complexity that no one (including me) can be trusted when they say something will not work. It is impossible that they would have been able to look at all of the combinations closely enough to know this.

I think weighting by Rank works. If I said I knew something would not work it was a mistake as I could not have know with any certainty.

-Jim

Yes, I would be very interested if someone can show data or a logical argument as to why weighted position sizing is any different or any better than simply reducing the number of stocks in your portfolio. (Aside from using the position weighting to limit how much you buy of illiquid stocks).

To address Hoyt’s question, weighted position sizing can be useful for diversification. Let’s say I want fifty stocks instead of twenty, but the same returns as I’d get with twenty. I could buy fifty stocks with the top-ranked stocks weighted much more heavily than the bottom ones, and then theoretically I’d get the same or better returns.

However, no matter how hard I try I can’t get any weighted position formulae to work better than unweighted position formulae for one simple reason: the transaction costs of rebalancing. Does anyone have any ideas about how best to limit those?

I’m a huge proponent of variable position weighting and have been practicing it for decades.

Suppose you want your portfolio as a whole to push a certain factor, say Inst%. Now you could easily do a rank on it and only present the top 10% by rank. However, there are other characteristics of your universe stocks you like as well, so to rank in the screen would eliminate them.

By passing the universe to rebalance without cutting Inst% first, and then weighting the positions so they optimize Inst%, you get the best of both worlds.

As to limiting the number of stocks in the portfolio, I suppose you could get to a similar result, but you lose diversification. Plus one of the stocks you eliminated could possess other characteristics that help drive alpha in the portfolio.

In the real world, anyone running money is generally fully invested. They are not paid to manage cash. Individual investors have the luxury of cash, or more likely in the real world an advisor who assembles a group of portfolios (book) for a client takes on the responsibility of asset allocation.

This first step by P123 toward weighting is long overdue. I’m excited to see it evolve into what will be a very robust asset to the platform.

Hoyt,
Edit: This is a good question. Yuval make a good point about diversity. But as far as absolute returns, I want to look closer before putting in my 2¢.

-Jim

That is consistent with how pros use it.

As to smaller portfolios, I suspect (but have not proven) that it won’t help for 5 stock portfolios. Can it work for 20-30 stock portfolios? That will be something for us to determine. Applying weights to portfolios thusly sized is pretty new . . . In fact, we might be the first. Some work I’ve done suggests reason to beleive it could work, but ultimately, we’ll see as we go along. As for me, trading the way I do (FolioInvesting), I can get prety big without blinking an eye.

Yes, yes, yes.

I could make a case for value-sentiment weighted by growth. To me, sentiment is a proxy for expectations of future growth, so its already a value growth model. I can see the logic of weighting based on companies that already have decent historical track records for growth – though I’d have to examine and address the mean reversion hazard accompanying extreme historical growth rates, which I might do through buy rules that addrss stability of growth, or eleiminate extremes.

That would be how I’d do it. But I suppose one who has a very small portfolio and lots of courage could go the other way, so long as the largest position is still tradeable.