Dashboard

Data health — bars received per feed
No data fetched yetStart a run, a backtest, or a scan and feeds appear here.
Active runs
Nothing runningCreate a strategy in the Workbench and deploy it.
Engine log
Waiting for engine output.

Workbench

Everything in one place: describe or build the strategy on the left, pick instruments and risk on the right, and results appear below — no tab hopping.

1 · Strategy
Library
Loading classics…
2 · Instruments
3 · Capital, costs & risk
4 · Act
Backtest → review → deploy. Results appear below.

Scanner

Where every instrument sits in the Armed RSI → MACD state machine right now — actionable states float to the top.

Screens your instruments against the CURRENT Workbench strategy (any type)
Nothing scanned yetPick instruments in the Workbench (or a universe) and scan.

Live Trading

Ground truth from the broker: runs, their signals, what filled, what queued, and what was missed — with the reason.

Runs
Nothing runningDeploy from the Workbench.
Notifications: checking… env: TELEGRAM_BOT_TOKEN + TELEGRAM_CHAT_ID · SMTP_HOST + NOTIFY_EMAIL_TO
Alpaca orders (broker truth)
No Alpaca-mode runs yet, or not loaded.
Missed signals — needs your attention
Nothing missedSignals that fail to execute (auth, caps, broker errors) appear here with the cause.

History

The permanent audit trail (SQLite, survives restarts): every Alpaca API call, order response, signal, trade, and miss.

Nothing loadedPick a table and hit Load.

Playbook

The parts of the algo-trading canon this app enforces — and the parts only you can.

Costs are strategy killers. A strategy that survives 5–10 bps slippage plus commissions is real; one that doesn't was never profitable. The backtester defaults to 5 bps and warns when you test with zero costs.

In-sample profits are a hypothesis, not a result. Every backtest here reports the last 25% of the period separately. If the strategy makes money in the first 75% and loses in the last 25%, you tuned it to the past — the app flags this automatically.

Small samples prove nothing. Under ~30 closed trades, win rate and profit factor are noise. The app warns; take it seriously.

Paper first, size small, then scale. The pipeline is deliberate: backtest → simulated run → Alpaca paper. Run a strategy live-simulated for weeks and compare its fills to the backtest before trusting it — the gap between the two is your real edge estimate.

Know every signal's fate. A live strategy is only as good as its execution. The Live view reconciles engine signals against broker orders: filled, queued for open, or missed with a reason. Investigate every miss.

Cap your worst day. Set the daily-loss kill switch on every live run. Strategies fail suddenly (regime change, data issues); the kill switch turns a blow-up into a bruise.

One position per symbol, sized by cash. Fixed cash-per-trade with a max-concurrent cap keeps any single signal from dominating the book. Never let position sizing be an afterthought.

Completed bars only. Signals on forming bars repaint and flatter backtests. Everything here — daily, weekly resamples, higher-timeframe RSI — uses completed bars exclusively.

Regimes change. A dip-buyer built in a bull market meets a different world in a bear. Re-scan, re-test out-of-sample periodically, and retire strategies without sentiment.