UnThreaded | Threaded | Whole Thread (10) | Ignore Thread Prev Thread | Next Thread
Author: JWW2 One star, 50 posts Old School Fool Add to my Favorite Fools Ignore this person (you won't see their posts anymore) Number: of 250368  
Subject: SoWR and New Relative Value Screen Date: 2/9/2013 8:57 PM
Post New | Post Reply | Reply Later | Create Poll . Report this Post | Recommend it!
Recommendations: 17
Here is a screen that might interest some. I have used the
Sum of Weighted Ranks (SoWR) procedure described by BarryDTO
(msg 205269). The ranks are either percent rank within an
industry or within the whole market. And the usual population
defining metrics are used.
The GTR1s CAGR/GSD/Sharpe/AT results below are for the fifteen
year period 19980102 to 201212131 for 21 days. Minimum liquidity
is pav63p.a > 30 (approximately $400,000 per day in 2012):

Stocks 1 - 3 1 - 5 1 - 10 1 - 30
CAGR 54.37 51.40 51.14 43.21
GSD 68.78 55.71 43.51 36.63
Sharpe 0.99 1.08 1.25 1.26
AT 9.18 8.74 8.17 7.56

Blender results for ten stocks for the same period:

CAGR: 51.14
TR: 57159.09
GSD: 43.51
DD: 24.23
MDD: -57.93
UI(20): 14.61
Sharpe: 1.25
Beta: 1.12
TI(20): 41.33
AT: 8.17

The New screen and High Relative Value screen comparison.
Both cover the ten year period, 1998 – 2007, with ten
stocks and 0.3 friction:

HRV NEW
CAGR: 36.09 71.20
TR: 2087.18 22759.98
GSD: 22.10 44.99
DD(20): 10.02 24.11
MDD: -23.84 -57.64
UI(20): 5.58 12.11
Sharpe: 1.44 1.53
Beta: 0.52 1.08
TI(20): 58.39 54.60
AT: 11.16 8.25



year ending HRV NEW
19981231 17.5 84.5
19991231 84.1 133.7
20001229 63.2 -8.7
20011231 31.3 117.8
20021231 13.3 48.9
20031231 80.1 154.5
20041231 34.7 96.2
20051230 4.3 39.3
20061229 55.7 53.3
20071231 10.7 71.8


This new screen uses the Sum of Weighted Ranks to select stocks
with desirable combinations of fundamental and momentum metrics.
These variables are expressed as percentages within its
industry:

fcfps12m.s "[SI Free Cash Flow/Share 12m]"
shrinsd.s "[SI Insider Ownership %]"
shrinst.s "[SI Institutional Ownership %]"
petog5f.s "[SI PE to EPS Growth 5 Years]"
salesg5f.s "[SI Sales-Growth 5yr]"
cpsq1.s "[SI Cash per Share Q1]"


These variables are expressed as whole market percentages:
Vol(1,252), rrs(1,63), rrs(1,189) and the ratio of av10.a. to av63.a .
The GTR1 version of this screen can be found at:
http://gtr1.backtest.org/2011/?s19980102e20121231h21f.3::sty....

In case pasting is necessary:
s19980102e20121231h21f.3::styp.a:ne30!31!32!33!34!35!38:fincd.a:ne45!46!47!48:pav63p.a:gt30:dspo:gt253:IND:gt0:linear(23,PEG,7,SG,150,FCF,7,CAPr,8,INSD,24,INST,31,VolRatio,12,Volit,60,RRS63,50,RRS189)tn20:Pr:aprc:IND:fincd.a:PEG:pcntl(petog5f.s,IND,step5,-1):SG:pcntl(salesg5f.s,IND,step5,1):FCF:pcntl(ratio(fcfps12m.s,Pr),IND,step5,1):CAPr:pcntl(ratio(cpsq1.s,Pr),IND,step4,1):INSD:pcntl(shrinsd.s,IND,step5,1):INST:pcntl(shrinst.s,IND,step5,-1):VolRatio:pcntl(ratio(av10.a,av63.a),1,step5,1):Volit:pcntl(vol(1,252),1,step5,-1):RRS63:pcntl(rrs(1,63),1,step5,1):RRS189:pcntl(rrs(1,189),1,step5,1).

Command Translation
Create [Pr]: [Actual closing Price; share_lag=1 days; quote_lag=1 days]
Create [IND]: [Fama/French Industry Code; lag=1 days]
Create [PEG]: [% Rank by [SI PE to EPS Growth 5 Years; lag=1 days] (Desc), grouped by [IND], at step5]
Create [SG]: [% Rank by [SI Sales-Growth 5yr; lag=1 days] (Asc), grouped by [IND], at step5]
Create [INSD]: [% Rank by [SI Insider Ownership %; lag=1 days] (Asc), grouped by [IND], at step5]
Create [INST]: [% Rank by [SI Institutional Ownership %; lag=1 days] (Desc), grouped by [IND], at step5]
Create [Volit]: [% Rank by [TR1-Volatility over 252 periods; lag=1 days] (Desc) at step5]
Create [RRS63]: [% Rank by [RRS over 63 days; lag=1 days] (Asc) at step5]
Create [RRS189]: [% Rank by [RRS over 189 days; lag=1 days] (Asc) at step5]
Create [FCF]: [% Rank by [[SI Free Cash Flow/Share 12m; lag=1 days]/[Pr]] (Asc), grouped by [IND], at step5]
Create [CAPr]: [% Rank by [[SI Cash per Share Q1; lag=1 days]/[Pr]] (Asc), grouped by [IND], at step4]
Create [VolRatio]: [% Rank by [[Actual Average daily Vol 10d; lag=1 days]/[Actual Average daily Vol 63d; lag=1 days]] (Asc) at step5]
step0: [Security Type; lag=1 days] != 30,31,32,33,34,35,38
step1: [IND] != 45,46,47,48
step2: [Actual Price * (Average daily Vol 63d) as full-mkt Percent rank; lag=1 days] > 30
step3: [mkt Days Since security Opened for purchase] > 253
step4: [IND] > 0
step5: [23*[PEG] + 7*[SG] + 150*[FCF] + 7*[CAPr] + 8*[INSD] + 24*[INST] + 31*[VolRatio] + 12*[Volit] + 60*[RRS63] + 50*[RRS189]] Top param0; Long, Cash When Fewer
Holding period = 21 mkt days; Fully rebalance every 1 periods


GSD, Sharpe, etc. need improving. Corrections, comments and
suggestions would be appreciated.

John W
Post New | Post Reply | Reply Later | Create Poll . Report this Post | Recommend it!
Print the post Back To Top
Author: LonghornBoy Big red star, 1000 posts Old School Fool Add to my Favorite Fools Ignore this person (you won't see their posts anymore) Number: 241511 of 250368
Subject: Re: SoWR and New Relative Value Screen Date: 2/9/2013 9:19 PM
Post New | Post Reply | Reply Later | Create Poll . Report this Post | Recommend it!
Recommendations: 1
With a level of volatility that's almost 3x the SP500, that would make for one heckuva wild ride...

Print the post Back To Top
Author: musselmant Three stars, 500 posts Old School Fool Add to my Favorite Fools Ignore this person (you won't see their posts anymore) Number: 241512 of 250368
Subject: Re: SoWR and New Relative Value Screen Date: 2/9/2013 10:04 PM
Post New | Post Reply | Reply Later | Create Poll . Report this Post | Recommend it!
Recommendations: 0
If you add price>$5 and price*volume >100,000, I think you may find a massive drop-off in the return.

Print the post Back To Top
Author: TGMark Big red star, 1000 posts Old School Fool Add to my Favorite Fools Ignore this person (you won't see their posts anymore) Number: 241514 of 250368
Subject: Re: SoWR and New Relative Value Screen Date: 2/9/2013 11:20 PM
Post New | Post Reply | Reply Later | Create Poll . Report this Post | Recommend it!
Recommendations: 0
I like the screen, thanks tpoto. It didn't suffer much when using a daily dollar volume (price * average 10 day volume) of $750K, which is what I use in all of my screens, with no minimum price. I'm fine with buying $2 stocks, as long as they are trading enough.

Also, taking out the two statements relating to FLOAT didn't change things much. Also took the dspo > 127 out here, just like to have as few lines as possible in the code.

http://gtr1.backtest.org/2011/?s::product(sprc,av10.a)gt7500...



Mark

Print the post Back To Top
Author: tetranomad One star, 50 posts Add to my Favorite Fools Ignore this person (you won't see their posts anymore) Number: 241519 of 250368
Subject: Re: SoWR and New Relative Value Screen Date: 2/10/2013 1:18 AM
Post New | Post Reply | Reply Later | Create Poll . Report this Post | Recommend it!
Recommendations: 1
GSD, Sharpe, etc. need improving. Corrections, comments and
suggestions would be appreciated.


Nice screen. BarryDTO quite rightly pointed out that the SoWR method has less (over)tuning possibilities, with the important exception of the weighting factors. I notice that this screen has some unusual and rather precise looking weights. John W - how did you arrive at these values and how robust/brittle are the results to changes in their values? I note that if you set them all to 1, except for the rrs weights to 2, then CAGR and GSD go down a little, Sharpe is a little better and DD improves

Mark

Print the post Back To Top
Author: mungofitch Big gold star, 5000 posts Top Favorite Fools Top Recommended Fools Feste Award Winner! Old School Fool Add to my Favorite Fools Ignore this person (you won't see their posts anymore) Number: 241520 of 250368
Subject: Re: SoWR and New Relative Value Screen Date: 2/10/2013 9:21 AM
Post New | Post Reply | Reply Later | Create Poll . Report this Post | Recommend it!
Recommendations: 10
I like the overall approach, in particular the use of "within industry" rankings.

suggestions would be appreciated

Here's a simple one:
Why seek high volatility?
If you leave that out at 20 stocks deep it gives higher CAGR, steadier
returns (lower rolling six month downside deviation) and a slightly simpler screen.
http://gtr1.backtest.org/2011/?s19980102e20121231h21i126f.3:...
As a general rule, and contrary to much academic claptrap, less volatile stocks have better performance.

That list of weights sure does look like it has been pretty carefully [over?]tuned.
To get an idea of how much that matters, I tried a detuned version with
all the weights set to 1 except free cash flow which is clearly the heavy one.
(that choice itself wasn't tuned, it's the only thing I tried)

At 20 stocks deep CAGR drops from 44 to 36 and pseudodowndev rises from 14 to 18
At 10 stocks deep CAGR drops from 51 to 41 and pseudodowndev rises from 19 to 25
So it looks like the tuning is giving both higher and steadier returns.
To the extent that it's useful or harmless tuning, that's fine,
but real life results won't be as good as either of those.
One might also try a detuned version with (say) only two weightings of
either "high" or "low" for all the different parameters.
Maybe weight 1 for some and a single weight (2.5?) for all the others, something like that.

Have you tried a "no financials" version?
Nothing to do with the financial crisis, but more because things like
revenue and free cash flow don't mean nearly the same thing at a bank.
There are similarly good reasons for perhaps considering no-utilities and
no-mines/materials versions, as they are not the "plain product or service"
firms for whom so many great metrics are useful (sales, cash flow, free cash flow, ROE).

This is fairly strongly slanted to being a growth/momentum shoot-for-the moon screen: sales growth, EPS growth, momentum.
It would be interesting to contrast it with a companion value screen built the same way.
Longer lookback momentum, more value parameters like current EY,
average earnings last N years as a % of price, dividend yield, ROE.

Not sure if this will help, but unlagged company momentum works well,
and so does lagged momentum for a single company.
RRS is a lot like lagged momentum. One of the rankings potentially worth
putting into the mix is a percentrank of simple no-lag short-lookback RS of the industry versus other industries.
This is the "salmon" approach: going against the stream as you want to
de-emphasize (allow weak) short term performance of a company within
an industry having strong short term performance.

Jim

Post New | Post Reply | Reply Later | Create Poll . Report this Post | Recommend it!
Print the post Back To Top
Author: JWW2 One star, 50 posts Old School Fool Add to my Favorite Fools Ignore this person (you won't see their posts anymore) Number: 241532 of 250368
Subject: Re: SoWR and New Relative Value Screen Date: 2/10/2013 5:20 PM
Post New | Post Reply | Reply Later | Create Poll . Report this Post | Recommend it!
Recommendations: 0
A quick answer on parameters. In an earlier version of the screen, I had Negative Values where one might expect positive one. I had -27*ROA where ROA was based on roay1.s percentile rank and -11*CR which was based on curry1.s percentile. My best guess is that a SoWR screen is very similar to multiple regression equation and this screen has a multicollinearty problem. Some of the independant variables are highly correlated and this will cause the tuned parameters to differ fom their expected values even to the extent of sign reversal. So the tuned parameters may be misleading outside of the model, but the descriptive model as a whole, remains valid.
I cannot provide a link right now (Oops! Internet Explorer could not connect to gtr1.backtest.org), and I have guests arriving so I cannot comment further today, but will tomorrow. Thanks for the comments so far.

I would like to hear comments on the above explanation by staticians (or others) on this board.

John W

Happy Chinese New Year!

Print the post Back To Top
Author: tetranomad One star, 50 posts Add to my Favorite Fools Ignore this person (you won't see their posts anymore) Number: 241534 of 250368
Subject: Re: SoWR and New Relative Value Screen Date: 2/10/2013 6:56 PM
Post New | Post Reply | Reply Later | Create Poll . Report this Post | Recommend it!
Recommendations: 3
Some of the independant variables are highly correlated and this will cause the tuned parameters to differ fom their expected values even to the extent of sign reversal. So the tuned parameters may be misleading outside of the model, but the descriptive model as a whole, remains valid.

I suspect you already know this, but it is worth re-emphasizing - extensive tuning to fit historical data often leads to worse results going forwards than less tuned variants. I find what Bill Eckhardt has to say on the topic (albeit wrt futures trading) useful:

from http://www.futuresmag.com/2011/03/01/william-eckhardt-the-ma...

FM: Talk about the battle between optimization and curve fitting.

BE: By trying to improve your system you can make it worse. You can over-fit to past data or maybe just do something that is statistically invalid. There is an idea, though it is not universally subscribed to, that you should not optimize your systems. That you should just figure out what are reasonable numbers and go with that. I don’t believe in that; we optimize all the time, but there is some truth to it in the sense that if you over-fit, you are going to hurt yourself. Optimizing is a somewhat hazardous procedure, as is trading. And it has to be done with carefulness and deliberateness, and you have to make sure that you are not over-fitting to past data.

FM: How do you ward off curve-fitting?

BE: What most people use to ward it off is the in-sample/out-of-sample technique where they keep half their data for optimization and half their data for testing. That is an industry standard. We don’t do that; it wastes half of the data. We have our own proprietary techniques for over-fitting that we actually just improved on a year ago. It is important to test for over-fitting; if you don’t have your own test use the in-sample/out-of-sample [technique].

I can talk a little more about over-fitting, if not my personal proprietary techniques. First of all I like the [term] over-fitting rather than curve-fitting because curve-fitting is a term from non-linear regression analysis. It is where you have a lot of data and you are fitting the data points to some curve. Well, you are not doing that with futures. Technically there is no curve-fitting here; the term does not apply. But what you can do is you can over-fit. The reason I like the term over-fit rather than curve-fit is that over-fit shows that you also can under-fit. The people who do not optimize are under-fitting.

Now the two numbers that most determine if you are over-fitting are the number of degrees of freedom in the system. Every time you need a number to define the system, like a certain number of days back, a certain distance in price, a certain threshold, anything like that is a degree of freedom. The more degrees of freedom that you have the more likely that you are to over-fit. Now the other side of it is the number of trades you have. The more trades you have, the less you tend to over-fit, so you can afford slightly more degrees of freedom. We don’t allow more than 12 degrees of freedom in any system. If you put more bells and whistles on your system it is easy to get 40 degrees of freedom but we hold it to 12. On the other side of that, for us to make a trade we have to have a sample of at least 1,800; we won’t make a trade unless we have 1,800 examples. That is our absolute minimum. Typically we would have 15,000 trades of a certain kind before we would make an inference as to whether we want to do it.

The reason you need so many is the heavy tail phenomena. It is not only that heavy tails cause extreme events, which can mess up your life, the real problem with the heavy tails is that they can weaken your ability to make proper inferences. Normal distribution people say that large samples kick in around 35. In other words, if you have a normal distribution and you are trying to estimate a mean, if you have more than 35 you’ve got a good estimate. [In] contrast, with the kind of distributions we have with futures trading you can have hundreds of samples and they could still be inadequate; that is why we go for 1,800 as a minimum. That is strictly a function of the fatness of tails of the distribution. You have to use robust statistical techniques and these robust statistical techniques are blunt instruments. [They] are data hogs, so both seem to be disadvantages but they have the advantages of tending to be correct.


Post New | Post Reply | Reply Later | Create Poll . Report this Post | Recommend it!
Print the post Back To Top
Author: BarryDTO Big red star, 1000 posts Old School Fool Add to my Favorite Fools Ignore this person (you won't see their posts anymore) Number: 241539 of 250368
Subject: Re: SoWR and New Relative Value Screen Date: 2/11/2013 1:18 PM
Post New | Post Reply | Reply Later | Create Poll . Report this Post | Recommend it!
Recommendations: 11
I have used the Sum of Weighted Ranks (SoWR) procedure ...

Ah, someone other than tetranomad is looking at this approach - interesting. I thought I'd offer a few thoughts since my name is attached:

-- Mungofitch indicated he thought high volatility was sought here; however, it's actually low volatity that is emphasized as any weight is applied to the criteria "Volit" (because of the opposite sort applied in the ranking). As you seemed to indicate and someone else noted, bringing down the volatility of screen results would be helpful. A simple run of your screen as is, but parameterizing the weight given to the Volit criteria indicates a weight of 70 seems to do the job:

http://gtr1.backtest.org/2011/?s19980102e20121231h21f0.3::st...

shows a 20-stock CAGR/GSD/Sharpe of 34 / 23 / 1.44 (versus your original 43 / 37 / 1.26), and 10-stock results of 36 / 24 / 1.40 (versus your 51 / 44 / 1.25)

-- Tetranomad cautioned against optimizing against too many selection criteria and parameters. I've also said in earlier posts that I'm not a big fan of the "kitchen sink" approach to including selection criteria (I've seen the opposite opinion from others in recent posts, but hey, that's what makes a market!). Although 5 criteria may still be too many for my taste (and these 5 may not be the best ones), I looked at possible parameters for the following 5 criteria of those you included, since they seemed at first glance to be "most important": FCF, VolRatio, Volit, RRS63, RRS189. Here's a look at one screen using these (with further parameter optimization possible):

http://gtr1.backtest.org/2011/?s19980102e20121231h21f0.3::st...

shows 20-stock results of 27 / 19 / 1.32 and 10-stock results of 32 / 21 / 1.45 (worse than the screen above for 20 stocks, but better for 10 stocks).

-- As I've described before, I have a preference for requiring a minimum dollar volume throughout the backtest period rather than a percentile dollar volume. Using $500,000 throughout the period reduces these results further:

http://gtr1.backtest.org/2011/?s19980102e20121231h21f0.3::st...

shows 20-stock results of 23 / 19 / 1.16 and 10-stock results of 28 / 21 / 1.29.

-- I looked at ranking FCF across all stocks, rather than the within industry approach you used (and HRV uses). Results were worse by ranking across all stocks - I may have to relook at incorporating this into screens where I use various valuation criteria (as I did in the "Parsimony and Bang for Buck" post last year).

-- I think it would be important to look at 1987-1997 results. I'm not sure if the industry codes in the gtr1 backtester (versus gtr1/2011) have the same value definitions for "pref(incd.s, incd.f)" as for fincd.a in the 2011 version, so I don't know if excluding your industry codes of 45 through 48 would be accomplished the same way. My interpretation of excluding these codes is that the following broad industries are excluded: Banking, Insurance, Real Estate, Finance. Perhaps others can comment on how to look at this "out of sample" period (and whether excluding all these industries is really appropriate). The gtr1 backtester would also need to use the appropriate field to capture FCF.

Those are my quick thoughts - thanks for presenting the screen.

Regards,
Tim

Post New | Post Reply | Reply Later | Create Poll . Report this Post | Recommend it!
Print the post Back To Top
Author: mungofitch Big gold star, 5000 posts Top Favorite Fools Top Recommended Fools Feste Award Winner! Old School Fool Add to my Favorite Fools Ignore this person (you won't see their posts anymore) Number: 241541 of 250368
Subject: Re: SoWR and New Relative Value Screen Date: 2/11/2013 3:09 PM
Post New | Post Reply | Reply Later | Create Poll . Report this Post | Recommend it!
Recommendations: 1
Mungofitch indicated he thought high volatility was sought here; however,
it's actually low volatity that is emphasized as any weight is applied to the criteria "Volit" (because of the opposite sort applied in the ranking).


Sorry! Ingore my comments about that. I didn't spot the "sort descending"

Jim

Print the post Back To Top
UnThreaded | Threaded | Whole Thread (10) | Ignore Thread Prev Thread | Next Thread
Advertisement