Research desk · not a signal service

Most trading strategies don't work.
We publish the ones that didn't.

Black Cat Profit tests strategy families against a plain buy-and-hold baseline, with execution lag, transaction costs and walk-forward validation. When something fails, the result stays on the board. So far 9 families tested, 2 survived.

No paid tiers and no alerts to sell you. The useful output here is the evidence, including the negative kind.

12,180
Assets tracked
10,818,835
Daily price bars
9
Strategies tested
2
That beat holding

The scoreboard

Every strategy family tested here, in the order it was tried. A result only counts as working if it beat buy-and-hold on the pre-registered metric across the whole universe, measured on medians.

Did not beat holding — 7 of 9
Directional machine learning
manage.py learn
Can a model predict tomorrow's direction from price history?
Walk-forward accuracy landed on a coin flip.
49.4% accuracy
Repeat winners
manage.py screen
Do assets that doubled keep doubling?
Most were one-off moves that did not recur.
22% repeat rate
Crowd following
manage.py crowdtest
Does buying what most users hold beat the market?
Following the crowd cost money every year tested.
−9.1pp / yr
Online learning, direction
manage.py learn
Can a model learn direction per-asset as data arrives?
Not one of the 25 assets became predictable.
0 of 25 assets
Historical base rates
manage.py probrec
Do past analogues give a calibrated profit probability?
Probabilities were well calibrated but carried no edge - they barely beat the naive base rate.
1 of 20 assets
Trend following
manage.py trends
Does riding established trends beat holding?
Lower return and lower Sharpe, though drawdowns improved.
0.229 vs 0.339 Sharpe
Buy low, sell high
manage.py buylow
Does buying statistical dips and selling extensions work?
Mean reversion won on a fifth of assets and sat in cash through most of the compounding.
0.100 vs 0.339 Sharpe
What actually worked — both manage risk rather than predicting returns
Volatility forecasting
manage.py volforecast
Is volatility predictable where direction is not?
Volatility clusters, so it is genuinely forecastable - the one signal here that learns.
20 of 25 assets
Volatility position sizing
manage.py sizingtest
Does sizing by forecast volatility beat a fixed size?
Higher Sharpe and a much shallower worst case, without predicting a single price.
0.306 vs 0.198 Sharpe
The finding
Seven attempts to predict returns failed. The two things that worked manage risk instead. Returns are not predictable here; risk is.

What's inside

Each tool shows its own validation, including where it failed.

D

Dashboard

Ranked signals across stocks, bonds and crypto, plus staking yields and a dividend screen that flags yield traps.

B

Buy low / sell high

Mean reversion with a falling-knife filter. It lost to holding, but the refusals cut median drawdown by 22 points.

T

Trends

ADX, multi-timeframe alignment and trend age, with the ablation showing no rule beat buy-and-hold.

P

Probability

Historical-analogue base rates with Wilson intervals. Calibrated, and honest that calibration is not the same as edge.

A

Asset browser

Search 12,180 listed symbols with a decade of daily history behind each one.

V

Learning & volatility

The online learner that could not predict direction on a single asset, and could predict volatility on 20 of 25.

How results are tested

These rules are what separate a backtest from a story. Most strategies look profitable on paper because one of them was skipped.

One-bar execution lag

A signal computed on today's close trades at tomorrow's, never today's. Without this every backtest looks brilliant.

Transaction costs

10bps per trade. Strategies that trade often are charged for it, which is where most paper edges disappear.

Buy-and-hold baseline

Every result is reported against simply holding the asset. A strategy that makes money but makes less than holding has not worked.

Medians, not means

Aggregates use medians across the universe. A single 900% crypto run can make a mean look like an edge when most assets lost.

Walk-forward validation

Models are trained only on data preceding the period they are scored on, with an embargo gap, so nothing is fitted on its own answers.

Untestable inputs stay out

News sentiment is shown as live context but excluded from backtests - there is no point-in-time archive, so testing it would measure the scraper, not the strategy.