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.
- 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.
- 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.
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.
- 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 –