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.

Scan for accumulation & trading range

Hi , i would like to ask for advise who to scan for Accumulation & stocks in a trading range
Tnx

Comments

  • markdmarkd mod
    edited February 11
    This isn't perfect, meaning it picks up junk, but most scans for patterns do that. It can pick up what you are looking for, though, and you only need a few. How many you get, and how well they work out depends on what stage the markets, or individual sectors and industries, are going through. Also, any hits are not necessarily immediate buys, but only set ups that may or may not work out.


    [[exchange is NYSE] or [exchange is NASD]]
    and [market cap > 100] // or whatever universe you choose


    // Force MA(251) falling - Force is an accumulation indicator
    and [sma(251, Force(251)) < 21 days ago sma(251, Force(251))]

    // Force(251) above its MA 63
    and [Force(251) > sma(63,Force(251))]

    // Force MA 63 rising
    and [sma(63, Force(251)) > 21 days ago sma(63, Force(251))]

    // Pri MA 63 falling
    and [sma(63, close) < 21 days ago sma(63, close)]

    // Pri MA had been rising
    and [sma(63,close) > 63 day ago sma(63, close)]

    Force was originally designed as a short term indicator. I've customized the parameters to find longer term accumulation and it seems to work most of the time. The exception is when there is extreme volume. That distorts the ema for quite a while and may be showing accumulation when there isn't any really. When that happens, you can shorten the parameter, maybe to 63 (one quarter of trading on a daily chart) and see if it makes a difference.

    You can get an idea of how often the scan picks up winners, and what winners look like, by back-dating the run date to, say, six or nine months ago or more. That will tell you what has happened to hits since the scan date. Then, to see the scan results as of the run date, so you can recognize the best candidates from current scans, use the start/end date feature on the chart workbench and apply to all, setting the end date to the back-dated scan date.

    p.s. you will want to set up a chart style that includes the indicators / overlays used in the scan so you can verify the results.

    Here's an example:




    You don't need all the panels. Here are the settings. You may be able to copy and enlarge the images.






  • markdmarkd mod
    edited February 21
    @wil74 So it looks like MERC (the accumulation+trading range example above) has broken out of its accumulation phase - in spite of the market dropping hard today (2/21)



    This appears to be the reason why:

    https://www.investing.com/news/transcripts/earnings-call-transcript-mercer-int-q4-2024-beats-earnings-expectations-93CH-3884171
  • This scan will find stocks that are in a trading range. You can control the number of stocks by adjusting
    the period of MAX/MIN and/or by adjusting the multiplier to the ATR. The MAX/MIN period controls
    the length of time that a stock has been in a trading range. Decreasing the period will yield more stocks,
    and increasing the period will yield fewer stocks. Adjusting the ATR will modify the vertical span of the range.
    Running the scan as is with the last 2 statements commented out yielded me 257 stocks. Uncommenting
    the last 2 statements whittled it down to 129 stocks. The last 2 statements, when uncommented,
    ensure that the stock is near one of the boundaries of the range, and the last statement ensures that the
    most recent close in inside the range. Changing the ATR multiplier to 4 (and thus decreasing the vertical span of the range), while leaving the period alone, yielded 53 stocks when the last 2 lines are commented out, and returned 36 of those stocks when the last 2 statements are uncommented.

    As far as accumulation goes, I'm not sure what you meant. But if your ultimate goal is to buy at the
    bottom of the range and short at the top of the range, then uncomment the last 2 statements. Then put
    the charts that are returned into a chartlist. At that point I would look at the stocks with some momentum
    indicators set to short time periods for an entry.

    //// Universe of stocks
    //// Universe of stocks
    [
    // [group is ETF]
    [exchange is NYSE]
    or [group is SP500]
    or [group is SP100]
    or [group is SP400]
    or [group is SP600]
    or [group is NASDAQ100]
    or [group is DOW30]
    or [group is DOW65]
    ]
    and [SMA(20, Volume) > 500000]
    and [AbsVal(MAX(60,close) - MIN(60,close)) < 5 * ATR(14)] // Puts stock in a trading range
    //and [[AbsVal(close - MAX(50,close)) < ATR(14)] or [AbsVal(close - MIN(50,close)) < ATR(14)]]
    //and [[close < AbsVal(close - MAX(50,close))] or [close > AbsVal(close - MIN(50,close))]]
  • Excellent method for identifying ranges. I especially like the idea of using ATR to measure the range, since it adapts to the price action of different symbols, and within the same symbol.

    Accumulation means a preponderance of buying over selling not expressed by rising prices.

    Two market gurus talked about the importance of spotting accumulation to anticipate a change in trend, Wyckoff and Granville.

    Wyckoff claimed large market players would increase their stake in a promising stock after it had suffered a large decline by simply buying what was offered, instead of bidding prices up, which would put a floor on the price. When the market noticed the price was no longer falling, and started buying, too, the larger players would short the stock to put a ceiling on it until they had accumulated their full position. The floor and ceiling produced a range. But behind the scenes, the supply of stock available to buy was shrinking, and when the expected good news hit, price would jump because the stock was scarce. The jump would attract further attention and the up trend was underway.

    Granville was not speaking of Wykoff, but he could have been. He said if you kept track of volume on up and down days, and compared the running total (what he called On Balance Volume, or OBV) to price, you would see divergences between price and OBV before a trend change. Before a trend changes, the number shares traded on trend days would start to fall, compared to the number of shares traded on counter-trend days.

    So, if the trend was down, but days closing up traded more than days closing down, OBV would stop making new lows as price continued lower. Eventually, price would stop going down and OBV would turn up, and that signaled a change of trend was due. Vice versa at the top. Price would continue up as OBV turned down.

    Since the advent of computers, several more accumulation/distribution indicators have emerged. A/D Line, Chaiken Money Flow, Chaikin Oscillator, Money Flow Index, and others. My favorite is Force Index by Alexander Elder, with the custom parameters shown on the MERC chart above. The Force calculation involves volume and the change in price, not just the direction, to incorporate a fraction of the volume into an EMA of a running total of volume. Divergences between price and Index foretell a change in direction, although the change can be a while in coming.

    As in the MERC example above, if you find a stock with improving Force but price in a range above the low, look for the next earnings date as a possible launch of a new trend.
  • markd, I caught a mistake with my scan...the MAX/MIN periods weren't consistent throughout the scan, and it's possible for the recent close to be outside the range. The likelihood is that it won't be, but several of the stocks were outside the range. The problem was with the 'or' operator in the last statement. An 'and' is required to make sure the close is inside the range. This is the correction:

    //// Universe of stocks
    [
    // [group is ETF]
    [exchange is NYSE]
    or [group is SP500]
    or [group is SP100]
    or [group is SP400]
    or [group is SP600]
    or [group is NASDAQ100]
    or [group is DOW30]
    or [group is DOW65]
    ]
    and [SMA(20, Volume) > 500000]
    and [AbsVal(MAX(60,close) - MIN(60,close)) < 5 * ATR(14)] // Puts stock in a trading range
    // Put the recent close near one of the boundaries of the range
    and [[AbsVal(close - MAX(60,close)) < ATR(14)] or [AbsVal(close - MIN(60,close)) < ATR(14)]]
    // Make sure the recent close is inside the range
    and [close < MAX(60,close)]
    and [close > MIN(60,close)]
  • markd, I use those volume and money flow indicators mainly for context, not for buy/sell signals, so I don't have any scans involving them. I haven't heard of the Force Index. I'll have to read what stockcharts says about it. I just registered on this site. I found out about it when I submitted an idea to stockchart's support. I have Larry Williams plug pack, and am very interested in his Sentiment's indicator, but on the daily chart it goes from one extreme to the other so quickly that I find it unusable, too difficult and subjective to interpret with any reliability. I suggested that they add the ability to overlay a variable moving average to the indicator, to smooth it out and make it easier to interpret.
  • I think that's the right way to go. They are more useful as set ups than triggers.
  • oh wow .. tnx for the tips .. ill check it out 1st + backtest . i'll ask more questions soon
Sign In or Register to comment.