Occasional posts on swing trading, portfolio construction, and the engineering under the hood.
Score 82. Entry trigger ARMED at 4/4 since pre-market. Stock up 4.8% on the day. By every momentum signal I trade — RSI in the sweet spot, MACD bullish, volume strong, breakout structure intact — DXCM looked like the textbook setup. I had the size figured out. The broker tab was open. My finger was on the place-order button. Then I read the card. Three voices on the card — audit row, swing ops modal, position sizer — were quietly disagreeing with the trigger that was about to chime. Then the post-close institutional tape gave a fourth confirmation: 96% dark pool prints, 2.3× more bid-lean than ask-lean, institutions selling into the rally retail was chasing. This is the inverse of the March-2026 Iran-shock trade I lost $3,800 on.
Read post →Every card on Swing Deck is the same shape. Once you've read one, you've read them all. The 5-minute version: the five things to read top to bottom (score, bias, structure, setup, trigger), the five different paths to ARMED (Generic, EP, BF, CBP, WAIT), what to do when chips disagree (ARMED + AUDIT GATE REFUSES is the most important pattern to recognize), the trap flag layer that vetoes against high scores, the 13-pillar gate row at the bottom, and the sizer's job as the third lens. Screenshots throughout. TL;DR at the bottom for the quick reference.
Read post →Why we built a Stage 1 swing co-pilot on the proven work of Kullamägi, Minervini, O’Neil, and Livermore — and the eight things we added that are actually ours. Per-trader sections trace each setup pattern, risk rule, and philosophy to its source book. Then: the four-stage autonomy model (with Stage 4 explicitly rejected), the 11-point multi-source confidence synthesizer, regime-aware caps across six macro regimes, the six AI coaches on a token budget, calibration-first shadow corpus before promote, legible-veto chip language with measurable paths to clear, slippage corpus joining broker fills to setup type, and the bug-class catalog that turned three bugs in one evening into a pattern we’ll grep for next time. Heavy attribution throughout. We didn’t reinvent any wheel; we took the best parts.
Read post →The original goal was a standalone Mac app. The first thing we built isn't what's running. We tried Tauri, hit a cascade of four browser-API divergences in four hours (window.open blocked by WKWebView, anchor navigation routed differently, OAuth plugin ACL trap, then window.confirm() silently returning false — which would have killed 28 dashboard buttons). We pivoted to Safari "Add to Dock" and shipped it in 45 minutes. The Tauri scaffold stays in the repo. The meta-lesson: "build once" is a function of what you're wrapping. For a complex browser app, a real browser PWA install IS the build-once answer — because the wrapper IS a browser, so every browser API works natively.
Read post →Most traders know their overall win rate. Almost none know which setup types are pulling the average up and which ones are dragging it down. v7.2's Setup Performance subtab classifies every BUY journal entry into one of eight setup types — bull flag, catalyst play, earnings runup, breakout from base, pullback at support, oversold bounce, trend continuation, or "other" — and shows per-type win rate, expectancy in R, profit factor, best/worst ticker. Sample-size bands keep you honest about which numbers you can trust yet. A 55% overall win rate hides whether you're 75% on pullbacks + 32% on catalyst plays — and the difference between knowing that and not is the difference between an edge and friction.
Read post →A user asked where a widget went. We thought it was a render bug. It wasn't. Two completely different things in our dashboard both happened to be called "comparable setups" — one a per-card chip showing a single ticker's own historical analogs (looking backward), the other a top-level banner detecting portfolio-wide pattern clusters across many tickers right now (looking sideways). Same words, opposite axes. The disambiguation rename + threshold extraction, plus why naming is the cheapest documentation you'll ever ship.
Read post →For a year, "Swing Deck" was a tab in your browser. v7.8 reframes that: a standalone Mac app (Safari Add-to-Dock / Chrome Install), a macOS LaunchAgent that runs the engine 24/7 starting at every login with auto-respawn on crash, real Portfolio Truth (broker_state daemon polls E*TRADE every 30s, Reconcile pill surfaces drift in real time, transaction auto-routing, paranoid-mode order verify), plus six silent broker bugs caught and pinned. Release window June 1 when the GitHub Actions quota refreshes — 16 commits stacked locally. The brain runs whether you're watching or not.
Read post →A log line that fires every five minutes for three weeks isn't noise — it's a real bug you've stopped noticing. One user-reported symptom (Connect E*Trade button silently failing) unraveled into three separate broker bugs: an OAuth route that worked from fresh Python but not from the long-running server (stale connection-pool drift), a deprecated /v1/accounts/list endpoint that had been 404-ing in the logs for weeks, and a FEED DEGRADED badge tripping on calls that weren't actually failing. The pattern in all three: the system stopped screaming about something it should have been screaming about. All pinned in regression tests now, plus three concrete changes to how we read logs.
Read post →Three of the four Hidden Tape v2 modules went live today. v6.3 cross-checks framework whale signals against external sources via AI + web_search. v6.5.0a surfaces SEC Form 4 insider activity per ticker. v6.4 classifies the current bar's structural state (TRAP / FADE / CHASE / CLEAN / NEUTRAL) and gates entries with an OK / WAIT / AVOID verdict. Calibration on 8 tickers shows zero hallucinations, 37.5% AI override rate, and a $435M PLTR insider-selling pattern the framework alone would have missed entirely. Founding 100 program now open at $14.50/mo (50% off Pro forever).
Read post →Pure TA, price action, SMC, Wyckoff, trend, mean reversion, quant, sentiment — every retail trader picks a religion and defends it. The desks making real money take a tool from each toolbox and discard the rest. A survey of what each philosophy gets right, what it consistently misses, and which parts Swing Deck synthesizes. Plus: an honest take on what "trade like a whale" actually means (hint: discipline, not capital).
Read post →The external audit caught a max-pain calculation bug we couldn't see from the inside — NVDA was reading $150 when the real value was $200, every Hidden Tape narration in the v5.8 line was reasoning from a hallucinated number. Five findings, eight v5.9 releases, one repeatable pattern: ship → audit → harden. Public retrospective + audit hardening doc on GitHub.
Read post →Most trading apps shipping "AI" in 2026 ship a chat box. Swing Deck v5.7 ships six per-ticker AI surfaces and zero chat boxes — on purpose. Every output is bound to a specific framework moment, generated from defined inputs, narrated in the framework's own voice. With real LLM narrations on NVDA + VRT showing how the discipline-mirror moat works in production.
Read post →Four words people use interchangeably that mean four different things. Different time horizons, different risk shapes, different discipline requirements, different IRS treatment. The fastest way to lose money in 2026 is to use a strategy designed for one and apply it to another. Clean breakdown of each, plus where Swing Deck does and deliberately doesn't fit.
Read post →Yesterday we walked through the discipline to not enter. Today: the discipline to actively manage a trade that's working. NVDA at 16 days into a 10-day swing window — structurally valid breakout, thin volume, past the clock. How to read the two-signal tension and what the disciplined scale-out looks like.
Read post →VRT at $328 — daily structure said "trend continuation," composite score said "NO ENTRY — TRAP." Both were right, and the disagreement is the whole point. A walk through the sub-scores the framework published this morning, what each red light actually meant, and why the best trade this week was the one we didn't take.
Read post →The biggest release since launch. 11 price-action trigger primitives, a single status light per position replacing the 11-cell grid, AI thesis that learns your preferences, morning briefing email, public track record, consensus network, mobile PWA, Focus Mode. A walk through every new feature and the moat each one builds.
Read post →Every retail platform shows you indicators as if they were signals. They aren't — they're filters. The professional edge is the division of labor: use indicators to qualify the universe, use price action to pull the trigger. Here's the framework, and how Swing Deck v5.0 encodes it into a one-glance dashboard signal.
Read post →The 11-point technical score tells you which stocks look good. The 13 risk pillars tell you which stocks you're allowed to own. This second layer is what separates a screener from a trading system — and it's where most retail frameworks stop.
Read post →The math on your 2×-ATR stop is fine. The spreadsheet says this is a 1R loss. So why does your actual P&L look nothing like the backtest? Because the gap between "I set a stop" and "the stop actually gets hit at the level I set" is where most retail traders quietly bleed out.
Read post →Subscribe via RSS — no newsletter, no email list. Just the feed.