The Best10 system has since 1999 provided a high average annual return of about 30%. Best10 selects the 10 highest ranked stocks from the S&P 500 pool of companies according to a ranking system. Stocks are sold from the portfolio once their rank falls below 97 and are replaced by the highest ranked S&P 500 stocks at that time.
For a full description of the system and hypothetical simulated performance from Jan-2-1999 see iM-Best10: A Portfolio Management System for High Returns. We used the platform of Portfolio Simulations to develop this model.
All transactions, for the Best10 model, from January 1999 to May 2013 can be downloaded here.
The Best10+ system is an improvement of the Best10 system. By removing poor performing stocks from the S&P 500 pool and adding high performing stocks resulted in a pool of 429 stocks and applying the trading system the performance can be improved to provide an even higher average annual return of about 50%. This is described in Best10+: A Portfolio Management System for Very High Returns
The Best5 system addresses the critique of the high trading volumes of the Best10/10+ systems. Best5 selects the highest ranked stocks from a pool 52 stocks that have performed well in the past. Best5 generates very few sell signals; once the ranking of a stock falls below 77 it is then replaced by the highest ranked stock in the pool. Since 1999, there were only 129 completed trades resulting in very low trading costs.
June 17, 2013
Important Notice – Correction
The week after we published the Best10 and Best10+ portfolio management system the providers of the Portfolio Simulations corrected their software. The reason for the correction is discussed on their site in their forum. On April 29, 2013 a user reported
Marco, in this port: "SP500 Market Timing Model - 60 Stock - 60-40 New" I had trades show up today from last week (4/22) that were not there last week. One was to sell WNR and the other was a buy of AEO. This port had no suggested trades last week. I always run the rebalances after 8:30 am EST. What is going on?
The problem was identified to short interest rate a component of the ranking system and explained by the following post on the same dayfrom the platform owners
Here is the response from S&P
"Data values are listed by data-date. The data-date represents the settlement date of the compiled transactions. Information is actually disseminated by the exchanges approximately 10 days after this date."
Since we do not have the "dissemination date" the only solution is an approximation: to artificially lag the data. For ex if we load a data point for 4/15/2013 , I will simply add 10 days
This fix to artificially lag the data was finally implemented on the platform on June 12, 2013.
Unfortunately, we were not aware of this problem and that this update was imminent, and were unpleasantly surprised that the simulation runs of last Friday June 14, 2013 were different. Even though we have to revise our Best10 performance data downwards, we can only praise the action of the portfolio simulation platform as any result that includes forward bias is nonsense and has to be corrected.
We are pleased to inform that the Best10 model, with this correction still has an average CAGR of 32.8%.
Important Notice – Survivorship Bias
We received numerous comments that our model is flawed as we have used the current S&P500 and not the historic S&P500 composition at the time of trade, a phenomena called survivorship bias. The most helpful and constructive comment was from Nicolas (thank you). We now have researched this and found that the Best10 system as described using the historic or “survivorship bias free data” the average CAGR is reduced to 24.28%.
Since receiving the first reports we have intensively investigated this phenomena, run numerous simulations choosing stocks using a stock population chosen from the S&P 500, S&P 1500 and Russel 3000, with various model parameter configuration. We are pleased to report in the interim that we have a Best10 survivorship bias free model with an average CAGR of 39.5% which can be increased to 43% by introducing Draw Down Protection (DDP) into the simulation, DDP is a moving average crossover formula in the algorithm which stops buying of stocks when the market declines.
We now need report our findings, choose the most advantageous models to report weekly and rework our system accordingly. Hopefully within a week or two, but only after receiving the assurance from Portfolio Simulations that their system is stable, will we be able to commence the weekly updates.