New Screener to Test

The past few months we have been working on a new ETF Screening module to replace our current Screener.  We have put this new module through many structured tests but it needs some real world usage, so we are inviting you to try it out here.  After some testing (and I’m sure a few changes) this module will replace our existing Screener page.

The user interface will be familiar to you, but there are a few significant changes.  First is the ability to screen from a portfolio, or other predefined group of funds.  As the fund universe has grown with many overlapping funds,  and brokerage firms have offered commission free trades on select funds, it has become more important than ever to do some initial screening of the fund universe.  By beginning your screening process with a portfolio of funds, you are in control from the first step forward.

From here you can further refine your screen by filtering on all the customary fields.  Leverage, Inverse, and Name filters have been moved out to a more intuitive interface.  The other filter rows, while looking familiar, have been improved to allow equations on either side of the logic field.   Just mouse over the text box and a drop down menu system will guide you to the data field you are looking for, or click on the text box and type the field name in directly.  Speaking of field names, the new system uses more friendly field names, but requires fields to be enclosed in square brackets, like [SMA-200].

A new feature is User Defined Variables.  These are designed for more complex calculations and these values are always presented in the data tables.  The new screener also allows sorting by these calculated fields, so you can test a combination of fields, like [Rtn-1mo] + [Rtn-3mo] + [Rtn-6mo] + [Rtn-1yr].  For those that don’t recognize that formula, it is rumored to be the formula used by a top rated mutual fund newsletter, although I’ve not confirmed that.

Like the legacy system, you can select to see data from the current intra-day data or from the previous closing data.   Unlike the prior system, a backtest of the screen gives you graphs of equity and drawdown, and statistics including CAGR, Standard Deviation, and Ulcer Index.

I should point out that the statistics are the average results from a Rolling Start backtest.  By this I mean that a series of backtests is run for each independent starting date, and then the results are summarized.  This utilizes all the available data and provides a much more stable result.  I’ll go in to this more in another article, but for the moment let me explain with an example.  For the model depicted in the chart above (results here), the CAGR’s ranged from 11.6% to 20.6% on the 21 rolling start tests.  If you had run a single test with a random start date you could have gotten either of these results, or something in-between.   We average the 21 results and report a CAGR of 16.3%, which we believe is a more realistic expectation.  The graphic image is based on the median test, since average results underestimate drawdown.

There is a lot more to be said about the new screener, but this post is long enough.  Try it out here and let me know what you think.  Weird results, let me know.  Same for odd error messages.  Think it should work differently, let’s discuss it.

We’ll be adding cross-overs and cross-unders in the near future.  We’re also looking at ways for you to peruse your recently viewed screens and maybe those that others have run.  A ‘favorites’ list is also on the agenda so you can view those important screens with a mouse-click or two.  Other ideas, let us know.

24 thoughts on “New Screener to Test

  1. In looking over the screens that failed to run properly I noticed a problem when the same field was used multiple times in a definition. Apparently we were not handling that scenario properly, but we are now (hopefully). Some of you had used the same APR field, or the same Rtn field, multiple times and the screen was failing. To you all – let me say the problem was not with your screen definition but with our code.

    Have a good weekend. – Hugh

      • Thanks for pointing out the problem. This one happens to be different, the system was expecting [Rtn-1mo] instead of [rtn-1mo], notice the capital R. We need to address that one because it will not even let you fix the problem once you encounter it. Part of the code sees it as a match and part doesn’t. FWIW, I edited the screen you referenced and it now works. Sorry about the problem – Hugh

    • Thanks for fixing the previously mentioned problem. I was just about to report an issue with user variables in screen fields, but it looks like that one is fixed now too.

      Thanks for the great work!

      • Don’t hesitate to point out a problem. I’m trying to watch the error reports and pick out problems from there, but it is a tedious and indirect method. Hugh

  2. Thanks Hugh great job, well done.
    Picking nits: missing positions two, four, and a hold ’til drop function would be great.
    Jorge

    • Jorge,

      I appreciate the feedback. I view this as predominately a screener with some backtesting capabilities. A more fully featured backtesting module might become part of the site someday but not with this simple code. We can easily expand to 2 and 4 positions, but let us get a few rough sponts worked out of this first. A hold ’til drop function would be nice but doesn’t fit with the calculation methodology used here. Our target was a 10 sec response time for a new (non-cached) model and we wanted the rolling-start backtest, and we wanted to keep it free(advertising supported). Those goals combined to limit our calculations. Again, I really value the feedback. Hugh

      • Hugh – Like I said nit picking, the responsiveness is good at my end. Calculating the outcomes via a rolling start is impressive.
        Again, Bravo – Jorge

  3. I noticed that when this screener was used for international funds, the data seem to be consistently giving a flat return during the period roughly between sep 2008 and mar 2009 (this can be seen from the graph comparing “Typical Results vs. SPY”). Is there a problem with the data during this period? The same issue arises also when single country funds are used.
    Cheers.

    • Could you please provide the screen definition you are using, or the sbt=xxx characters from the address line. That way I will be able to duplicate the data on my end. The screen here, http://www.etfscreen.com/screener.php?sbt=656, is for International funds, Price>SMA-200, and it shows no flat period. I have seen flat periods during the 2008/09 period with other screens. However, they seemed reasonable given the market at that time.

        • One of the rules in those screens is [Price] > [SMA-200] and during the late 2008, early 2009 time period there were no long funds in the broad market indexes, even international broad market indexes, where this was the case. If you look at 1/5/2009 as an example, there are ZERO long equity based funds where [Price]>[SMA-200]. There were some currency funds, and many Fixed Income funds, but no equity based funds.

  4. Hi, Backtesting shows a CAGR of 16.3 standard deviation of 75%. Could you explain the high standard deviatin. Thanks, Kumar.

    • Kumar,

      That std. dev. seems high for a screen that has a CAGR of 16.3%, but without knowing which screen it is I really can’t comment further. Can you tell me what screen it is? hmt

  5. Hello to all the users and Hmtodd Im a new user my name y Sebastian from Argentina, the site is great.
    I want to show my selection so all can help me to to analize it.
    I selected to start with the fund selectded directional, which includes only long funds, leverage or not, Then below that in the box filter on field values I put prices bigger (rtn-3months), below that box in the sort results by I puts (rtn-3 months) des, and below of all I selected 4 funds held and rebalance it every 2 weeks and compare it with the SPY and the backtest is below in the table.
    I think its quite good what do you think? Is it a good strategy?
    I want to know wich difference are in the filter on field values and in the sort results by, as I only want to consider the best performers of the last 3 months I put the same in both fields but wich is the difference? And the final question..very important for me I how can I see wich 4 stocks to buy every 2 weeks, is it right selecting the first four(4) stocks by pressing click here for current stocks picks every to weeks. Thank you very much ..sorry If my question is too long

    CAGR Standard Dev Ulcer Exposure
    Model 43.3 46.7 8.3 42.9%
    SPY 3.0 23.1 22.4 100.0%
    Time Pd. From 2006-05-15 to 2011-05-13.

  6. Hugh . . . I really like the new screener. In trying to give a person a greater degree of confidence in the process, is there a way to print out the trades that an approach used? Thanks, Buck

  7. Hugh:
    Your backtest feature is excellent!
    Is there a way to see the dates trades were made… or at least the total number of trades made during the backtest? (Your last reply, February 19, suggests this might now be possible.)
    Dick

    • Dick,

      If you are logged in there is a link below the screen statistics titled ‘View Results by Cycle’. This takes you to a page showing each cycle tested, remember there are as many different cycles as there are days in the rebalance period. Click any Cycle # in the table header on this page and you will go to a page for that cycle. This page has dates, holdings, and returns.

      Let me know if you have any problems interpreting this and I’ll try to help.

      Hugh

      • Hugh!

        WOW! That’s powerful! Thanks.

        Is there a reference on the site that explains the details? Specifically, what are the numbers in the Model column and in parentheses? Also, what is the significance of the entries for dates with no symbols and the dates in black vs blue?

        Dick

  8. Hugh, I am an inexperienced user and have a few questions. 1) I have named a favorite, when the author of the screen makes a change to his screen will it change mine or will mine retain the screen that was in place when I named it as a favorite?

    • Thank you for the question, Jack. If the originator of the screen makes a change it becomes a new screen in our system and your “favorite” will still be tied to the original screen, so nothing will change for you.

      An issue could arise if the screen is based on portfolio that belongs to the originator. In this case you have limited optons in running the screen so I doubt that is the case here. However, if it is the case, the originator could change the funds in the portfolio and that would effectively change the screen.

      Let me know if you have further questions. – Hugh

Leave a Reply

Your email address will not be published. Required fields are marked *