— StockSha · a personal auto-investor
A strategy
must earn its way to real money.
An automated investing system built end-to-end: an honest backtest engine, overfitting diagnostics, walk-forward validation gates, hard risk limits, and an unattended paper deployment — live right now, below. Every trade is decided by deterministic, tested code. No LLM ever makes a trading decision.
— Live paper deployment
Running right now
Last update Jul 28, 2026, 4:35 PM · runs unattended weekdays at 4:35pm ET · paper money, real market data
Paper equity
$100,000
+$0 vs $100k start
Positions held
0
ETF rotation universe
Kill-switch headroom
20.0%
drawdown 0.0% of 20% hard limit
Human interventions
0
by design — halts require a post-mortem
— Deployment equity vs SPY
Decisions are made after the close on completed bars and submitted as market-on-open orders — exactly the fill convention the backtests assume, so reality and the model stay comparable. A daily reconcile job measures the gap.
— The seven steps
How it's built
Each step must be earned before the next one unlocks. The interesting part is what the gates have refused to let through.
1Data & backtest engine
builtSplit/dividend-adjusted bars, explicit universes, gap-aware stops, realistic costs. Decisions on completed bars, fills at the next open.
2Risk module
builtPosition sizing plus a 20% drawdown kill-switch — the same code governs backtests, paper, and (one day) live, identically.
3Overfitting diagnostics
builtParameter plateaus, in-sample vs out-of-sample gap, drop-best-trades. Built to distrust good-looking results.
4Strategy hypotheses
builtDual momentum (GEM-style ETF rotation) and a mechanical CAN SLIM subset — each revised twice after the harness caught real flaws.
5Walk-forward validation — Gate A
builtTune on train, freeze, trade unseen windows, stitched verdict. Built and run twice. No strategy has earned the gate — and that's the system working.
6Paper deployment
live nowUnattended launchd runs since July 2026: kill-switch check, strategy decision, capped orders, full audit log, published here daily.
7Real money
lockedDeliberately not built. Gated behind Gate A (validation) and Gate B (weeks of tracked paper trading). No shortcut exists in the code.
— The system that says no
Discipline is the feature
A research harness earns trust by what it rejects. These results are real, and they're the point.
Survivorship bias, caught red-handed
CAN SLIM appeared to beat the market — on a universe of hand-picked decade winners. Rebuilt with the mega caps actually selectable in 2016 (including GE, IBM, Intel), the alpha vanished entirely. The harness flagged it as overfit.
Crash risk, measured not wished away
In backtests, every hypothesis was halted by the 20% kill-switch — monthly rebalancing can't react to a COVID-speed crash. That finding shaped the revisions instead of being tuned away.
The honest conclusion
After two full validation cycles: nothing tested beats SPY buy-and-hold after costs. So the paper deployment runs explicitly labeled as a learning deployment — and the path to real money stays locked.
— Latest run · walk-forward · dual_momentum
SPY, EFA, IBIT, AGG vs SPY · 2026-07-20
CAGR
37.5%
B&H 19.6%
Sharpe
1.56
B&H 1.20
Max drawdown
15.2%
B&H 18.7%
Total return
88.7%
B&H 42.9%
— Equity vs buy & hold
— Walk-forward verdicts, straight from the database
— Engineering notes
Under the hood
No lookahead, structurally
Strategies see the market only through a view whose accessors cannot reach past the current bar — attempts raise an error. Tested, not trusted.
Backtest ↔ live parity
One execution convention everywhere: decide after the close, fill at the next open. The paper runner submits market-on-open orders to match it 1:1.
A kill-switch that stays tripped
A drawdown halt is sticky across runs and submits zero orders. Re-arming requires a human and a written post-mortem — no auto-recovery.
Unattended, audited operations
launchd agents run the daily trade and reconcile jobs; every decision, order, and alert is appended to an immutable audit log and published here.
A read-only window
This site renders published Supabase snapshots. There is no code path from the web to the broker; private data sits behind row-level security.
Claude explains, never trades
The owner's dashboard includes an AI analyst grounded in the published data — read-only by construction. Trading decisions stay deterministic.
Python 3.12 · pandas · Alpaca paper API · pytest · Supabase · Next.js · Tailwind · Vercel
— Ask Claude
Questions, answered from the live data
An AI analyst grounded in the published state and research verdicts. Read-only by construction — it cannot trade or change anything. Visitor questions are rate-limited; be nice to it.
Try one of these: