- 5,006market rounds behind a single retired-strategy verdict
- 25k+lines of TypeScript
Overview
A multi-strategy trading fleet where every strategy is an experiment with a written verdict. Strategies are spawned as variants with knob-level differences, journalled independently, and judged against a bar set before the test runs. Most of them are now deleted — and each deletion has a note explaining the evidence that killed it.
The hard part
Pre-registering the bar before seeing the result
The failure mode in trading research is finding a pattern after the fact and believing it. So tests here are pre-registered: the sample size, the success threshold and the decision rule are written down before the run starts. One strategy looked like it had a +6 point edge; the pre-registered read gave +2.2 points with roughly a one-in-four chance the true edge was zero or negative. A favourite pocket that appeared strong at 441 windows vanished at 1,423 — it was noise from counting shares as the sample size when the real unit is windows. Getting the denominator right is most of the work.
What it does
- Per-strategy journals with era stamps, so results from before and after an engine change are never pooled blindly
- A/B variant spawning through a control API — identical code, explicit knob diffs, compared per tag
- Analysis CLI tools that render a verdict from the journals rather than from memory
- Hard halts on loss streak, session loss percentage and single-trade anomaly
- An archive of deleted strategies, each with the note that retired it
What it proves
- Experimental design and statistical honesty under financial incentive to self-deceive
- Separating engine, strategy and analysis so each can change independently
- Writing decisions down so the next session cannot relitigate them from vibes
Stack
- TypeScript
- Next.js
- Polymarket API
- Chainlink TWAP
- WebSockets
- PM2
- Linux VPS
Related