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.

Need help building this scan

Here is what I am wanting to find,
Stocks
ADX crossing above 25 (would actually like to see ADI starting to upswing but see below the best I could come up with)

ADX plus greater than last ADX minus high (see below, I guess I could narrow range ADX LIne (14)>24 & ADX Line(14) but I want to see rising ADX is goal but not super high)

todays 50 day ma no more than 20% difference than 60 days ago
todays 200 day ma no more than 20% difference than 60 days ago
Stocks no more than 33% above or within 52 wk low.

here is how far I got,
[type is stock] and [sma(20,volume) > 40000]
and [ADX Line(14) > 20.0]
and [ADX Line(14) < 26.0]
and [Plus DI(14) > Minus DI(14)]

So I am missing the 50 and 200 day ma criteria and the 33% above 52 wk low

Is there a better way to find rising ADI and find it before it get too far above 25. I would like to see stocks above 25 but would also like to tweak it w another scan to find ADX that has went down but starting to turn upward is on my to do list.

Comments

  • markdmarkd mod
    edited December 2021
    When you do per cent comparisons, you have to choose a base value - the thing the compared value is greater than or less than. In your example, the base value is the sma 60 days ago. The compared value is the sma today.

    Per cent comparisons are done with decimal equivalents.

    1.0 is equal - so if the base value and the compared value are the same, the compared value is 1.0 times the base value (just like anything times 1 is equal to itself).

    Decimals greater than one indicate the compared value is greater than the base value - so for instance, if the compared value is 50% greater than the base value, the compared value is 1.5 times the base value.

    Decimals less than one indicate the compared value is less than the base value - so, if the compared value is only 80 per cent of the base value, the compared value is .8 times the base value.

    So, you want to write something that says today's sma is equal to/greater than/less than (=,<,>) the 60 days ago sma times some decimal. So the template for that would be:

    and [sma (x,close) < 60 days ago sma( x, close) * ??] (?? is some decimal, like 1.3 or .6 or whatever you choose)


    If you want to check the difference in both directions (i.e. the range above and below the 60 days ago sma), you will need two statements:

    one statement for the upper limit where the current (compared) value is less than a value greater than the base value (i.e. less than the 60 days ago sma times a decimal greater than one), and

    one statement for the lower limit where the current values is greater than some value less than the base value (.i.e. greater than the 60 days ago sma times a decimal less than one.

  • Im very close but getting error on line 3.
    Trying to make sure I get todays ADX is higher than 3 days ago. (trying to catch a rise in ADX as prev scans getting too many falling...

    Getting this error on line 3--> Could not parse "CLOSE (an integer was expected)

    here is what I have so far
    [type is stock] and [sma(20,volume) > 40000]
    and [ADX Line(14) > 20.0]
    and [ADX Line(14,close) > ADX Line(14) 3 days ago]
    and [ADX Line(14) < 26.0]
    and [Plus DI(14) > Minus DI(14)]
    and [sma (50,close) < 60 days ago sma( 50, close)*1.2 ]
    and [sma (50,close) > 60 days ago sma( 50, close)*.8 ]
    and [sma (200,close) < 60 days ago sma(200, close)*1.2 ]
    and [sma (200,close) > 60 days ago sma(200, close)*.8 ]


    and [group is SP600]


    Also what does the * represent on lines?
    Is there a place to see every symbol definition such as that and other?
  • The "*" is the symbol for "multiplied by" or "times".

    The arithmetic operators are described on this page, about half way down:

    https://support.stockcharts.com/doku.php?id=scans:advanced_scan_syntax

    The ADX function is described here:

    https://school.stockcharts.com/doku.php?id=technical_indicators:average_directional_index_adx

    and the syntax is described here:

    https://support.stockcharts.com/doku.php?id=scans:indicators

    On the second page, you'll notice that the ADX function takes only one parameter (one input), which is a number (in this case, an integer). So "close" doesn't belong inside the parentheses, where you have it - it's "extra"). The editor is pretty good about spotting WHERE an error is, but it can't always identify EXACTLY what the error is - too many possibilities.
  • So is there no way to add a line that will say

    [ADX Line(14)> ADX Line(14) yesterdays close]

    I want todays ADX (14) to be greater than the prior days ADX (14) but yet to figure out how to make this happen....
  • markdmarkd mod
    edited December 2021
    [ADX Line(14)> 1 day ago ADX Line(14)]

    Date modifiers are explained here (about a third down the page - the rest of the page is interesting, too):

    https://support.stockcharts.com/doku.php?id=scans:advanced_scan_syntax
Sign In or Register to comment.