{
  "scan_date": "2026-05-01",
  "macro_notes": "TSX index RSI ~55 (neutral midpoint). S&P/TSX Composite up 5.1% YTD and +3.9% last week — broad strength. Gold ~$3,600+ USD; geopolitical premium (US-Iran-Israel tensions) supporting energy and gold sectors. Breakout list today dominated by banks, industrials, and infrastructure — most large-cap TSX names at or near 52-week highs and therefore overbought for swing entry. AEM Q1 2026 reported April 30 after close: record net income, EBITDA, and strong free cash flow — binary earnings event now cleared. CNQ earnings May 7 (4 trading days, binary risk). ENB earnings May 8. BNS earnings May 26-27. TD earnings May 28. Primary screeners (SwingTradeBot Canada, TradeThatSwing) inaccessible; candidates sourced from Globe and Mail TSX Breakouts, Baystreet.ca 52-week high list, and targeted technical searches.",
  "signals": {
    "new_buys": [],
    "holds": [],
    "exits": [],
    "watchlist": [
      {
        "ticker": "TSX:AEM",
        "waiting_for": "MACD histogram to turn positive (confirmed -1.110 as of May 1, conflicting data from second source showing +3.10 — treating confirmed -1.110 as authoritative). RSI 56.29 passes Step 3 but exceeds the +1 scoring threshold of 55. Price holds above 200d SMA (~C$243.68) but trading below 20d and 50d EMAs. UPGRADE from yesterday: Q1 2026 earnings binary event now cleared — record net income, EBITDA, and cash flow reported April 30. Stock added ~2% in sympathy with gold strength today. Re-enter scan when MACD histogram turns positive and price stabilises above 50d EMA."
      },
      {
        "ticker": "TSX:CNQ",
        "waiting_for": "Post-earnings technical confirmation. Earnings May 7, 2026 (4 trading days — outside 3-day exclusion window but binary risk elevated; one article specifically flags 'questions linger about Q1 2026 earnings report'). RSI 49.86 is ideal for scoring (+1). MACD -0.120 (negative, fails Step 3). 200d SMA conflict: one source places it at C$66.40 (stock at ~$63-65 range would be BELOW the 200d SMA, failing primary filter); another source cites $49.97 (stock well above). Cannot confirm 200d EMA position. Re-evaluate after May 7 Q1 results with confirmed RSI, MACD, and 200d SMA position."
      },
      {
        "ticker": "TSX:ENB",
        "waiting_for": "RSI resolution from a third independent source. MACD 0.770 (positive, consistent across sources). Above 200d SMA (~C$63.09, price ~C$74.52). RSI conflict persists from yesterday: 79.248 (one source, overbought) vs 40.85 (second source, neutral) — per screen_criteria.json single-source overbought is not grounds for exclusion, but RSI is unconfirmed for scoring. Earnings May 8, 2026 (5 trading days — technically clear but adds binary risk). At confirmed RSI ~40 with MACD positive would score 3-4 and merit closer look. Hold off until earnings are past and RSI can be cleanly sourced."
      },
      {
        "ticker": "TSX:BNS",
        "waiting_for": "Pullback to 20d or 50d EMA. Currently in rising trend channel with MACD 0.210 (positive) and RSI 66.09 (passes <70 exclusion filter but outside ideal 35-55 scoring range — no +1). Above 200d EMA (confirmed, rising trend channel). Earnings May 26-27, 2026 (well clear). Stock is near-term momentum rather than pullback setup: scores 2/5 at best (200d EMA above, MACD positive). Watch for RSI to cool to 55 or below and price to test 20d or 50d EMA — that would push score to 4-5 and trigger re-evaluation."
      }
    ]
  },
  "excluded": [
    {
      "ticker": "TSX:ABX",
      "reason": "Broken rising trend channel (medium long-term confirmed). 90-day decline of 21.7% from ~C$55.47 to ~C$52.65. Approaching oversold territory. Technical composite shows 'sell' on daily and 'neutral' overall. Earnings May 11 (6 trading days, technically clear) but downtrend momentum and broken structure disqualify."
    },
    {
      "ticker": "TSX:ALA",
      "reason": "AltaGas hit 52-week high at C$52.06 today — RSI almost certainly >70; fails overbought exclusion."
    },
    {
      "ticker": "TSX:BBD-B",
      "reason": "Bombardier hit 52-week high at C$292.47 today — RSI almost certainly >70; fails overbought exclusion."
    },
    {
      "ticker": "TSX:BDT",
      "reason": "Bird Construction hit 52-week high at C$50.72 today — RSI almost certainly >70; fails overbought exclusion."
    },
    {
      "ticker": "TSX:BLX",
      "reason": "Boralex hit 52-week high at C$36.95 today — RSI almost certainly >70; fails overbought exclusion."
    },
    {
      "ticker": "TSX:CM",
      "reason": "CIBC hit 52-week high at C$153.42 today — RSI overbought (confirmed). Repeated from prior scan."
    },
    {
      "ticker": "TSX:EFX",
      "reason": "Enerflex hit 52-week high at C$36.12 today — RSI almost certainly >70; fails overbought exclusion."
    },
    {
      "ticker": "TSX:GWO",
      "reason": "Great-West Lifeco hit 52-week high at C$73.72 today — RSI almost certainly >70; fails overbought exclusion."
    },
    {
      "ticker": "TSX:HPS-A",
      "reason": "Hammond Power Solutions hit 52-week high at C$289.99 today — RSI almost certainly >70; fails overbought exclusion."
    },
    {
      "ticker": "TSX:HWX",
      "reason": "Headwater Exploration hit 52-week high at C$13.45 today — RSI almost certainly >70. Market cap likely below $500M CAD minimum."
    },
    {
      "ticker": "TSX:IGM",
      "reason": "IGM Financial hit 52-week high at C$76.49 today — RSI almost certainly >70; fails overbought exclusion."
    },
    {
      "ticker": "TSX:RY",
      "reason": "RSI overbought (confirmed from prior scan). No change in status."
    }
  ]
}
