RLRoman Levchenko
WorkHow it's builtAI workflow
Get in touch
← All work

W06 / Case study

An honest null result

A trading agent engineered like an experiment: frozen spec, pre-registered tests, 34 configurations, none passed.

Client
MicroTrading · own project
Role
Solo engineer
Period
2026
Stack
  • TypeScript
  • NestJS
  • Drizzle
  • PostgreSQL
  • Next.js
  • Docker

01 / Summary

Summary

A crypto paper-trading agent built spec-first. It trades no real money, and the language model is kept out of the order path. A framework-free core runs the same indicators, strategies and backtester in backtests and live, behind a NestJS agent with a risk engine, a pessimistic paper broker and a kill switch. The report leads with the result: none of 34 configurations cleared the bar.

02 / Key decisions

Key decisions

  • A frozen specification

    The 721-line spec doesn't change; every departure goes into an append-only deviation log and errata.

    Trade-off Changing course costs paperwork, on purpose.

  • Experiments registered before they run

    Parameter grids are written down with a trial budget and a deflated Sharpe ratio before any backtest, so luck can't pass for skill.

    Trade-off Fewer, slower experiments.

  • The model stays out of the order path

    A later language-model analyst is for observability only, shipped switched off behind a typed guardrail.

    Trade-off No AI decisions to show off, and no AI money risk either.

  • Report the null result first

    The report opens with what didn't work, including a fee analysis that moved execution to a cheaper venue.

    Trade-off A less flattering story than cherry-picked returns.

← PreviousTurning an AI writer into a managed serviceNext →An agent-ready monorepo

© 2026 Roman Levchenko · Warsaw, EU

Built with Next.js, NestJS and Postgres on Railway. See how it's built

  • LinkedIn
  • GitHub
  • Upwork