New Members: Be sure to confirm your email address by clicking on the link that was sent to your email inbox. You will not be able to post messages until you click that link.

EMA/SMA scan

Does anyone have a suggestions as to how I would write a scan which would find stocks, on a specific day, in which their EMA's (3,8,21) or SMA (50) are within a very close numeric range?


  • markdmarkd mod
    edited May 2015
    You would just subtract the two terms in question, and compare the result to some number you want them to be less than. So the basic form is:

    and [a - b < c]

    "a" and "b" are the EMA and SMA of your choice, like ema(50,close) and sma(10,close). "c" is the difference between them of your choice - 0, 1, 2.5, etc.

    But there are some wrinkles.

    If you want only positive results (a is above b on the chart, or same thing, b is below a), then

    and [a > b]
    and [ a - b < c]

    only negative results (a is below b):

    and [a < b]
    and [ a - b > c]

    Note the change of the comparison operator for negative numbers from < (less than) to > (greater than). Also "c" would be a negative number: -1, -2.5, etc.

    If you don't care whether the result is positive or negative, then you need the absval() function:

    and [absval(a-b) < c]

    Watch your parentheses with this one.

    If you want to compare multiple mas, just repeat the appropriate statements for each comparison.

Sign In or Register to comment.