May 22, 2020
My last article admitted that the trading strategy used was effectively trading on market noise. Even under those conditions, it could win and win big. It is surprising that, after such a statement, system designers were not in an uproar and making all those points that could be made to rebuke the claims. The article went even further by providing a portfolio payoff matrix equation which enabled making long-term estimates of the portfolio's future value.
This equation is not common, but most certainly, it is ordinary.
The equation illustrated the point that a rebalancing stock trading program has an inherent structure. The way it was designed would determine what it would do going forward, or for that matter, going backward as in a simulation.
Having an equation to explain the behavior of your trading strategy takes away all the pseudo-things you might have to say about it. There is no secret sauce, no the trick is this or that. You only have a rather plain math equation with an equal sign. An equal sign is not an opinion on something, it is a statement. Here it is again:
F(t) = F0 + Σ (H ∙ ΔP) = F0 + y ∙ rb ∙ j ∙ E[tr] ∙ u(t) ∙ E[PT] = F0 ∙ (1 + g)t
where y is the number of years the rebalancing is applied, rb is the number of rebalance per year, j the number of stocks in the portfolio, and E[tr] the expected turnover rate. u(t) is the betting function and E[PT] the expected average percent profit margin. The portfolio had its equivalent growth rate expressed as g.
No matter what you did or how you did it, the equation would prevail.
The application of this equation only required a scheduled periodic rebalancing function applied to the selected stocks. The program used something like the following line of code:
schedule_function(rebalance, date_rules.week_start(), time_rules.market_open())
And that single line of code was sufficient to predetermine how the strategy would behave with its selected stocks for the entire duration of the portfolio.
In the above equation, if you increase the number of years (y), you will increase the final outcome. If you rebalance 400 stocks (j) on a weekly basis (rb = 52) with an estimated turnover rate of 40% (E[tr] = 0.40), the strategy will make on average 8,320 trades per year. You do this for 10 years (y = 10), the estimate goes up to 83,200 trades. This, without even knowing how the trading strategy will actually trade. If you do it for 20 years (y = 20), you could reach an estimated 166,400 trades.
It is the structure of the program, its rebalancing procedure, that is dictating how the trading strategy will behave.
That it be in a simulation or going forward. It is the expected average turnover rate (E[tr]) that will determine the number of trades that will be executed. You increase the turnover to (E[tr] = 0.60), it will increase the number of trades to 249,600 over those 20 years.
No reason is given for any of the trades other than due to the weekly rebalancing procedure.
The program will trade no matter what. If you increase the number of stocks to 500, over those same 20 years with the same turnover rate, it would increase the number of trades to 312,000. Yet, there was no internal change to the program. Only the number of stocks in the portfolio was increased, and that decision was not made by the program, but by the program's designer.
The number of stocks to trade is an independent trading decision, just as a weekly or monthly rebalancing, or how long you want it to last.
You can do a simple napkin calculation to determine how your trading strategy will behave over the long term without even engaging in a simulation. It will give you the expected number of trades (E[n] = y ∙ rb ∙ j ∙ E[tr]) over the entire expected life of the portfolio.
It is the structure of your program that is dictating the number of trades your trading strategy might do over the years. Note, the number of trades your trading strategy will do does not say you will make a profit, only that, on average, as an estimate, you will do that many trades whatever their respective outcomes.
So, there really is no secret sauce in the number of trades to be performed, that was fixed from the start with the rebalancing scheduled function. And if you think that it is your program that is going to determine the number of trades, think again, since the rebalancing function has control over this and market variance, market noise will be sufficient to trigger all those trades.
Related Recent Articles:
May 22, 2020, © Guy R. Fleury. All rights reserved.