Product

Everything a backtest owes you

A single return figure is the least useful number in a backtest. These are the parts that decide whether an idea survives a real account — and every one of them is in every report, free tier included.


The input

One sentence is the whole interface

There is no strategy builder, no node graph, no parameters panel. You write what you would say out loud, and that is the strategy:

"Buy when the 20-day average crosses above the 50-day, sell when it crosses back."

A model turns that into a real backtesting.py strategy class. Moving averages, RSI, MACD, Bollinger bands, breakouts, momentum, mean reversion, stop losses and take-profits are all things you can simply name. If a phrase is ambiguous, the generated code shows you which reading it took — which is a far more useful answer than a validation error.

You can also dictate it. The microphone in the composer uses the browser's own speech API, so nothing is uploaded to transcribe it.

The report

Nine things you get back

Every run, every tier. Nothing here is held behind an upgrade.

Equity curve

Your account value across the whole window, with drawdown shaded underneath rather than exiled to a second chart. One picture, one story: what you made and what you had to sit through to make it.

Plain-language metrics

"Total change", "worst drop", "steadiness", "trades that won". The formal names are one hover away, but the label you read first is the one you already understand.

The full trade log

Every position: date in, date out, price in, price out, percentage and dollar result. A backtest you cannot audit line by line is a backtest you should not act on.

Monthly heatmap

Twelve columns, one row per year. It answers the question a headline return can't: was this steady, or was it one extraordinary quarter dragging four flat years behind it?

Stress tests

The same rules re-run through the February 2020 crash, the 2022 bear market and a long flat stretch. Plenty of strategies look excellent right up until one of those three.

The generated Python

Collapsed by default, one click away, copyable. Run it yourself, change it, or disagree with it. It is evidence rather than a feature.

Compare up to five

Put several versions of an idea on one chart. Runs are aligned on a shared calendar, so a shorter test can never win by accident — a real trap in most comparison tools.

Real costs, real fills

Commission comes out of every trade. Orders fill on the bar after your signal, never the one it fired on. Friction is where most paper strategies quietly die.

Saved strategies

Keep the ideas worth returning to and re-run them against a new window in one click. Your run history sits in the sidebar for as long as the session lasts.

Coverage

What you can point it at

MarketExamplesHistoryResolution
US stocks & ETFsAAPL, MSFT, NVDA, SPY, QQQBack to listing, often 20+ yearsDaily bars
Major indices^GSPC, ^IXIC, ^DJIDecadesDaily bars
CryptoBTC-USD, ETH-USD, SOL-USDFrom listingDaily bars
FXEURUSD=X, GBPUSD=X, USDJPY=XRoughly 20 yearsDaily bars
CommoditiesGC=F, CL=F, SI=FVaries by contractDaily bars
Daily bars only, for now. Intraday strategies — anything that depends on what happened between the open and the close — cannot be tested here yet. If that is your idea, this is the wrong tool today, and we would rather you knew that before signing up than after.
Honest comparison

Where this fits

There are good reasons to use something else. Here they are.

  AlphaBack Python by hand Charting platforms A spreadsheet
Time to first resultSecondsDays to weeksHours, plus a scripting languageHours, and it will be wrong
Needs codeNoYes, plus data plumbingYes — a proprietary oneFormulas, which is code wearing a hat
Shows its workingFull Python, every runYou wrote itUsually a black boxYes, painfully
Intraday dataNot yetIf you pay for itYesNo
Live tradingNo — deliberatelyIf you build itYes, via a brokerNo
Cost to startFree, no cardFree, minus your timeUsually a subscriptionFree

Stop guessing.
Start measuring.

Five free runs, no card, about five seconds each.