Delayed Gratification II

October 24, 2015

The article Delayed Gratification presented the 20-year test results of running the trading script DEVX6 (last modified June 2014, over 16 months ago) to which was now added 4 lines of code made to insert a conditional one-day time delay before salable shares might be sold. This pushed the 10-stock portfolio performance higher by $226M compared to the previous version of the program, and this on a 12-week walk forward test where the market average declined by -3%.

My "stuff" is scalable. By this is meant that you could divide or multiply the final outcome and get a pretty good estimate of what the results would have been. These systems use trading units, and in this context define a trading unit as the amount traded: u = q*p. Given a price, the quantity is easy to determine: q = u/p. You might not have control over the price at which you trade, but you do have total control on the amount, and, thereby, the quantity you want or are ready to trade.

You want 5 times more than the results presented in the previous article? Then, provide 5 times more capital and up the trading unit 5 times. The program will take care of the rest. You dispose of 10 times less capital, then, divide the trading unit by 10. It is that simple. You want to play big or you want to play small, it becomes a matter of choice and naturally available resources.

No matter how you want to scale it, percentage wise the drawdowns will be about the same. The formula to estimate this: DD*Cap*(1+CAGR)t as it was presented in A Case Study. What will differ greatly is the amount, it is expected to grow exponentially since it is subject to its CAGR. The DEVX6 strategy does not bother much about drawdowns, except for this big red button that says get out. DEVX6 is in long-term stock accumulation, it buys part of businesses, of ownership, for the long term.

Some might think that the test presented in Delayed Gratification was all prearranged. In a way, maybe. I did announce in real time the upcoming test in a LinkedIn forum I participate in. I would not have done that if I did not expect a positive answer beforehand.

I know exactly how the trading strategy will behave over time, it is my trading script after all. Therefore, I knew the outcome would be positive before doing the test. The program would have simply accumulated shares and would have generated more profits. It is sufficient to look at the June 2014 test to see that, and where here it would serve as a comparison basis.

What I did not know anything about was how each of the stocks would behave with the 4 added lines of code, or how much each would generate in profits. Due to the trading methodology used, I expected improvements, but by how much, only the test would tell. It is why I did put in public view my expectations before making the test with no worry of falling on my face.

The part I liked, in the results, was to see that the gratification delay helped accumulate even more shares which ended up being valued at a higher average price. It even accumulated more cash reserves. Stuff that is certainly desirable in a long-term portfolio.

It is in the nature of the trading methodology (DEVX6) to accumulate shares over the long term and trade over the process. That is its primary mission. The consequences are that the program will tend to accumulate shares even in a rising market. It is its function by design. And the more shares it acquires over the lifetime of the portfolio the better as was shown in the previous test results.

The 10 charts generated in this test are presented below. Each chart is time stamped, shows the last 12 months of executed market orders which were for the next day at market. The ending profits are printed on the chart, at the top, and in the bottom pane.

All 10 charts took advantage of price dips, often an attempt to replace shares that were sold while the price was rising. The program liquidates inventory shares on the way up. The more the price goes up, the more it will liquidate. You are not trying to outguess where the bottom of a price fluctuation is, you are only replacing shares you sold at a higher price. You are reducing your ongoing cost basis. You are playing averages. And it averages out that you will be selling near the top of price swings, and buying near their bottoms, not as in a guessing game, but simply as a byproduct of executing trading procedures, nothing more.

Here are the charts:

ABT October 20

(click to enlarge)

ALL October 20

(click to enlarge)

BIIB October 20

(click to enlarge)

CVS October 20

(click to enlarge)

FDX October 20

(click to enlarge)

GD October 20

(click to enlarge)

GILD October 20

(click to enlarge)

HD October 20

(click to enlarge)

LMT October 20

(click to enlarge)

LOW October 20

(click to enlarge)

All 10 charts show the same general trading behavior. And naturally, it is all by design. The trading script was designed to build a portfolio over time with the capital resources at hand. And it could do this, big or small. It all depends on available capital resources and the setting of the trading unit.

For me, part of this translates to: do you want to win, or do you want to play?

Making $100 bucks on a trade, here and there, is clearly insufficient, and a trading strategy not able to survive 20 years or more is not a desirable solution. Even more so, if it can not show that it could outperform the averages, then why not go for at least the average by buying index funds which are so easily attainable.

If you can't show that your trading strategy could have at least survived over the last 20 years, then it might not have a profitable future either. If such, one could still opt to just play, but with the notion that it is only for the fun of it, and that it might not end up in capital preservation, much less in capital appreciation.

The presented test answered the question: is delayed gratification worth anything? The answer is definitely yes. It is sufficient to compare the payoff matrices of both strategies, with and without the added 4 lines of code: Σ(H(DEVX6 + 4 lines).*ΔP) > Σ(H(DEVX6).*ΔP). This was not just over one stock, but over 90% of the selected stocks where every one of which should be considered representative of the set of selectable stocks. At least those could have been names one could have considered some 20 years back.

A simple administrative procedure: if you want to sell, you can wait one more day if you want to and conditions permit. It was sufficient to add $226M to the portfolio. Not only that, but it improved the portfolio's stance by adding some 2.2M new shares that should also continue to appreciate, over what is expected to be its future. Meaning that from here, the portfolio should continue to grow, doing the same things as it did in the past and as it is programmed to do going forward.

The test also showed that there was alpha in delayed gratification. Just waiting a day more. It also showed that stocks do have price memory, meaning trends; otherwise, the delayed gratification would not have produced enough to wander far away from its academic zero expected value. One question I have is: what is the value of those 4 added lines of code?

This makes DEVX6 obsolete. From now on, it is DEVX6 + 4 lines. I will start calling it: DEVX7.