Research

What we tested, what we found, and why the bot is paused. Every number here came from a measurement, not an opinion.

Three strategy classes tested. None is deployable.

The bot halted itself at −15.05% when its own drawdown kill-switch fired, and it has stayed paused since. That was the correct outcome: out-of-sample testing then showed the signal it was trading has no durable edge at any horizon — even at zero transaction cost. Rather than tune parameters on a signal that does not predict anything, we tested two further strategy classes and published what they showed. One of them survived the statistics and is now monitored without capital.

Everything below is paper trading. No client money has ever been at risk in Catalyst.

Momentum / news signals
RULED OUT

Does the signal predict which way price moves?

Sample: 917,318 crypto candidates over 3.6 years (incl. the 2023–24 bull run) + 367,730 FX

Best gross edge (crypto, 48h)+12.64 bps
Pooled t-statistic+7.31
Regime-clustered t (each year = 1 obs)+0.41
By-year edge at 48h−9.7 / +47.4 / −1.3 / +13.2 bps
Best case with ZERO trading costsSharpe +0.26, not significant
FX entry signalssignificantly negative

No durable edge at any horizon, on either venue, even if trading were free. The year-by-year sign flips are market beta, not skill. This is why the bot is paused.

Cross-sectional factors
RULED OUT

Forget direction — can we rank assets against each other and trade the spread?

Sample: All 10 factors, 25 full-history symbols, 1,309 daily bars, 2023–2026

low_volatility information coefficient (7d)+0.100
Positive in how many years4 of 4
Regime-clustered IC t+5.91 (passes)
Market beta of the long-short spread−0.479
Spread explained by market direction27.5%
Alpha after removing beta, clustered t+1.51 (needs 2.78)
That alpha net of trading costs−9.0 bps/trade

The ranking genuinely works — this was the only replicated, regime-robust signal we found. But once market exposure and costs are stripped out there is no reliable alpha left, and 2026's was negative.

Funding-rate carry
WATCHING — NO CAPITAL AT RISK

Skip forecasting entirely — collect the funding payment perpetual longs pay shorts.

Sample: Binance BTC, 6,480 settlements, 2020-09 → 2026-07

Return on notional, held continuously+11.60%/yr
Positive in how many years7 of 7
Regime-clustered t+2.48 (passes)
Same test dropping the best year+3.73 (stronger)
Cost of a round trip over a 6-year hold0.11pp — negligible
On realistic 2× collateral, today's funding≈ +1%/yr
Trend in the edge−3.8pp per year
Worst 30-day move against the short leg+205%

The only idea that survived its own falsification test. We still did not deploy capital: at today's funding a fully-collateralised book yields about 1% a year, which does not pay for the risk of holding balances on an exchange. So it is monitored instead, with the entry bar fixed in advance.

The one thread still open

Funding is observable before you commit — unlike a price forecast, you can read the rate and then decide. So the entry bar was fixed in advance and a monitor watches for it: trailing-30-day funding at or above 8% annualized across at least 3 of the five clean names, sustained 30 days. Funding paid +8% to +30% every year from 2020 through 2024.

Reading the monitor…

If it never opens, that is also an answer — and it will have cost nothing to learn.

Paper carry book

Reading the book…

How we avoided fooling ourselves

A backtest across thousands of overlapping windows on correlated assets produces impressive-looking statistics almost automatically. Treating each year as a single observation — so a result has to repeat across different market regimes, not just across many days of the same one — killed three findings that would otherwise have looked convincing:

FindingNaive tHonest t
Momentum, 48h gross edge
148k overlapping windows across 30 correlated coins are not 148k independent facts.
+7.31+0.41
range_breakout factor
Three near-identical yearly values gave a near-zero denominator. Effect size was trivial the whole time.
+36.73−0.75
low_volatility alpha, 30d
Its pooled market beta read +0.040 — 'no exposure'. Per-year betas were −1.07, +0.47, −0.36, −0.31, cancelling out.
+5.59+1.70

Anything below roughly 2.8 in the last column is indistinguishable from luck. All three were.

What would change our mind
  • Funding normalizes. If the carry gate above opens, there is a real trade waiting and the bar for taking it was set before any money was involved.
  • Execution gets far cheaper. Crypto costs 0.30% per round trip here versus 0.02–0.06% in FX. Several findings were killed by cost rather than by the signal — maker-only fills would move that line.
  • A genuinely different data edge. Not a new indicator on the same candles. Every technical factor we tested was measured and, bar one, found flat.

Full write-ups live in the repository under docs/: the signal-edge validation, the churn diagnostic, the funding-carry replication, and the cross-sectional factor study — including the measurements that contradict our own earlier conclusions.