What backtesting actually is
A backtest replays a trading rule against historical market data and records what would have happened. You define the rule - say, "buy bitcoin whenever it drops 3% in a day, sell when it's up 3% from the buy" - and the backtest walks through years of past prices, placing those trades exactly as the rule says, and tallies the result.
The output is concrete: every trade it would have taken, the running account balance, and summary numbers like total return. It turns a vague hunch ("buying dips feels smart") into something you can actually inspect.
Why it matters
Most trading ideas sound reasonable and lose money. A backtest is the cheapest possible way to find that out - no capital at risk, results in seconds instead of months of live trading.
It also forces precision. To backtest a rule you have to state it exactly: which asset, what counts as a "dip," when exactly you sell. That act of pinning the idea down often exposes that you didn't really have a rule, just a feeling.
How a backtest is built
Under the hood every backtest does the same four things:
- Load historical price data (for example, daily Bitcoin candles from an exchange).
- Step through it one period at a time, so the rule only ever sees data it would have had in the moment - never the future.
- Apply the entry and exit rules, recording each simulated trade.
- Total up the results: final balance, return, number of trades, and so on.
Where backtests mislead
A backtest is only as honest as its assumptions. The classic ways one flatters a bad idea:
- Lookahead bias: the rule accidentally uses information it couldn't have known yet (like today's closing price to decide a trade earlier in the day).
- Overfitting: you tweak the rule until it fits the past perfectly - and it then fails on anything new, because you fit noise, not signal.
- Ignoring costs: real trading has fees and slippage; a backtest that skips them overstates returns.
- Survivorship and a kind market: a rule tested only on a bull run can look brilliant and fall apart the moment conditions change.
From idea to backtest, faster
Traditionally, backtesting meant writing code - loading data, looping over it, handling trades and edge cases. That barrier is why most people never test their ideas at all.
Premiss removes the coding step: you describe the idea in your own words and it writes the real Python backtest, runs it on years of real market data, and shows you the code, the trades, and the verified result. You still get a true backtest - you just don't have to build the machinery to get one.