Find stocks touching a previous demand zone

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #254293 quote
    MrMagic
    Participant
    Average

    Hi everyone,

    I’m trying to build a ProScreener that identifies stocks which are currently touching a previous demand zone, based on the last 50 candles.

    My requirements are:

    1. Price below $20

    2. Average volume > 1,000,000

    3. Current price touching or very close to a previous demand zone

      – Ideally the screener should detect the most recent demand area, swing low or support

        Thank you.
    Screenshot-2025-12-05-at-15.37.07.png Screenshot-2025-12-05-at-15.37.07.png Screenshot-2025-12-05-at-15.38.37.png Screenshot-2025-12-05-at-15.38.37.png
    #254297 quote
    MrMagic
    Participant
    Average

    My screening requirements:

    • Price < $20

    • Average volume (50-period) > 1,000,000

    • Current price has returned to a previous demand zone, defined as either:

    Scenario 1 — Classic demand zone (swing-low base):

    A cluster of equal or similar lows forms a base, followed by a strong bullish move.

    I’d like the screener to detect when price later comes back down into that base area.

    Scenario 2 — Breakout-retest zone:

    Price breaks above a recent consolidation / mini-range, then later pulls back to retest the top of that range.

    I’d like this retest area to also be treated as a demand zone.

     

    I am happy for the screener to detect either scenario.

    If ProRealTime cannot code a full “zone,” I’m happy with an approximation such as:

    • the most recent swing-low level (within the last 50 candles),

    • and price currently touching / within a small tolerance of that level.

    #254346 quote
    Iván González
    Moderator
    Master
    Here you have a example of screener:
    // ------------------------------------
    // INPUTS
    // ------------------------------------
    // Price and Volume constraints
    priceCap = 20
    volCap = 1000000
    volLength = 20 // Moving average period for volume
    // Lookback period for the demand zone (Support)
    lookback = 50
    // Tolerance to define "touching" or "very close" (0.02 = 2%)
    tolerance = 0.02
    // ------------------------------------
    // FILTERS CALCULATION
    // ------------------------------------
    // Calculate Average Volume
    avgVol = Average[volLength](Volume)
    // Conditions for Price and Volume
    c1 = Close < priceCap
    c2 = avgVol > volCap
    // ------------------------------------
    // DEMAND ZONE IDENTIFICATION
    // ------------------------------------
    supportLevel = Lowest[lookback](Low)[1]
    // ------------------------------------
    // PROXIMITY LOGIC
    // ------------------------------------
    // Upper limit and lower limit
    zoneTop = supportLevel * (1 + tolerance)
    zoneBot = supportLevel * (1 - tolerance)
    c3 = Low <= zoneTop AND Close >= zoneBot
    // ------------------------------------
    SCREENER[c1 AND c2 AND c3] ((Close - supportLevel) / supportLevel * 100 AS "% Dist to Supp")
    
    MrMagic and robertogozzi thanked this post
    #254883 quote
    MrMagic
    Participant
    Average
    Hi Iván, thank you for sharing the example screener.
    • I’ve tested it and noticed that a stock which visually meets the criteria did not appear in the results. In particular, AEHL (attached) did not appear, even though the price has clearly returned to a prior base/consolidation demand zone on the chart.
    • I understand that the screener currently defines the demand zone as the single lowest low of the lookback period. In this case, the demand area is a cluster/base of equal lows followed by an impulsive move, rather than the absolute lowest wick, which may explain why AEHL was missed.
    • Is there a way in ProScreener to approximate a demand zone based on a base or cluster of lows followed by an impulsive move, rather than only the lowest low? If not, what would be the closest practical workaround?
    Screenshot-2025-12-30-at-17.27.06.png Screenshot-2025-12-30-at-17.27.06.png
    #254885 quote
    MrMagic
    Participant
    Average
    ….maybe

    the most recent swing-low / base area. 

    Thanks
    #260119 quote
    MrMagic
    Participant
    Average

    Hi Ivan


    Thanks again for the previous screener.


    I realised the current code defines support as the lowest low of the lookback period:

    supportLevel = Lowest[lookback](Low)[1]


    However, what I actually want is price returning to a previous demand zone, not just the absolute lowest low.


    In other words:


    • price forms a demand zone
    • price moves away
    • price returns to that same zone


    Additional filters:


    • Stock price < $20
    • Average volume > 1,000,000


    Does anyone know how to modify the screener so it detects a return to a previous demand zone or consolidation area, rather than simply the lowest price in the lookback?


    Thanks very much.

    KR

    Screenshot-2026-04-11-at-09.17.28.png Screenshot-2026-04-11-at-09.17.28.png Screenshot-2026-04-11-at-09.18.12.png Screenshot-2026-04-11-at-09.18.12.png Screenshot-2026-04-11-at-09.18.20.png Screenshot-2026-04-11-at-09.18.20.png
Viewing 6 posts - 1 through 6 (of 6 total)
  • You must be logged in to reply to this topic.

Find stocks touching a previous demand zone


ProScreener: Market Scanners & Detection

New Reply
Author
author-avatar
MrMagic @mrmagic Participant
Summary

This topic contains 5 replies,
has 2 voices, and was last updated by MrMagic
2 weeks, 4 days ago.

Topic Details
Forum: ProScreener: Market Scanners & Detection
Language: English
Started: 12/05/2025
Status: Active
Attachments: 6 files
Logo Logo
Loading...