Multi-timeframe ProScreener — stock drops out between sessions with no

Viewing 1 post (of 1 total)
  • Author
    Posts
  • #262165 quote
    AK676
    Participant
    New

    Hello,

    I am hoping the community can help me understand a reliability issue I have observed with a multi-timeframe ProScreener I am developing.

    The issue:

    A stock (Deutsche Bank ADR, ticker PT on IG/ProRealTime) appeared in my scan results on Friday 20 June 2026 with a score of 11. On Monday 23 June 2026, it was completely absent from results — despite the monthly, weekly, and daily chart conditions appearing visually unchanged over the weekend.

    My scan structure:

    The scan uses three TIMEFRAME blocks — monthly, weekly, and daily — each computing their own MA, SMI, and MACD conditions. A mandatory filter (AND across all three timeframes) must pass before a TotalScore is computed. The stock is only returned if qualifies = Mandatory AND TotalScore >= 8.

    What I have already ruled out:

    • A new monthly candle opening (weekend was not month-end)
    • A change in daily price direction (chart visually consistent)
    • The score falling below threshold (score was 11 on Friday, well above threshold 8)

    My specific questions:

    1. Can the TIMEFRAME() blocks in ProScreener behave differently between a Friday close session and a Monday open session — for example due to how the current incomplete bar is handled?
    2. Is there any known issue with multi-timeframe ProScreeners where a higher timeframe condition (e.g. monthly) can temporarily evaluate differently depending on when intraday the scan is run?
    3. Is there a recommended way to test or log which specific condition within a multi-timeframe scan is causing a stock to fail — for example, by temporarily outputting sub-scores or intermediate Boolean values?

    I am running ProRealTime with an IT-Finance real-time data feed, scanning NASDAQ + NYSE universe.

    The full scan code is below for reference:



    // RA Eq. Long TC1 V4
    // Trend Continuation Type 1 — Early Stage Pullback Resume
    // Validated: ACMR 14 Jan 2025, APLD 1 May 2025
    // Prepared: 22 Jun 2026 18:28
    
    TIMEFRAME(monthly)
    mMA3 = Average[3](close)
    mMA6 = Average[6](close)
    mTC1 = (mMA3 < mMA6) AND (mMA3 > mMA3[1])
    mPriceRising = close > close[1]
    mMACDLine = MACDLine[12,26,9](close)
    mMACDSignal = MACDSignal[12,26,9](close)
    mMACDHist = mMACDLine - mMACDSignal
    mMomentumReset = (mMACDHist < 0 AND mMACDHist > mMACDHist[1])
                     OR (SUMMATION[3](mMACDHist CROSSES OVER 0) > 0)
    mMandatory = mTC1 AND mPriceRising AND mMomentumReset
    
    TIMEFRAME(weekly)
    wSMA3 = Average[3](close)
    wSMA100 = Average[100](close)
    wSMI = SMI[14,3,5](close)
    wSMISignal = Average[5](wSMI)
    wMACDLine = MACDLine[12,26,9](close)
    wMACDSignal = MACDSignal[12,26,9](close)
    wMACDHist = wMACDLine - wMACDSignal
    w1 = close > wSMA3
    w2 = wSMI > wSMISignal
    w2plus = wSMISignal > wSMISignal[1]
    w3a = wMACDHist < 0 AND wMACDHist > wMACDHist[1]
    w3b = SUMMATION[3](wMACDHist CROSSES OVER 0) > 0
    w3 = w3a OR w3b
    w3c = wMACDLine > wMACDLine[1]
    w4 = close > close[1]
    w5 = wMACDLine < 0
    w6 = wSMA100 > wSMA100[1]
    wMandatory = w1 AND w2 AND w3 AND w4 AND w6
    wScore = (2*w2plus) + (1*w3c) + (1*w5)
    
    TIMEFRAME(daily)
    dMA4 = Average[4](close)
    dMA9 = Average[9](close)
    dMA21 = Average[21](close)
    dMA50 = Average[50](close)
    dMA200 = Average[200](close)
    dATR = AverageTrueRange[14]
    atrPct = (dATR / close) * 100
    d1 = SUMMATION[10](dMA4 CROSSES OVER dMA9) > 0
         AND dMA4 > dMA4[1] AND dMA9 > dMA9[1] AND dMA4 > dMA9
    dSMI = SMI[14,3,5](close)
    dSMISignal = Average[5](dSMI)
    d4 = dSMI > dSMISignal
    dMACDLine = MACDLine[12,26,9](close)
    dMACDSignal = MACDSignal[12,26,9](close)
    dMACDHist = dMACDLine - dMACDSignal
    d2 = dMACDHist > dMACDHist[1]
    d3 = dMACDLine > dMACDSignal
    d7 = dMACDLine < 0
    d5 = close > close[1]
    extension = (close - dMA50) / dATR
    d6 = extension <= 5
    AvgVol = Average[3](volume)
    AvgCap = AvgVol * close
    GatekeeperFilter = (AvgVol > 300000) AND (AvgCap > 20000000)
    equityOK = atrPct > 0.7
    dMandatory = d1 AND d2 AND d4 AND d5 AND d6 AND equityOK AND GatekeeperFilter
    dScore = (1*d3) + (1*d7)
    
    h1 = close > dMA21
    h2 = close > dMA50
    h3 = close > dMA200
    h4 = dMA200 > dMA200[1]
    maSpread = (MAX(MAX(MAX(MAX(dMA4,dMA9),dMA21),dMA50),dMA200)
               - MIN(MIN(MIN(MIN(dMA4,dMA9),dMA21),dMA50),dMA200)) / dMA200
    h5 = maSpread < 0.03
    hScore = (1*h1) + (2*h2) + (2*h3) + (1*h4) + (2*h5)
    
    Mandatory = mMandatory AND wMandatory AND dMandatory
    TotalScore = wScore + dScore + hScore
    qualifies = Mandatory AND TotalScore >= 8
    SCREENER[qualifies](TotalScore)
    

    Any insight into the session-to-session variability would be very much appreciated. Thank you.

Viewing 1 post (of 1 total)
  • You must be logged in to reply to this topic.

Multi-timeframe ProScreener — stock drops out between sessions with no


ProScreener: Market Scanners & Detection

New Reply
Author
author-avatar
AK676 @ak676 Participant
Summary

This topic contains 1 voice and has 0 replies.

Topic Details
Forum: ProScreener: Market Scanners & Detection
Language: English
Started: 06/23/2026
Status: Active
Attachments: No files
Logo Logo
Loading...