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?

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