It's been yet another year for our screens and I've done a run of all the screens, holding top five and ten, for various starting years. You can download the summary from summary2008.txt or the ytd2008.zip which contains the raw data used for making the summaries. The summary file contains an explanation, and it looks like this:
SI screens performance 2008-01-01
This report summarizes SI screens performance over all the history in
the backtester. There are three different starting dates;
* 1997-08-31 - The first available data date in the backtester
* 2001-12-28 - The first date lots of new fields became available
(which quite a few screens use)
* 2003-01-03 - Data resolution changed from monthly to weekly
Where applicable, the numbers represent the average numbers of all
possible starting dates. E.g. a 3 month trading cycle from 1997-08-31
means that a monthly backtest for each starting date from 1997-08-31
was done, and the numbers presented are the averages of those three
runs. Similarily, a 3 months trading cycle starting in 2003-01-03 is
the average of all 12/13 possible starting weeks.
Data from 2003-01-03 to 2008-01-01
/home/sipro/ytd/result-20030103-ytd-f7-h5.txt
CA/GS upr CAGR GSD U/D T.o. Cycl
Up5X3 4.20 0.76 105 25 72 60 260
WK_Voom 3.11 0.79 109 35 67 35 260
GSX 3.07 0.70 86 28 67 56 260
GSX2 2.97 0.71 98 33 67 49 260
BI 2.81 0.62 76 27 69 58 260
3pt_Relative_Val 2.60 0.61 65 25 64 65 260
Low_Mult 2.56 0.74 82 32 63 47 260
Z26saTA 2.53 0.71 76 30 64 38 260
GS_PCF 2.53 0.59 81 32 68 56 260
High_Relative_Va 2.52 0.59 53 21 64 66 260
Zweig-26 2.36 0.68 85 36 66 27 260
To understand the details you need to decipher the filename. Take the example above: result-20030103-ytd-f7-h5.txt. It means starting date was 20030103. "f7" means "frequency 7" which indicates a holding period of one calendar week. "h5" means holding top 5.
Please also note that the UPR calculations for longer holding periods where the average result for all holding periods are positive can not be done (there is no "downside deviation"), which is flagged as the value 999999.99 .
Performance of all Screens Data Question
Keelix; Thanks for your “Performance of all screens, up to 2008” this is must have taken many hours of computer time not to mention your time. A couple of questions to verify I’m understanding the results.
Are the results assuming you traded on the same date the SIPro data is from or the next available trading day?
For the period from 8/97 to present in addition to the 28 day cycle you have additional results listed for a 35, 42, 49, 56, . . . 180, 270, 360 day cycles. If the SIPro data is only available monthly from 8/31/97 to 1/3/2003 how do you compute the backtests? Do you pick tickers from the available monthly fundamental data and then use a separate price database to compute the results for periods the SI Pro price data is not available?
Thank you
RAM
Yes, the results assume
Yes, the results assume buying and selling on the last data date, normally Friday. As for the data resolution, whenever it is less than four weeks, the start date is forced to be 2003-01-03 (look above the table header in the summary file), even if the filename may indicate an earlier start.
As for the runtime, yes, it takes the computer a day. My work is just to make sure it runs and that the output seems correct.
Keelix
Heading acronyms
Thank you for running this. Could you please explain the heading acronyms?
CA/GS = CAGR/GSD = Sharpe
CA/GS = CAGR/GSD = Sharpe assuming a 0% risk free rate
UPR = Upside potential ratio / Martin Ratio (Google is your friend), assuming a MAR of 10%
CAGR = Compound Annual Growth Rate, the yearly return if the total return was evenly spread out every year across the backtest.
GSD = Geometric Standard Deviation. Variability of returns. This number mostly makes sense compared to something else, like the index returns or similar. With a decent CAGR, you want this number as small as possible.
U/D = Ups/downs ratio. How many picks end up making money (in percent)?
Turnover = How many stocks are swapped out on average every rebalancing period (in percent)?
Cycl = Cycles, how many weeks/months or whatever was there in the backtest.
Keelix
Definition of UPR
Keelix,
Thanks for the definitions of your headings. You mention that UPR is Upward Potential Ratio/ Martin Ratio. I did Google those terms, and there are differences.
a. The Martin Ratio uses the square of the drawdown to compute risk (http://www.tangotools.com/ui/ui.htm)
b. the UPR uses the square of the return below the MAR times the probability of that return (http://en.wikipedia.org/wiki/Upside_potential_ratio)
Which do you use?
If you use the Martin Ratio: Martin suggests calculating the drawdown weekly so that large drawdowns are not missed. Do you calculate these weekly or at the points of gain calculation?
If you use Upside Potential Ratio, how do you compute the probability of each downside observation that appears in the formula?
Which do you use? Sorry, I
Which do you use?
Sorry, I got my terminology mixed up. The measure measured is the UPR, and not the Martin Ratio/Ulcer Index. I calculate it at the same intervals as the backtests. I calculate it as follows:
It's perl code with extra error checking removed for clarity.
Great stuff--really applicable analysis
Keelix,
Just wanted to express my gratitude...I've been a CANSLIM'er for years, and I'm tired of the hyper-trading that you have to do when following O'Neil. I began looking for different styles that produce an above average return while trading on something like a quarterly basis, and then stumbled on the Mechanical Investing forum at TMF. Since I've been using SI Pro for quite some time, it's great to have these customized screens that really produce some amazing results. Your analysis gives even greater credence to the great folks over at TMF who developed several of these screens.
I'm looking at the 90-day portion of your backtesting...and it looks like I may test a small portion of my portfolio on the Up5X3 screen since it produced the greatest return w/ the highest Sharpe. If I'm holding the top 5 that would mean about 20 trades a year, correct? Throwing in a little "protective put buying" just in case the market reverses (this should provide a greater comfort level w/ the somewhat high SD of 26). Just wanted to make sure I'm reading your file correctly...any other words of wisdom?