Quantor
Transparency · 6 min read

We caught our own trading bots underperforming — and published it

Most trading-bot companies only ever show you their wins. The losing months get cropped out of the chart, the bad configs get quietly fixed in the dark, and the marketing keeps printing green. This week we did the opposite: our own transparency machinery caught two of our bots underperforming, and we're telling you about it on purpose.

Here's what happened, what we changed, and why the messy honest version is the entire point.

The setup: four bots, signed in public

Quantor publishes signed monthly performance snapshots — one row per production strategy, each a PAPER portfolio running on live market data, signed with an Ed25519 key so anyone can verify the numbers weren't edited after the fact. Four strategies run continuously: EMA Cross, Breakout V1, TS Momentum V1, and Quantor Adaptive Pro. The first finalised month publishes on the 1st; nothing is cherry-picked, nothing is a backtest.

Running performance in public like this has a side effect most bot vendors avoid: you can't hide when it's not working.

What the data showed

Pulling the realized P&L across every closed trade — not a flattering window, all of it — the picture was honest and not pretty. The fleet was net-negative. But the loss wasn't spread evenly. It was concentrated in two bots running on the 1-minute (M1) timeframe:

  • Adaptive Pro on BTC, M1 — the biggest drag. Win rate under a third, profit factor well below 1.
  • EMA Cross on BTC, M1 — the same story.

We're not going to dress this up: across the signed fleet, no strategy was net-positive over this window — the two M1 bots were simply the worst of them. What the data did show is that the machinery wasn't broken. The risk gates fired, the stop-losses cut losers at a couple of dollars instead of letting them run, the take-profits banked winners. Execution did its job. The problem was narrower and more boring than "the bots don't work" — and for the two M1 bots, it was entirely about the timeframe.

The logic worked. The configuration was set up to lose — on a timeframe where fees and noise eat the edge before the strategy can express it.

Why M1 was quietly bleeding

On the 1-minute timeframe, a round trip costs roughly 0.3% in fees plus slippage. A single 1-minute candle often has a high-low range of half a percent or more. So the strategy is trying to extract an edge that's smaller than the transaction cost plus the bar's own noise — and it gets stopped out on jitter, repeatedly, paying the spread every time. Death by a thousand small cuts.

EMA Cross and Adaptive Pro were never designed for minute bars. Their default parameters are tuned for 1-hour and 4-hour candles; Adaptive Pro's own backtest is essentially break-even on 30 days of hourly data. Run those same strategies on M1 and you're not testing the strategy — you're testing whether it can out-trade its own fees. It can't. Nothing tuned for the hour can.

The fix — and the part most companies skip

We moved EMA Cross and Adaptive Pro to their designed H1 timeframe. Breakout V1 — which on M5 was actually the worst performer of the four, over-trading false breakouts on BTC's intraday chop around 28 times a day — got the same treatment in the same pass: M5 → H1, so it tests real breakouts instead of noise. TS Momentum stayed on M5. None of this means any of them are winning (this period none were) — it means the timeframe misconfiguration is fixed. We also gave the two fixed-percent strategies volatility-aware ATR stops, so the stop distance scales with how much the instrument is actually moving instead of a flat percentage that's too tight on a calm bar and too loose on a wild one.

Then we did the part that separates a verify-me brand from a marketing one: we dated the change in public. The methodology page now carries a changelog entry — 2026-06-09, EMA & Adaptive Pro moved M1 → H1, with the reasoning. Because the snapshots are signed and dated, the June month honestly spans both periods: M1 for the first nine days, H1 after. We labelled it a transition month rather than quietly restarting the track on a convenient date. July will be the first clean full-month H1 snapshot.

What we did NOT do
  • We didn't delete the M1 trades from the record.
  • We didn't restart the "official" track on a fresh date so June would look clean.
  • We didn't claim H1 will be profitable — it removes the noise bleed; it doesn't manufacture an edge. We still don't promise returns.

Why we're telling you this

A bot you can't audit is a bot you have to trust on faith — and the trading-bot industry has spent a decade teaching people that faith is expensive. The whole reason Quantor signs its builds, ships trade-only API keys, and publishes a per-decision journal is so you never have to take our word for anything.

A config change that quietly happens in the dark would violate that. So would a performance page that only ever goes up. The honest version — "two of our bots were on the wrong timeframe, here are the numbers, here's the fix, here's the date" — is not a confession we were forced into. It's the product doing exactly what it says on the box. If we'll show you this, you can reasonably believe the rest.

We don't promise you a return. We promise that whatever the bots do — good month, bad month, a misconfigured bot we had to correct — you will always be able to see it, dated and signed, and check it yourself. This post is us keeping that promise on a week where it would have been easier not to.


Verify any of this yourself: the signed snapshots and the full methodology changelog live on /performance, and you can watch the bots think in real time on the live demo. Found something we got wrong? bugs@quantorsaas.app — we read every message.