What this is
A personal research platform for algorithmic trading, run on paper accounts. The interesting part is not the trading. It is the harness around it, built on the assumption that most strategies do not work and that the hard engineering problem is proving that honestly before any money is involved. The guiding rule is short: no robust edge means cash. The system is optimised to say “I don’t know” rather than manufacture a false positive.
Three habits make that stick:
- Pre-registration. A strategy’s rules, market, timeframe and the thresholds it must clear are committed before the evaluation runs. The evidence is held to what was registered, not to what looked good afterwards.
- Multiple-testing controls. Testing many strategies against the same history produces winners by chance alone. The trials ledger counts every attempt so the harness can say so.
- Retirement is a result. A rejected idea is recorded with its verdict and kept. Negative results are the majority of the output, and they stop a retired idea from being quietly re-run under a new name.
The research programme
The programme opened in July 2026 with a backlog of price-derived families — crypto and US-equity trend-following and mean-reversion — run through a fixed-parameter rolling walk-forward harness.
Wave one, single-instrument price rules. Hourly crypto crossovers failed first and worst: at small-account scale, turnover’s round-trip cost consumes most of the edge before it can be measured. Slowing to daily bars fixed the cost problem but not the edge problem. The same families came back cost-clean and still lost, or survived on too few trades to trust. The recurring shape: cheap enough to trade, therefore too rare to prove.
Wave two, portfolio-level candidates. Multi-horizon trend, cross-sectional momentum, a volatility-forecasting model and a robust-covariance allocator were each pre-registered and run. Each cleared some registered gates and failed others — benchmark dominance, forecast quality, robustness under resampling. None was rescued or re-tuned after seeing its result.
Data tracks. Four information sources beyond price were opened — carry and funding-basis data, company fundamentals, point-in-time macro vintages, on-chain state. Every one stalled on data quality before a strategy was ever scored. The programme treats those as results too.
September, the papers. With every candidate retired or parked, the programme paused strategy testing and produced twelve papers comparing its engineering against professional risk platforms, and mapping the regulatory paths for ever running outside money.
The funnel
From 15 strategy families to 22 pre-registered specs to 20 audited trials, and then to zero. The last two rows are the point of the whole system.
What we learned
Eight findings, in the order they were recorded.
- Cheap enough to trade, therefore too rare to prove. A rule that trades often enough to accumulate evidence is eaten by round-trip costs on a small spot account. A rule cheap enough to survive trades so rarely that a trustworthy verdict takes years.
- The benchmark kept winning. A static, non-forecasting, risk-balanced multi-asset benchmark beat every registered candidate on risk-adjusted terms, twice. In September it was proposed as a candidate class itself.
- Nothing died of overfitting. Across 20 categorised rejections, overfitting scored zero: eleven failed on no edge, four on data quality, two on benchmark dominance, two on too few trades, one on costs. Pre-registration, a cost budget and a trade-count floor kill ideas first.
- Data readiness is a research result. Four information sources beyond price were opened and every one stalled at data quality before a strategy was scored.
- Capital structure shapes what can be tested. A fixed single-instrument stake silently rules out the breadth that the trend-following literature says carries the edge.
- Portfolio candidates fail differently. Each wave-two candidate cleared several gates and failed a specific one. Partial passes are recorded as fails, and none was re-tuned after the result was seen.
- Paper trading cannot produce an auditable track record. Own-book proprietary trading is the one company shape open today without external licensing; the cheapest regulated route carries a real capital and eligibility bar.
- Engineering lessons. A safety threshold never derived from a real measurement is an outage wearing a caution costume. A guard built around a code diff has a blind spot shaped exactly like “new”. Absence of expected output is not evidence of failure until the instrument is verified.
How a research unit runs
Every unit follows the same sequence, and the rules are written down before any number exists.
- Spec first. Hypothesis, immutable inputs and their hashes, fixed configuration, and a decision rule with a predicate for every gate criterion, committed before any result exists.
- Freeze the data. Candles are captured once into an immutable, hashed, append-only artifact. A re-run produces a new file, never an overwrite.
- One shared audit path. Every strategy and market goes through the same walk-forward harness so results are comparable. Each trade is attributed exactly once to the window containing its entry.
- Append to the ledger. Every trial, including failed ones, is appended to a permanent trials ledger. Hiding a trial is treated as p-hacking.
- Score mechanically. The result is checked against the pre-registered gates and returns PASS, FAIL or INCONCLUSIVE, with no discretion to reinterpret a threshold after seeing the number.
- Retire or park, with reasons. A failing candidate is retired or parked with its reasoning recorded, so the same idea cannot return under a new name.
The platform
Every arrow into the paper execution engine passes through the gate and an owner decision.
| Layer | What it does |
|---|---|
| Data | Fetches candles and freezes them into hashed, immutable datasets so any research run replays exactly |
| Venue adapters | One adapter per venue: crypto spot with a locally simulated fill model at public marks, US equities through a paper-trading API with a market-session calendar |
| Strategy library | Deliberately simple, interpretable price-based rule sets by family, plus a buy-and-hold benchmark |
| Research harness | One shared walk-forward path, a trading-cost audit against a fee budget, a trials ledger with Deflated Sharpe accounting, Monte Carlo and PBO/CSCV overfitting checks |
| Risk engine | Volatility-based position sizing, a portfolio heat cap, a drawdown-based size ladder and a circuit breaker layered so new entries pause independently of existing stops and exits |
| Execution engine | An order-intent ledger written before any order is submitted, duplicate-order fencing, and a startup reconciliation pass that diffs the database against venue records |
| Promotion gate | The eleven-criterion advisory check in Figure 7. It produces evidence. A human decides |
| Ops and safety | Per-book alerting, an independent dead-man heartbeat, encrypted off-site backups, chaos and failure-injection tests, a trade journal and an intervention log |
| Dashboard | FastAPI backend, React + Vite frontend with TradingView Lightweight Charts: daily cockpit, price chart, trade log, performance, and a Factory page that shows candidates moving through the trials ledger |
| Reporting | A shared builder that renders diagrams and assembles dated monthly and per-release reports with an attached evidence trail |
By the numbers
As published in the research notes on 10 September 2026. Stack: Python 3.12 with uv · pandas, TA-Lib, vectorbt, ccxt · FastAPI, psycopg 3, structlog · PostgreSQL 16 · React, Vite, TypeScript, Tailwind, TradingView Lightweight Charts · Docker Compose, Caddy, an external heartbeat monitor · pytest, ruff, vitest.
| Research | Engineering | ||
|---|---|---|---|
| Strategy families considered | 15 | Python modules | 153 across 17 subpackages |
| Specs pre-registered | 22 | Test files | 162 unit + 29 integration |
| Walk-forward trials audited | 20 | Database migrations | 15, append-only |
| Passed every gate criterion | 0 | Tagged releases | 12 |
| Promoted to real money | 0 | Documentation | 167 Markdown files, about 43,800 lines |
| Dated research documents | 42 | Changelog | 2,546 lines |
| Dated report packages | 22 | Gate criteria | 11 |
| Archived evidence files | 17 | Frozen dataset captures | 4 |
Open the research notebook
These are eight archived audits from the corrected July 2026 baseline. Select a market to inspect its input data, assumptions, and out-of-sample results. This is a dated research sample, not the entire current research inventory.
Choose an audit
- Input period (UTC)
- 2024-07-04 to 2026-07-04
- Test windows / OOS trades
- 17 / 295
- OOS daily return observations
- 516
- Context / test window
- 6 months / 1 month
- Fee / slippage per side
- 0.10% / 0.05%
- Annualization / unexplained gaps
- 365 days / 0
This baseline did not earn promotion. Portfolio metrics alone are not a strategy approval.
| Audit | WF Sharpe | Max DD | OOS positive |
|---|---|---|---|
| BTC/USDT 1h EMA/RSI | -4.425 | 37.37% | 0.00% |
| ETH/USDT 1h EMA/RSI | -2.592 | 23.91% | 5.88% |
| SOL/USDT 1h EMA/RSI | -1.426 | 15.38% | 35.29% |
| BNB/USDT 1h EMA/RSI | -2.486 | 23.36% | 5.88% |
| XRP/USDT 1h EMA/RSI | -2.115 | 21.70% | 11.76% |
| BTC/USDT 1d EMA/RSI | -0.346 | 4.64% | 26.26% |
| SPY 1d EMA/RSI | 0.535 | 7.48% | 41.59% |
| SPY 1d Donchian | 0.369 | 8.02% | 10.62% |
What the results tell us
None of these eight baseline audits earned promotion. The hourly crypto strategies struggled after costs. Moving to daily bars reduced turnover, but did not automatically create an edge or a sufficient sample.
A later 12-ETF study demonstrates the same distinction: the constrained portfolio produced a positive historical return and lower drawdown, yet failed the benchmark comparison. We retain that result rather than select only the most flattering metric.
What is public and what is not
Public, on this site and in the research notes: the method, every verdict and its category, evidence-quality counts such as trade counts and dataset sizes, the gate criteria by name, the lessons, and the archived audits above with the hash of each source file.
Not public, by choice: the source code, indicator periods and thresholds, position-sizing formulas, gate cutoff values, the live paper book’s returns and positions, venue credentials and infrastructure. Strategies are identified by family only.
The published snapshots are historical simulations. They are not live returns or a forecast. No paid trading subscription is available here, and nothing on this page is investment advice, an offer, or a solicitation. The separate proposal for a Chain trading tool is not the same product as this own-book research platform.