User Customizable Functions

Today we are happy to be able to roll out customizable functions so that our users can test options that we don’t support in our standard data.  We are beginning this roll-out with Simple Moving Average (SMA), Exponential Moving Average (EMA), and the Rate of Change (ROC) indicators with several more on the list to come later.

There have been a number of background changes made the past several weeks building up to this as we modified code that was never intended to support customization.  Most of those changes have gone smoothly, but we have also experienced a few issues.

Friday we released a fix for our screen form’s pop-up menus, the ones used for selecting data fields.  Under certain scenarios, including ad-blocking software and certain browsers, these menus were not working consistently or at all in some cases.  If you are still having problems with these menus, please let us know.

Now for some details regarding the use of these functions.

  1. They should be used only in the definition of a User Variable, then the user variable should be referenced in the screen rules.  Any attempt to reference one of these functions directly in a filter rule will result in a ‘function not found’ error.
  2. The function calls are consistent, and all follow the form of this SMA request: SMA([Price], 5), which would return a 5-day SMA of price.

    User Variable definitions of the new functions.

    Of course, any of our standard data fields could be used instead of price, and the number of days can be anything up to a year or more. Sample definitions are shown in this image, including two 50-day moving averages and one 10-day rate-of-change in $Vol-21.

  3. The calculation times are mostly insignificant for use with portfolios and symbol lists.  That said, you can expect to wait a minute or two if you specify ‘All ETFs’ or another large grouping.  To help minimize the calculation times we are utilizing caching logic and other tools where appropriate.

At this point there is still some work to do to improve the robustness of these functions, but as they currently exist they will serve most of the needs of our users.  The areas where you might see some errors pop up are if you try to take a moving average of a moving average, or something similar.  We are working on these issues but would be interested in hearing how you are trying to use these functions when you encounter a problem.  We have found through the years that we don’t always visualize exactly how our users will apply a new functionality, so we need your feedback.

We will post more on these functions later, but they are pretty straight forward so we are releasing them today.   We should note that these, like all advanced functions, are limited to Premium Access users.

Have a good week –

7 thoughts on “User Customizable Functions

  1. Are user defined variables allowed in the “Market Timing Rule”? If so, I receive an error message when I try a user-defined SMA in the market timing rule.

    • At this point the functions will not work within the Market Timing Rule, and I apologize for not mentioning that in my brief write-up. They can, however, be referenced in both the Minimum Acceptable Return rule and the Supplementary Entry Rule. The Market Timing rule is evaluated at a different point in the screening process that makes inclusion more challenging. That is on our list to follow up on.

      Thanks for bringing this up, and I apologize again for any confusion.
      – Hugh

  2. Is it possible to customize the holding period to 3 or 5 years and the total return percentage likewise in the premium service?

    • We’re currently working to add a library of technical indicators that should provide the indicators you are requesting along with many more. Our earlier attempt at this suffered from unacceptable performance but we are happy with what we are looking at now. Thanks for the patience.

Leave a Reply

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