Live from a Raspberry Pi 4 · Mexicali connecting to the Pi…

Project 01 · fintech / quantitativein production · forward test since 2026-09-08

Trading AI

A quant trading bot that learned not to use AI.

24/7 paper-trading system on Binance that runs five mean-reversion strategies side by side, with a home-built backtest engine that discarded more than 240 variants, the LLM version included, before letting the winner run. Node.js with no frameworks, Docker on this very Raspberry Pi, real-time dashboard over Server-Sent Events.

Strategies tested
240
variants · 80 families
Candles analysed
3.2 M
18 pairs · 15 months
Win rate (OOS)
76 %
111 days never seen
Profit factor (OOS)
2.49
main strategy
Max drawdown (OOS)
2.6 %
70 trades
AI cost in prod
$0
before: $3 to $8 a day

Fig. 1 · Equity curve · $60 start · May 2025 to September 2026

Five strategies, one feed, 471 days

FK19· main$90FK17$87FK24$88FK3$85control (LLM)$56
OUT-OF-SAMPLE · 111 days · never seen by any sweep$50$60$70$80$90Jul 25Sep 25Nov 25Jan 26Mar 26May 26Jul 26Sep 26

The shaded area is the 111-day out-of-sample window: candles no optimisation process ever saw.

Fig. 2 · The problem

Two chained language models, $8 a day, 47 % hit rate.

I wanted a bot that traded crypto with little capital ($60) and no babysitting. The first version used a local Qwen as a filter and Claude as the final decider. It cost $3 to $8 a day in API calls and its win rate landed at 47 %. With 0.1 % fees per trade, that is losing money slowly.

Fig. 3 · What the data taught me

  1. 01Multi-timeframe trend following (ADX, EMAs, Donchian). 1,157-trade backtest.−48 %
  2. 02Fifteen documented 5-minute scalping strategies. The fee drag of 3,000 trades a year eats any edge.0 / 15
  3. 03Connors RSI2 mean reversion on 15 min with limit orders. The only edge that survived out-of-sample walk-forward.78 % WR
  4. 04"Frankenstein" round: 90 hybrids of validated pieces. What survived: wide stop, exit on normalised RSI, long only.FK19

The most valuable conclusion was counter-intuitive: at retail costs no indicator strategy has net edge on 5-minute candles, and the AI added nothing a three-condition rule did not do better and for free.

Fig. 4 · Results · 471 days · $60 · 40 % per position · 2×

Full backtest per strategy and out-of-sample metrics
StrategyTradesWin rateProfit factorReturnMax DDOOS · WR / PF / DD
FK19 · Long-only (main)30169 %1.89+49 %8.0 %76 % · 2.49 · 2.6 %
FK17 · Strict long-only19373 %2.19+45 %5.7 %86 % · 3.56 · 2.6 %
FK24 · Long + Short42968 %1.43+47 %11.3 %74 % · 2.04 · 5.6 %
FK3 · L+S with BTC filter36068 %1.45+42 %11.0 %73 % · 1.94 · 5.5 %
Previous LLM version (control)105565 %0.96−7 %21.0 %59 % · 0.62 · 19.2 %

Fig. 5 · Technical decisions worth telling

No frameworks

Native HTTP server, hand-drawn SVG, zero frontend dependencies. The dashboard page weighs 30 KB.

Backtest → live fidelity

The simulator and the bot share the same strategy definition. What was tested is literally what runs.

Maker execution

Switching from market to limit orders cut the cost per trade from 0.1 % to 0.07 %. That turned a marginal edge into a deployable one.

Statistical honesty

Strict in-sample / out-of-sample split, walk-forward with pair selection using only the past, parameter-neighbourhood robustness and slippage sensitivity.

Persistence that survives restarts

One JSON per strategy with capital-integrity validation on boot, hourly backups and automatic container restart.

What does not exist yet

The code that would place real orders. 60 to 100 forward-test trades per strategy are still missing. That decision gets made with data, not enthusiasm.