WOLFX Research · daily/2026-04-28.md

The WOLFX Daily — 2026-04-28 (Tuesday)

By WOLFX Research

Scoreboard

What happened: the 50-hour IBKR outage, postmortem

WOLFX lost dashboard visibility into the IBKR portfolio from Saturday morning through Tuesday morning — 50 hours of "$0 IBKR" on every monitor, while the actual broker account continued running ES + NQ futures untouched.

The root cause was an IBKR account configuration that became visible only when IB Gateway had to re-authenticate. Last spring we had set up two IBKR users: winklhawk for live trading on Railway, winklhawk2 as a separate sub-user for the desktop TWS client (so the two clients don't kick each other's session). What that setup did invisibly is provision a second paper trading account in the master tree. IBKR's auth then refused to auto-pick one — every login attempt got rejected with "the specified user has multiple Paper Trading users associated with it."

That second piece was the real lesson. The gnzsnz/ib-gateway:stable image — the standard IB Gateway Docker community uses — does NOT honor the TWS_USERID_PAPER env var. It reads only TWS_USERID, regardless of TRADING_MODE=paper. So when we set TWS_USERID=winklhawk and TRADING_MODE=paper, IBKR was being asked to authenticate the live identity at the paper login endpoint. With one paper account that was tolerated; with two, IBKR refused to disambiguate.

The actual paper username (cxgcsa981) lives behind IBKR Account Management → Settings → Paper Trading Account. Memory file reference_ibkr.md now records this so future Railway restarts pick up clean credentials without intervention.

Autonomous pipeline: first end-to-end run

Yesterday at 15:55 ET the V174 cron fired. It ran the Overnight Drift signal logic, found the prior 5-day intraday log return was -0.30 % (oversold filter triggered), and recorded an overnight_drift_shadow row to agent_state with enter=True. At 16:35 ET the V170 vix_carry cron fired and recorded an OPEN decision (contango +93.63 %, VIX 18.0, SPY 6-month return +4.96 %). At 16:45 ET the V179 auto-promote cron fired, read both shadow records, and logged HOLD decisions for all three strategies (insufficient sample size, expected at day 1).

This morning at 09:30 ET the Overnight Drift "trade" closed at the market open. The V178 shadow MTM endpoint marked it: SPY 715.17 → 711.82, net -0.097 % after the 1.5 bps cost model. Statistical noise — the backtest had 73 % win rate but daily-level outcomes vary widely. We need 20+ trades (40+ sessions accounting for the ~43 % fire rate) before the rolling-Sharpe math gives anything meaningful.

The pipeline is in place. Now it just runs.

What today and the rest of the week looks like

Sniper attribution drift

The V173c attribution endpoint now shows 58 trades across 6 strategies. sniper_mean_reversion was the workhorse last week (PF 3.10, +$1,539 across 26 trades). It continued trading through the IBKR-blind period and the latest snapshot has it at 35 trades, +$782, PF 1.52 — strategy degraded over the weekend. Still a worker, but the edge thinned. factor_trend and factor_breakout remain disabled at the code level (PF 0.11 and 0.00, locked-in losers). The strategy-kill admin endpoint shipped as V177 lets us flip any of the three validated shadow strategies on/off remotely once the data justifies it.

Public surface unchanged from Saturday

wolfx.trade continues to serve: landing with live pulse strip + Free/Pro pricing, dedicated /pricing page, /whitepapers index, /changelog, /swarm agent dashboard, three strategy whitepapers, the 15-round backtest gauntlet scoreboard at /reports/gauntlet-scoreboard.md, this and prior daily briefs. API endpoints /api/v1/signals/closed (24h-delayed, public), /api/v1/signals/live (Pro tier only), /api/v1/pulse, /api/v1/strategies/performance, /api/v1/strategies/shadow/performance, /api/v1/keys/generate. Stripe polling (V176) runs every 5 minutes — when the first Pro subscriber checks out via the payment link, the API key is auto-provisioned within 5 minutes. No Stripe webhook needed.

---

WOLFX publishes every signal and every realized fill. Past performance, including walk-forward backtest performance, is not predictive of future results. Trading involves substantial risk of loss.

Edge-served from Cloudflare R2.