Aug. 17, 2020

You start a stock portfolio with the intention of using scheduled rebalancing, meaning that the stocks in your portfolio are readjusted to a fixed weight on a yearly, monthly, or weekly basis. This portfolio management decision is simple, however, it does have ramifications.

An equal weight is easy to determine, it can be made proportional to the number of stocks j in the portfolio w = 1 / j. It does not say which stocks will be in your portfolio, only that the actual number of stocks will tend to j or less: → ≤ j. Fixing the number of stocks to be traded will also set the initial bet size which will depend on the available initial trading capital.

Another decision, part of the portfolio's setup phase, is setting the strategy's initial capital F0. Just by having fixed the initial capital and taken the decision to trade j stocks has also set the initial trade allocation. These portfolio management decisions are made prior to running any simulation or even going live.

The Number Of Stocks Traded

The fixed number of stocks in the rebalancing portfolio is independent of the strategy's trading logic or procedures. It has nothing to do with the actual stock selection process even though it will matter.

You cannot be biased on the number of stocks your trading strategy will deal with. There is no data mining in that strategy design decision or any kind of artificial intelligence or deep learning in selecting the “number” of stocks to trade. Nonetheless, there are some considerations and common sense to apply.

The number of stocks that will be treated in your portfolio is not the strategy's choice. It is your own. That you want 5 stocks, 400 or 1,000+. It is not the strategy's code that is making that choice but it will regardless be important.

Trading 1,000 stocks on a $10,000 initial capital should be considered ridiculous. The initial bets would be $10 per position and a 2% average net profit on such positions would be $0.20. You would most certainly need fractional shares and zero fees for such a scenario. Also, to make $1M in profit would require 5,000,000 trades. I think the point should be clear. The number of stocks in your portfolio should be related to your initial capital in order to get a reasonable initial bet size. The formula for this is also easy: (1 / j) ∙ F0 where F0 is again the initial trading capital.

A Simple Scenario

You want each position in your portfolio to represent a 1% risk exposure: w = 0.01, then j = 100, and the bet size will be F0 / 100. How big should F0 be to make it a risk-averse bet size while still making it a reasonable trading proposition?

Here is the rebalanced trading strategy equation reproduced below from my previous article: Another Walk-Forward.

F(t) = F0 + $X = F0 + Σ (H ∙ ΔP) = F0 + n ∙ xavg = F0 + y ∙ rb ∙ j ∙ E[tr] ∙ u(t) ∙ E[PT] = F0 ∙ (1 + g + α – Σ expt)t

We are interested in the part: F(t) = F0 + y ∙ rb ∙ j ∙ E[tr] ∙ u(t) ∙ E[PT] representing the rebalancing portfolio of which the variables y, rb, j, and E[tr] are by definition positive numbers where their product equate to E[n] the expected number of trades over the entire trading interval. The number of trades is necessarily equal to a positive number or zero: n ≥ 0.

Rebalancing Schedule

The rebalancing schedule determines the number of trades per rebalance. For example, over a 20-year period y = 20, on 100 stocks j = 100, rebalancing every month rb = 12, we would get at most: y ∙ rb ∙ j = 24,000 trades. However, not all stocks are readjusted at rebalance, only a fraction are as given by the expected average turnover rate E[tr]. The estimated turnover rate can be obtained from the very first simulation done on a strategy.

With an estimated 80% turnover, the expected number of trades would be: E[n] = y ∙ rb ∙ j ∙ E[tr] = 19,200 over those 20 years. For a 10-year period, the estimated number of trades would simply be cut in half. Extending the rebalance to 30 years is also an easy estimate to make E[n] = 28,800 trades.

Without any trading logic or other trading procedure than the rebalancing you already know or have a good approximation of how many trades will be performed over the years. You know nothing about the entry and exit points and therefore nothing about the strategy's profitability, but you do know that those trades will occur. There is nothing mysterious in that part of the payoff matrix equation.

Furthermore, the payoff matrix equation also says the following: F(t) = F0 + Σ (H ∙ ΔP) = F0 ∙ (1 + g + α - Σ expt)t\\) where whatever your trading strategy does, it will translate to how much you did put on the table, at what growth rate you could operate and for how long. The formula has a provision for the added trading skills (alpha) and the added incurred expenses. You could put in your numbers in that formula to make an estimate of where you would want to go and see what would be required to get there.

Again, no need for anything artificial.

The rebalancing is fixing the game that will be played.

The structure of the program itself is dictating the number of trades that might be executed over its next 20+ years. You can reasonably “predict”, “forecast”, “guess”, “extrapolate”, or “estimate” the number of trades to be executed E[n].

Put your numbers in the above equation based on your own rebalancing strategy. Then see how you could improve on those numbers. The numbers that can have an impact on the bottom line are part of the payoff matrix equation above. It is up to you to make those improvements, the code will not self-generate, that's for sure. You have to do the job yourself or have someone do it for you.

The Trading Unit Function

The trading unit function u(t) should be of your own design, or at least, you should strive to make it so. The bet size at times can be positive or negative in order to represent the amount placed on longs or shorts respectively. This function is often neglected, and yet, it is one of the most important in a trading strategy.

That part of the payoff matrix equation u(t) ∙ E[PT] is equal to xavg, the average net profit per trade. And this says the more you trade, meaning the larger n might be, the more the trading becomes a statistical problem. If you do 144,000+ trades (for example, see https://alphapowertrading.com/quantopian/Ranked_Selection_NB-4.html), you cannot consider those trades on an individual basis but as part of the average. The 144,001th trade will not have that much of an impact on the overall average net profit per trade unless it is a very large outlier.

If you rebalance 400 stocks every week for 20 years with an expected 60% turnover rate, you should make an estimated: 20 ∙ 52 ∙ 400 ∙ 0.6 = 249,600 trades, more or less. All you can catch is the weekly increase for any of the stocks in the portfolio. The price of any of those stocks will not move more than they will because YOU are trading them. Stocks will continue to move up and down on a quasi-unpredictable basis that you predict what is to come or not. Stock prices are not totally randomly distributed. They do have long-term memory as is shown in any long-term market chart. However, they do exhibit a lot of chaotic and random-like price movements. Stocks are still slightly biased to the upside, and therefore, any long-term strategy's payoff matrix should also account for this bias.

For over 200+ years, the US market has had a 20-30-year rolling window return close to a 10% CAGR, dividends included. You are somehow forced to look at the problem with the same kind of perspective. The market has survived and prospered for a long time, will your trading strategy do the same?

Doing close to nothing else than buying a low-cost index fund can get you there, meaning getting the average market return. Therefore, why program something that you will have to monitor for 20 to 30+ years knowing that you will not outperform a common market index?

We need to be realistic in what we do to achieve more than the market index. We need to be consistent with a common-sense approach made to last over the long term no matter what you want your payoff matrix to do.

No one is discussing the equations used in my strategies, no one has proven them wrong either. After much study of these equations, I came to the conclusion that if you wanted more than the other guy, you had to do more than just “try” to do better, even if it meant reengineering the methods you intended to trade with. Also, there are a multitude of solutions to the above equations.

Due to the periodic rebalancing, you get E[n] = y ∙ rb ∙ j ∙ E[tr]. It gives you a pretty good approximation as to the number of trades that will be executed over the life of the portfolio. Three of those variables are set from outside the strategy as if administrative decisions. The expected turnover E[tr] will depend on the trading methods used. However, your first simulation will give you an approximation of that number, and therefore, not so hard to get.

The efforts should be put on xavg = Σ (H ∙ ΔP) / n, the strategy's real trading edge, and this means concentrating on u(t) ∙ E[PT]. It is why u(t), the trading unit function, is so critical to your trading strategy. The expected profit target E[PT] could originate from a generalized stop profit function, a profit target, some kind of trailing stop loss, or some hybrid combination thereof.

However, due to the constant weekly rebalancing resulting in mostly trading on market noise, we should not expect this profit margin to be that high. Nonetheless, we still can find ways to have it slowly increase with time. That was the challenge. And I think that is what was demonstrated in my extensively modified version of the above-cited program where the trading unit function u(t) was put on steroids.


Aug. 17, 2020, © Guy R. Fleury. All rights reserved.