Message Font: Serif | Sans-Serif
No. of Recommendations: 87
Possibly useful information for those of you who may have used by backtesters ( in the past...

After a lot of promises and delays, and even a bit of work, I've released the latest version of my backtester suite. You won't notice much different unless you look really close, which is intentional - most of the work is in the internals, and the presentation was left nearly identical.

Some points of interest:

The URLs have changed a touch. Instead of each backtester occupying its own directory, they're all part of the same tester now, just with different options. For example, what used to be is now To make life easier, the old URLs will continue to work. But I have dropped support for the "really old" (long-form) URLs from the original edition.

I added the IBD screens, but unfornutately I had to take them off for a while (a very short while, I promise). Sux's IBD data consistently uses the first Friday of every month, while the VL-derived screens I use have too many last-Friday months mixed in. This meant stocks were being bought a week before they could be picked about half the time, which really inflated the ibd screens' returns, much more than I had anticipated. Instead of holding the now-complete backtesters until I entered in the correct price data, I'm releasing them with the IDB screens until the proper prices are in place. That shouldn't take long. Really.

I've removed one screen: BSP. Sorry, but old backtests that used this screen won't work. The fake stockless screen with only annual returns just didn't fit the full-monthly model that I now use. Speaking of which...

I now correctly use the monthly data. This means that holding periods other than the typical monthly/quarterly/semiannual/annual are not only available, but they actually give meaningful results. Also, the "hold-till-switch" option of the switch backtester now works, and results look promising.

One important aspect of the monthly data is the inclusion of the GSD(M) measurement. I'll give a bit away here: annual screens don't buy you anything in the way of stability. And most screens' GSD(M) is reasonably close to the year-based GSD. There's now an option to see not only the gains between trades, but the performance for each month, regardless of holding period, which nicely shows those annuals aren't so smooth.

Another aspect of the monthly data is results of some tests will be slightly different than they were before. But I do mean slightly.

The accounting is done a little differently now. Where the "list picked stocks" option used to show the portfolio value after the trades, I now show the value after sells, but before buys (this is meaningful when commissions exist). Taxes and money infusion/extraction is also done at the mid-transaction point.

Tax calculation is now more accurate then before. I used to calculate taxes as if rebalancing were never done, so if one stayed in the screen for a long time and kept making gains (e.g. DELL), it would be over-taxed. Taxes now take rebalancing into account for the final amount to pay, though rebalancing itself is still considered a non-taxable non-commission event. I may fix that sometime.

The processing of URL codes is a little cleaner. You can now mix standard screens and URL codes. For example I've also added a URL-eater to the index page, so you can enter a URL code (no need for the entire URL, not that it will hurt) and it will pull up the right tester and everything. This is to make it easier to use URLs from messages and such.

The Blend, Dozens, and Options testers can now provide input to other testers. So now options can be part of your blend, or you can import a Blend URL into an overlap for some awful data-mining reason.

One big change: rebalancing. After only a year or so, I have now created the Workshop's second rebalance-capable backtester. Under the trading simulator, you may choose to never rebalance, always (default), or any number of months between rebalances. As Brian's rebalance testing has already shown, this doesn't generally make much difference. One surprising thing I noticed is even something like my SOS-Elan HTD which can hold stocks for a long time and only has three stocks, still doesn't suffer from not rebalancing.

The blender's rebalancing can now be specified as well. Put in some datamined bullet screen and select never to re rebalance, and the blend CAGR will approach the bullet CAGR as it overruns the other screens in the blend.

With the monthly data, the blender can now tell you more than it used to. Before, you only got the performance of the longest holding period in the blend. You now get the shortest period, or monthly if you want.

The Dozens tester has been totally revamped. Each rotation of the screen is now shown as being purchased at the correct time, and the yearly gains are now meaningful. The old "magic rebalancing" across time is gone. Instead are four feasible rebalancing options. One of the four, setting aside part of the profits in a cash reserve when one ortation gets too big (and tracking the uninvested cash as gainless), is rather surprising. I expected it to significantly reduce CAGR since the money was sitting unused, but it hardly makes a dent. This is because only about 3% (average) of the screen's funds sit idle. For example,

Since the Dozens changed so much, it's no longer useful as a replacement for an all-start-months summary. So I added a new tester to the mix to fill that role. Creatively named the All-Months Summary, it is true to its name and runs a screen under all starting months. It outputs a ton of data, including average or composite stats for all starting months combined. I'm using a geometric-average CAGR instead of CASM, partly because I was influenced by Datasnooper's argument againt CASM and partly because it made other things like composite GSD meaningful. PEG is a classic seasonal screen to test:

Sorry to be so long-winded. But I though I'd point out what's been changing while I tell everyone "maybe, someday" in answer to their requests. Ask my wife about "maybe someday".

As always, this is a work in progress. Try it out, and let me know if there's something broken, a glaring hole I could add, or somesuch. I'll patch up any problems, of which I'm sure there are some.

- Jamie
Print the post  


What was Your Dumbest Investment?
Share it with us -- and learn from others' stories of flubs.
When Life Gives You Lemons
We all have had hardships and made poor decisions. The important thing is how we respond and grow. Read the story of a Fool who started from nothing, and looks to gain everything.
Contact Us
Contact Customer Service and other Fool departments here.
Work for Fools?
Winner of the Washingtonian great places to work, and Glassdoor #1 Company to Work For 2015! Have access to all of TMF's online and email products for FREE, and be paid for your contributions to TMF! Click the link and start your Fool career.