Skip to main content
SPAO Systems

Case study · paper-trading system

Desk Commander.
A system, not a signal.

6 min readUpdated 2026-05-13Paper-only · not financial advice

Desk Commander is an autonomous paper-trading system that scans the S&P 500 nightly, surfaces EMA-pullback candidates, and routes them through a deterministic execution pipeline — paper-only by design. It exists to scaffold a discipline: separating strategy hypotheses from intuition, and making the validation argument visible before any capital is risked. The audience is the engineer who recognizes the strategy class and reads the 60-day quiet window as the thesis, not a delay.

The thesis

Strategy posture

The edge is a familiar pattern in equities: when a stock in an uptrend pulls back to a recognized moving average, it often resumes that trend within a defined window. Desk Commander’s contribution is procedural rather than predictive — it formalizes which stocks to watch, when to look, when to wait, and what disqualifies an alert before it reaches the operator. Paper-only by design; live consideration is gated behind validation, not enthusiasm.

Universe

507

S&P 500 + pulse symbols

Cadence

Nightly

Post-close scan

Cost ceiling

$20

Anthropic / month

Validation

60d

Quiet window before live

System architecture

Scanner → enrichment → notification → execution

  1. Step 01

    Scanner

    Nightly OHLCV pull for ≈507 tickers (S&P 500 + a tight pulse list). EMA-pullback filter runs against the close, before the next session opens. The regime gate decides whether tonight is a trading night at all.

  2. Step 02

    Enrichment

    Candidates that clear the regime gate get a Claude-graded setup-quality score. Cost-capped at $20/month — discipline is part of the strategy. Aggregate output only; no per-trade public exposure.

  3. Step 03

    Notification

    Telegram digest in terminal-grade typography. Ranked list, gate verdict, regime context. Human-readable, machine-sourced. No app to open, no dashboard to babysit.

  4. Step 04

    Execution

    Alpaca paper API. Position sizing rule, exit logic, journaled to Supabase. Paper-only by design — the 60-day quiet validation phase is non-negotiable before any live conversation begins.

Decisions, in five stages

From 507 to 1.

Stage 01 of 05 — Universe scan

507 names · S&P 500 + a tight pulse list

507 candidates remaining

Stage 1 of 5 — Universe scan. 507 candidates remaining.

Signal pipeline

Decisions, in five stages

The pipeline is rule-based and deterministic. Each stage has a clear admission criterion and a clear rejection path — most candidates are dropped, on purpose. Tap a stage to see what passes and what doesn’t.

Stage 01 of 05 · Universe scan

Nightly OHLCV pull for ≈507 tickers (S&P 500 + pulse list). EMA-pullback filter runs against the close before the next session opens.

Accepted when

Symbol shows a confirmed uptrend pulling back to a recognized moving average. Structural pattern is clean.

Rejected when

Trend isn't clean, pullback is shallow, or volume profile disagrees — symbol drops out silently.

Regime gate

The system picks its weather

The regime gate is not a parameter open to optimization. It’s a refusal mechanism: the system declines to act when the world doesn’t match what it was designed for. Three states, deterministic transitions.

Observing

The default posture. The market is mixed; breadth is uncommitted; the system records candidates but emits nothing.

  • Trend breadth is mixed or weak.
  • Volatility is within band but no clear direction.
  • Candidates are logged for audit; no Telegram alert.

Pipeline behavior

Candidates logged · no alerts emitted

Notification surface

Each pass produces a structured alert, shipped to a private Telegram channel. The rendering below is illustrative — the categorical fields (regime, setup-quality, category) are public; the ticker symbol and parameter values are not.

Notification surface — illustrative

@desk-commander-digest

Real alerts include the ticker symbol and parameter values. Both are private to the operator and never surface here.

Cost discipline

The Anthropic spend is capped before any feature decision. The cap is part of the strategy: anything the system needs from an LLM has to survive a $20/month ceiling, or it does not get built. Months that approach the cap surface as a design signal, not a billing surprise.

Cost discipline — $20/mo ceiling

Anthropic spend · monthly

Nov

Dec

Jan

Feb

Mar

Apr

May

Dashed line = $20 ceiling. The cap is decided before features.

Validation discipline

  1. Scanner build

  2. Strategy backtest

  3. Walk-forward

  4. 60-day quiet

  5. Live consideration

60-day quiet phase

60 days total

No design changes during the quiet phase. Validation earns the right to be considered.

LiveDesk Commander · paper-execution

Awaiting first snapshot…

Regime

Validation

Alerts

today · lifetime

Equity

Open positions

Next scan

Last scan

Status

Aggregate signals via dc-status · whitelist-enforced · no per-ticker

What "validated" means here

“Validated” here means something narrower than “the backtest looks good.” The system is validated when its rule set survives an out-of-sample walk-forward and then survives a 60-day observation window during which no design changes are permitted. Only then does live consideration become an open question, and it remains a separate decision — validation earns the right to be considered, not the right to be deployed.

Disclosure boundary

What you’re seeing — and what you’re not

The whitelist below is the code-enforced disclosure boundary. Adding a field to the left column requires a PR + operator review; the right column is never crossed.

Disclosed · whitelist

  • system architecture (conceptual level)
  • validation methodology + 60d quiet phase
  • $20/mo Anthropic cost ceiling
  • paper-trading status
  • aggregate live signals via dc-status
  • regime label + validation day + alert count
  • open-positions count + equity curve (baseline)

Not disclosed · private

The boundary is the same discipline as the strategy. Refusing to leak is the work.

End of case study

Built with discipline. Talked about plainly.

Reach out