Live · Updated Daily

Forex Bot Journal

Two bots, both published. V4 (Rust) went live on a small real-money OANDA account on April 27, 2026 — that's the headline below. V3 (Python) is still running on a demo account; its full ledger is archived underneath.

EUR/USD GBP/USD AUD/USD USD/CAD USD/CHF NZD/USD EUR/GBP USD/JPY

Real fills, real slippage. Pips, not dollars — V4's live account starts at $273.20, so dollar figures would just be misleading. Pips translate to any account size.

V4 — Rust botlive

Two strategies running in parallel. Live since Apr 27, 2026 on a small OANDA account.

Trades
Total Pips
Win Rate
Profit Factor
Gross win / Gross loss

Loading latest V4 data…

What we're publishing, honestly

V4's lifetime numbers above include about a week of shadow-mode trades (Apr 18–26) where the bot generated signals against live OANDA prices but did not submit orders — that lets us validate fills and risk math at zero cost. From April 27, 2026 onwards every entry is a real order on a $273 account. Click "7 days" or "30 days" to scope.

We're publishing the trades as they happen instead of waiting for the numbers to look good. A small live account with a 0.5% risk-per-trade cap survives a long string of losers; if it doesn't, you'll see that on this page in the same week it happened. The whole point of this journal is showing the work, not curating a highlight reel.

Read the full story →

V4 breakdown

All-time, grouped by instrument and strategy.

By instrument

PairnWRPFPips

By strategy

StrategynWRPFPips

V4 recent trades

Newest first. Every closed position — wins and losses both shown.

Closed (UTC) Pair Strategy Side Pips Duration Result
Loading V4 trades…

 

V3 — Python botdemo

Click to expand the V3 ledger (still running on demo)

V3 has been running on an OANDA practice account since early March 2026. We shipped a winning-config patch on April 11 (15 bugs fixed in one batch); the 7-day window is the real story going forward. Lifetime includes the older losing strategies we have since pulled.

Trades
Total Pips
Win Rate
Profit Factor
Gross win / Gross loss

Loading V3 data…

V3 breakdown

By instrument

PairnWRPFPips

By strategy

StrategynWRPFPips

V3 recent trades

Closed (UTC) Pair Strategy Side Pips Duration Result
Loading V3 trades…

 

What V4 does

Two complementary strategies running in parallel. We're keeping the mechanics private until we have a longer live track record — the journal still shows every fill.

Strategy A

Higher-frequency entries

The volume strategy. Most of V4's trades come from this one — short holds, tight risk, exits driven by the bot's own MFE/MAE telemetry rather than fixed targets. One pair currently blocked after a shadow-mode audit showed it underperforming.

Strategy B

Lower-frequency entries

Selective entries with a wider safety stop and a longer max hold. Designed to run alongside Strategy A without overlapping risk — far fewer fires, higher target per trade.

Risk management

0.5% risk per trade. Max 3 concurrent positions across the 8-pair universe. 1.5% daily loss cap — the bot self-pauses for the rest of the UTC day if hit, no overrides. 10-minute cooldown after each loser. Pre-trade collision check against the V3 demo account (we don't double up on positions V3 already has on).

Why Rust?

Tick-level decisions need predictable latency — Python's GC pauses were occasionally costing us a pip on fast moves. The V4 data plane (price stream, indicators, decisions, order submission) is in Rust with a Python PyQt monitor. We log every shadow trade to SQLite so the journal you're reading is queryable, not stitched from JSONL streams.

FAQ

Is this data real?
Yes. V4's trades are read from the bot's SQLite ledger; V3's are parsed directly from its live JSONL signal log. The numbers aren't hand-picked, adjusted, or backtested — they're exactly what the live bots did, refreshed every 30 minutes.
What's the difference between V3 and V4?
V3 is the older Python bot, still running on an OANDA demo account — the full ledger is in the archive panel above. V4 is the Rust rewrite. It started shadow-mode (signal generation only, no orders) on Apr 18 to validate against live prices, then went live on a real $273 OANDA account on Apr 27. V3 stays up as a comparison case while V4 proves itself.
Why is V3's lifetime profit factor below 1.0?
V3 has 170+ trades going back to early March. The first ~120 of those ran strategies and exits we have since disabled. The winning-config fix shipped April 11 and is earning its numbers in the 7-day window of the V3 archive. We're showing every trade in the lifetime view rather than scrubbing the embarrassing ones.
Are you selling signals yet?
No. We pulled the signal-subscription product in April when our live results didn't match our backtests — selling "$29/mo signals" on a losing bot would be the wrong thing to do. We'll re-evaluate after V4 has 4+ weeks of clean live performance.
Can I get the code?
Both bots are private right now — V3 (Python) and V4 (Rust). We write openly about architecture, bugs we fixed, and strategies we tried, both here and on the journey blog. There's an open-source spinoff in the works on sim-vs-live reconciliation, drawing on the 15 bugs we caught porting V3's winning config from sim to production.
What does "shadow mode" mean?
Shadow mode = the bot computes signals against live OANDA prices but does NOT submit orders. The "would-have" trades are recorded in the same SQLite table as live trades, so the journal includes both. V4 ran in shadow from Apr 18–26 to validate fills and risk math; from Apr 27 onward it's live.
Email list?
Sure — leave your email below for a short weekly recap. No sales pitch, just a link to the latest numbers and whatever we learned that week.

Follow along

Drop your email for the weekly journal recap.

No spam. Unsubscribe anytime. Weekly recap only — no trade-by-trade pings.