Jan. 24, 2020

This is a follow-up to my last article, an attempt to answer the question: can you do more?

Two of the most important traits of any stock trading strategy should be its durability and its scalability. The first so that the strategy does not blow up in your face during the entire trading interval, and the second so that a portfolio can grow big.

A stock trading strategy should operate in a compounding return environment. The objective is to obtain the highest possible long-term CAGR (compounded annual growth rate) within your own set of constraints (available cash, methodology used, set preferences, and risk limits).

The portfolio's payoff matrix equation is quite simple:

F(t) = F0 + Σ (H ∙ ΔP) = F0 ∙ (1 + E[rm])t

where rm is the average expected market return and where the final outcome will be shaped by F0, the amount you started with and t, the duration over which you managed the portfolio. It does not say which strategy you took to get there, only that you needed one. It could have been about anything as long as you participated in the game, implying (H ≠ [0]).

This is a crazy concept: you can win, IF you play.

In the above equation, you have no control over the price matrix P, but you do have total control over H, the trading strategy itself. You can buy with your available funds any stock at any time at any price for whatever reason in almost any quantity you want short of buying the whole company.

You already know that as time increases (20+ years), rm will tend to be positive with an asymptotic probability approaching 1.00 making it almost surely. The perfect argument for: you play, you win, and in all probability, you get the expected average market return over the period just for your full participation in the game.

The Problem Comes When You Want To Have More!

You might need to reengineer your trading strategy. For example, the same strategy as the one used in my last article was put to the test with the following initial state: initial capital \$50 million instead of 10, same trading interval (16.7 years) and using 400 stocks instead of 300. Adding stocks with lower future prospects should have for effect to reduce the long-term CAGR. Whereas, the added capital will be a scaling factor as illustrated in the above equation, and it should show its impact on the overall results. Simulations were done using the Quantopian website Python testing facilities and then passed to their backtest analysis module.

The first thing I want to see when doing a backtest analysis is the output of the round_trips=True section which tells the executed number of trades and the average net profit per trade. The reason is simple: the above payoff matrix equation also has for expression:

F(t) = F0 + Σ (H ∙ ΔP) = F0 + n ∙ x_avg = F0 ∙ (1 + rm)t

where n is the number of trades and x_avg is the average net profit per trade. Therefore, these two numbers become the most important numbers of a trading strategy. Whatever you do to increase those two numbers will have an impact on your overall performance as long as x_avg is positive. Since n cannot be negative, a positive x_avg is a sufficient condition to have a positive rate of return. H, the trading strategy, is what directs everything else.

The following chart is part of the round_trips=True option of the backtest analysis.

Backtest round_trips=True Section

(click to enlarge)

The numbers are impressive. It shows that 400 stocks can indeed make a lot of trades over the years. The average net profit per trade increased with time to make its average a lot higher than where it started. It is understandable, the average net profit per trade is on an exponential curve due to the inherent structure of the trading strategy with the last few years having the most impact.

The number of stocks to trade might have been limited to 400 at any one time (or 0.25% of equity), but due to the nature of the selection process, some 2,698 different stocks were traded over those 16.7 years with an average holding period of 126 trading days (about 5.7 months' time).

The strategy has a simple self-defined trend definition (a moving average crossover) used to switch from stocks to bonds and back. Instead of using bonds, I made the portfolio go short in periods of market decline. The strategy still managed, on average, to generate profits on those shorts.

Portfolio Metrics

(click to enlarge)

The gross leverage came in at 1.50. Displayed on the following chart we have the net liquidation value which is a rough estimate net of leveraging costs. It was more than enough of a reward to warrant using the leverage.

Portfolio Equity

(click to enlarge)

The above chart shows that the program could have been stopped at about any time giving for outcome the blue equity line. The bottom-panel gives the net liquidation value (net_liq_val), an estimated net of leveraging fees which in turn are also displayed. The chart provides a reading on the beta, Sharpe ratio, volatility and max drawdown measures.

Why can such results be achievable? The reason is simple: compounding.

Every dollar of profit made is being compounded repeatedly, again and again. With the skills brought to the game, it changed the above equation into:

F(t) = F0 + Σ (Ha ∙ ΔP) = F0 + n ∙ x_avg = F0 ∙ (1 + rm + αa)t

It is the alpha added to the game that is making such a difference, especially since it is also compounding over the entire time interval. The generated alpha is a consequence of the trading strategy Ha. The alpha does not impact just a few trades, it touches all of them, from start to finish. Imperceptible at first, but growing at the same rate as the overall portfolio.

The higher you can make the alpha, the higher the overall return, as should be expected. The point is to find that alpha or create it yourself. I opted to do it myself.

Strategy Limits

If you do not push your trading strategy, how will you ever know its limits? Those would be the strategy's limits you do not want to exceed or some self-imposed ones in your strategy design. Most of those limits might be due to your preferences and averseness to losses. Also, you might not like the idea of leveraging your portfolio. Then, you should not expect that without it you could achieve the above results!

You want to do more than the other guy, then you will have to do more (a recurring mantra in my books, see especially: Reengineering Your Stock Portfolio: You Want More, Then Make It Happen).

Pushing For More

Even if the numbers are big in the above simulation, it still is not the program's limit. For instance, simply increasing gross leverage by 5% in the above strategy would result in a gross leverage of about 1.57.

F(t) = F0 + Σ (1 + κ) ∙ (1.05) ∙ (Ha ∙ (1 + gt)t ∙ ΔP) = F0 + n ∙ x_avg = F0 ∙ (1 + rm + αa)t

where κ is one of the bet size controlling factors and the (1.05) the 5% “requested” increase. This required changing just one number in the whole program. Both factors could be set either from inside (as in this case) or outside the trading strategy as an evolving portfolio management directive. Both factors are applied to the same job which is to slightly increase (decrease) the bet size for the taken trades and hence generate higher (lower) compounding profits. Therefore, you can somewhat control, at will, the outcome of your stock portfolio.

Here are the simulation's portfolio metrics for that “requested” increase:

Backtest #2 (with leverage at 1.57)

(click to enlarge)

Evidently, raising leveraging would progressively bring higher leveraging fees to pay. However, it would result in higher overall profits (adding about \$6B more to net profits compared to the \$0.5B more in leveraging fees).

Portfolio Equity (with leverage at 1.57)

(click to enlarge)

Comparing both equity charts: max drawdown increased from -29.05% to -30.21%, while volatility went from 0.27 to 0.28. On the Sharpe ratio front, it stayed the same at 1.46 while the beta went from 0.44 to 0.46.

The point might be that if you could tolerate a drawdown of -29.05% why would you not stand for a -30.21% drawdown. Especially, when you have no means to determine with any accuracy how far down the next drawdown will be?

The above numbers analyzing the state of the portfolio were marginal incremental moves except for the added overall profits. All of it is extracted by the same trading strategy where it was “requested” to do more. It incurred higher trading expenses, for sure, but it also delivered much higher profits (12 times more than the added costs).

Backtest #2 Summary Statistics

(click to enlarge)

Nonetheless, the strategy does face some problems in need of solutions. One is when going short. It does so on the stocks that the strategy considers as the best prospects for profit. That should be changed to a better short selection process (something like the worst anticipated performers might do, or the ones that stop rising, or have negative momentum, or whatever you think would be a better choice than shorting your expected “best” performers) even though it was not that bad.

Another potential problem is the bet size. It is on an exponential curve and at some point will trade huge quantities of shares even if each stock will only get one quarter of 1% of equity (0.25%). See the portfolio equity charts for an estimation of the ending bet size. It does get big, even if it remained at 0.25% of the portfolio.

As the strategy progresses in time, there will be a need for a smoother scaling in and out of position procedure. I would prefer one of the sigmoid type. This has not yet been designed in that strategy, but I do see it will be needed, not so much in the beginning, but it will get there. However, there is more than ample time (years) to solve that one. I would plan for that too and have the strategy take care of it.

Some think that this strategy is operating on ranked-fundamentals. Well, not so much. It is mostly playing market noise.

The stock selection process is just there to pick 400 stocks. Changing the ranking method will give quite different results as was illustrated in my last article. It is understandable especially in the scheduled periodic rebalance procedures where the weight's 7th decimal can be the deciding factor. When one of the weights changes, it will prompt all other weights to “readjust” as if in a domino effect. The rebalance occurs not because the fundamentals changed (their values changed about every 3 months), but because the 7th decimal of one of the weights changed. And that becomes playing on market noise a lot more than playing on ranked-fundamentals.

When designing a trading strategy we should look at where it is ultimately going, especially in a compounding environment where time might turn out to be the most important ingredient of all. It is your trading strategy H that is running the show, so do make the most of it.

Such a trading strategy is designed to accommodate large institutional sized players and the very rich to make them even richer. Nonetheless, looking at the equations presented and my latest articles, the strategy can be scaled down just as it was easily scaled up as illustrated in the last equation above.