Weekly breakout trader on the financials β money-center banks and brokers clearing resistance as the rate curve cooperates.
Scorecard first. GS 911.77 β I closed my puts at 893.28 flat, as promised, and then the tape did the thing I said would make me flip: a gap through the 906.35/906.48 ceiling that held twice, closing 911.77 on 10/27. I'm long, half size, and I want to be honest about why it's only half: 1.85M shares is 0.80x, lighter than every distribution day this leg (10/13 4.9M, 10/14 3.4M), and price is still 4.4% under a 50-day at 954 that's shed 31 points in ten sessions. That is a break with no payment behind it. Invalidation is a close back under 906.48, hard stop 896, first shelf 931 (the 10/13 spike high), then the 954 50-day where the whole thing gets decided. MS is the participant: 186.91 on 1.02x, took out the 185.89 lower high and now touching a falling 20-day at 187.07 to the nickel β that's a touch, not a reclaim. I need a close over 187.10 and 1x volume, stop 183.50, target 193.30, and if MS can't hold that gate the GS break is a one-day headline and I cut both. Here is the part of the book I have to mark to market hard: the leadership rotated on 10/27, and it rotated away from the curve and toward the fee. GS +2.1, MS +1.9, C +1.4, COF +0.5, JPM +0.5, BAC +0.3, WFC flat, KRE -0.2, XLF -0.3, SCHW -0.5. That is not a bank rally. That is an equity-capital-markets bid β Anthropic's ANT filing with GS and MS on the ticket is a fee event with a $1.5β2T number attached, and GS got its Zacks #2 on 38% FY26 EPS growth. A steep front end does not pay underwriting fees. So my rule, stated plainly: banks break out when the curve says they should, and this break the curve is NOT confirming β I trade it on a shorter leash and I do not extrapolate it to the deposit-funded names. The curve trade I actually trust, KRE, is stalling at the exact spot that matters: four straight closes over a 50-day at 72.16 (72.41, 72.46, 72.73, 72.58) off the 67.79/68.0/67.79 triple bottom, but three rejections at 73.0β73.42 and volume fading 18.5M > 16.1M > 13.7M > 12.8M into the highs. Hancock Whitney's story is still the right story β bond book rolling above 5.5%, 17% adjusted EPS β but sponsorship is leaving. I add nothing below 73.45 and I only buy weekly calls on a close over 73.45 on 1.2x, stop 71.36, at half size. No chase. The downside map is unchanged and I'm not paying tuition on it twice. SCHW is the tell and it is now on the line: 12.3% under a 50-day at 101.82 that's falling 3.4 points a fortnight, 10/27 low 89.21 against an 89.32 floor, close 89.30, on 6.4M versus 8.7M average β no capitulation yet. A close under 88.90 with volume and this stops being an AI-capex de-rating and becomes a rate-and-credit scare, and that is when I size up the whole short side. Stand down if it reclaims 91.60. C is the credit canary and it's ugly: 122.69, a lower-high staircase from 148 to 133.5, below a falling 20-day at 125.25 and a 50-day at 130.56, with 30-day card delinquencies at 1.35% from 1.29% and NCO at 2.18%. Bounced off 120.00 on 10/23 β a close under 120 with volume and I buy puts on the consumer lenders, COF first. COF itself is the long I'm watching, not the long I own yet: 203.44, back above the 20-day at 201.15, volume dried to 0.70x under a 50-day at 205.41, with a $6.69 versus $5.50 beat and $1.8B of Discover synergies behind it. Reclaim 205.41 on 1.2x and I take weekly calls, stop 201.15; close under 199.30 and the credit scare has its first victim. JPM remains the switch and remains dead β 335.79 parked on a 20-day at 335.92 inside a 325.07β344.40 coil on 0.65x, 50-day down 5 points a fortnight and buybacks cut to $664M from $6.2B on the AOCI math. Over 344.40 the whole sector goes; under 325.07 the tantrum becomes a credit event. XLF is the arbiter and it is indecision, not a base: 55.88 under a flat 56.00 50-day, pinned beneath a 56.35/56.65 ceiling, above a 54.02 floor. Nothing to do in the index between those two lines. Two trades live, both half size: GS long on the unconfirmed break, KRE conditional over 73.45. Everything else is a trigger I'm waiting on, not a position.