{
  "scan_date": "2026-05-19",
  "macro_notes": "Gold dominant on TSX positive breakouts — gold miners represent ~20-50% of breakout stocks across multiple recent reports; gold spot ~$4,820/oz (record territory). Canadian banks showing broad strength: CIBC (CM.TO), Scotiabank (BNS.TO), TD (TD.TO), BMO (BMO.TO), RY (RY.TO) all cited on positive breakouts lists, some at decade or record highs. WTI tailwind active for energy. TSX breadth positive: ~82 stocks on positive breakouts list vs 6 on negative. ⚠️ Cautionary signal: Trade That Swing flags cautionary market conditions for week of May 18 — favour only high-conviction setups (score 4-5). Canada bank-sector screener primary source (Barchart) returned structural pages rather than ranked tickers; Globe and Mail breakouts and SwingTradeBot returned sector-level signals without individual ticker lists — follow-up searches used to confirm candidates.",
  "signals": {
    "new_buys": [
      {
        "rank": 1,
        "ticker": "BNS.TO",
        "company": "Bank of Nova Scotia",
        "sector": "Financials",
        "price_cad": 106.16,
        "setup_type": "Pullback to 20d SMA bounce",
        "setup_score": 4,
        "rsi_14": 54.97,
        "macd_positive": true,
        "above_200d_ema": true,
        "pe_ratio": null,
        "next_earnings": "2026-05-27",
        "entry_zone_cad": "$104.72 – $106.50 (20d SMA support at $104.72)",
        "stop_cad": 100.00,
        "t1_cad": 112.00,
        "t2_cad": 118.00,
        "t3_cad": 124.00,
        "green_flags": [
          "MACD Strong Buy confirmed — multiple independent sources agree",
          "Above 200d SMA ($95.30) by ~11% — clear uptrend structure",
          "Price bouncing at 20d SMA ($104.72) — textbook pullback entry",
          "Bank sector broadly positive: multiple Big 5 on positive breakouts list",
          "RSI 54.97 — healthy mid-range, room to run",
          "XFN sector ETF in uptrend context"
        ],
        "red_flags": [
          "Earnings May 27 (6 trading days) — MUST exit or reduce before May 26 close",
          "Conflicting RSI: 54.97 vs 66.43 from two sources — using lower/more recent reading; neither source confirms overbought above 70 (2-source rule not triggered)",
          "Risk sizing constraint: 1% rule on $2,500 account = $25 max risk; at entry $106, stop $100 → max 4 shares",
          "Cautionary market signals week of May 18 — confirm intraday momentum before entry"
        ]
      },
      {
        "rank": 2,
        "ticker": "ENB.TO",
        "company": "Enbridge Inc.",
        "sector": "Energy Infrastructure (Pipelines)",
        "price_cad": 67.32,
        "setup_type": "Pullback recovery — accumulation above 200d EMA",
        "setup_score": 3,
        "rsi_14": 40.85,
        "macd_positive": true,
        "above_200d_ema": true,
        "pe_ratio": null,
        "next_earnings": null,
        "entry_zone_cad": "$66.50 – $67.50 (current area; confirm 20d/50d SMA position before entry)",
        "stop_cad": 65.00,
        "t1_cad": 69.50,
        "t2_cad": 71.50,
        "t3_cad": 73.50,
        "green_flags": [
          "RSI 40.85 — accumulation zone, not overbought, room for sustained move",
          "MACD positive (Buy signal confirmed)",
          "Above 200d SMA ($63.09) — uptrend structure intact",
          "Earnings already reported May 8, 2026 — no near-term event risk",
          "Pipeline toll-road model: stable recurring FCF, low D/E typical for regulated infrastructure",
          "Risk sizing favourable: $2.32 risk/share → ~10 shares within 1% rule"
        ],
        "red_flags": [
          "Conflicting RSI data: one source 79.248 (likely stale/different timeframe) vs 40.85 — 2-source overbought rule not triggered but monitor",
          "20d and 50d SMA position unconfirmed — verify pullback entry vs breakout before sizing",
          "Lower setup score (3) — enter smaller than BNS.TO or wait for score 4 confirmation",
          "Cautionary market signals week of May 18"
        ]
      }
    ],
    "holds": [
      {
        "ticker": "K.TO",
        "days_held": 0,
        "current_price_cad": null,
        "stop_intact": null,
        "t1_hit": false,
        "t2_hit": false,
        "action": "HOLD — entered today (Day 0), time stop not applicable. ⚠️ DATA ERROR IN POSITIONS.JSON: stop_loss_cad $38.80 is ABOVE entry_price_cad $38.07 — inverted stop would trigger immediately on any tick above $38.80. This is a data entry error. Based on risk_note ATR hint ($4.74 stop distance), intended stop was likely ~$33.33 ($38.07 - $4.74). Verify and correct stop before market open tomorrow. Risk violation pre-existing: 1% rule = $25 max; at corrected stop ~$33.33 risk = $4.74/share → max 5 shares (matches recorded). Do NOT add to position. Gold sector remains strong catalyst. Note: K.TO and AGI.TO represent combined gold concentration — monitor as single gold position."
      }
    ],
    "exits": [
      {
        "ticker": "SU.TO",
        "exit_reason": "Time stop + overbought: Day 6 held (entry May 7), exceeds both the 3-day rule AND the Grade A leading-sector maximum of 5 days noted in positions.json. RSI 75.7 (single source above 70 — overbought signal). Pivot top sell signal issued May 5, 2026. Stop ($80.24) remains intact (last known price ~$89.08 > stop). Exit captures ~$2/share gain from entry $87.02. Overbought conditions + extended hold duration override continued hold.",
        "action": "EXIT full position"
      },
      {
        "ticker": "AGI.TO",
        "exit_reason": "Time stop: actual days held = 5 trading days (entry May 12, today May 19 — May 13/14/15/16/19), exceeding the 3-day rule. positions.json shows days_held: 3 but this field was not updated. RSI 59.76 and MACD positive — setup technically still valid but rule-based time stop triggered. Conditional: if current price has reached or exceeded T1 ($66.91), do NOT exit full position — instead trail stop to breakeven and manage to T2 ($73.74). If price below T1 with no clear progress above entry ($60.08), EXIT full. Gold sector strength (gold ~$4,820) may warrant reassessing re-entry at next 20d EMA pullback.",
        "action": "EXIT full position (conditional: if T1 $66.91 confirmed hit, trail stop to entry and hold to T2 instead)"
      }
    ],
    "watchlist": [
      {
        "ticker": "CM.TO",
        "waiting_for": "RSI and current price confirmation — technical data insufficient from screener pass. Earnings May 28 (7 trading days) — entry window narrow. Needs RSI reading below 65, confirmed position above 200d EMA, and MACD positive before scoring. Bank sector context is positive."
      }
    ]
  },
  "excluded": [
    {
      "ticker": "TD.TO",
      "reason": "Mentioned on Globe and Mail positive breakouts list. No RSI, current price, or 200d EMA position confirmed in follow-up. Cannot score. Add to next scan if data becomes available."
    },
    {
      "ticker": "BMO.TO",
      "reason": "On positive breakouts list (record high per G&M Sep 2025 reference). No current technical data confirmed — RSI and earnings date unknown. Cannot score for this scan."
    },
    {
      "ticker": "GOLD_SECTOR_GENERAL",
      "reason": "Multiple unnamed gold miners dominate TSX positive breakouts list. K.TO and AGI.TO already held — adding additional gold exposure would breach sector concentration rule (K.TO + AGI.TO already monitored as a combined gold position). Individual names not confirmed with full technical data."
    }
  ]
}
