The Backtest Is the Stronger Instrument
Start by conceding the point properly, because the case for backtesting over journaling is genuinely good. A backtest runs on every bar in the sample. Your journal runs on the trades you happened to take, which for most traders is a few hundred decisions spread over a year, made in varying states of attention. One of those is a dataset. The other is an anecdote with timestamps.
The backtest is also cheaper, faster, and repeatable. You can test a parameter change in a minute without risking anything, and you can test the counterfactual - what the rules would have done in a regime you never traded through - which a log can never do, because a log only contains what happened. It has no recency bias and no memory of how a trade felt.
If the question is do these rules have an edge, the journal is the worse tool and it is not close.
And a Good One Answers More Than It Gets Credit For
The strong form of the objection goes further, and it deserves the stronger version rather than a straw man. A serious backtest is not a single equity curve. Run walk-forward analysis and you have tested whether the parameters survive out-of-sample rather than memorising the period. Run Monte Carlo on the trade sequence and you have a distribution of drawdowns instead of the single ordering history happened to deal you. Check the neighbourhood with grid search and you know whether the settings sit on a plateau or a spike.
A trader who has done all three has answered overfitting, sequence risk and parameter fragility. That is most of what people mean by validation, and it is a real answer. So the objection lands: if the rules are proven, what is a log for?
It Assumes an Operator Who Does Not Exist
Every backtest makes three assumptions about the person running the strategy, and it makes them silently because it has to. Each signal is taken. Each fill happens at the modelled price. Each position is exited when the rule says so and not before.
This is not a flaw. It is the entire point. A backtest isolates the rules by holding the operator constant, in the same way a lab holds temperature constant to measure something else. The result is a clean measurement of the rules and a deliberate silence about everything the operator does. The mistake is not in the backtest. It is in reading its output as a forecast of your account, when it is a measurement of a system with one component removed.
Put plainly: the backtest scores the rules. Something has to score the person executing them, and the backtest structurally cannot, because the person was assumed away before the first bar was processed.
Four Things That Happen Between the Signal and the Fill
The gap between the two records is not mysterious. It has components, and they behave differently from one another - which matters, because traders routinely attribute the whole gap to the smallest one.
| The backtest assumes | The operator does | What it costs |
|---|---|---|
| Every signal is taken | Passes on some - hesitation, distraction, a chart that "looked wrong" | The full expectancy of that trade, not a few ticks |
| Fills at the modelled price | Gets spread, slippage, partial fills, the occasional requote | A small, fairly constant tax per trade |
| Exits when the rule fires | Closes early on an adverse excursion that would have recovered | Truncated winners - the right tail the edge depends on |
| The rules hold for the whole trade | Moves a stop, averages into a loser, holds through the exit | Tail risk that appears in no model of the strategy |
Notice that only the second row is a market cost. The other three are decisions, and decisions leave no trace anywhere except in a record you make yourself. Your broker knows the fill price. It does not know the trade you did not place.
The Gap Has a Number
Because both records can be expressed in the same unit, the difference is measurable rather than rhetorical. Normalise both to R so position size does not distort the comparison, then take expectancy per trade from each side over the same period and the same strategy label.
Execution gap = backtest expectancy per trade (R) − realised expectancy per trade (R), over the same signals.
To make the shape concrete - and these are illustrative figures, not measurements from any account - a rule set that backtests at +0.24R per trade and logs at +0.09R has given up roughly 0.15R per trade to the operator. Over 200 trades at 1% risk that is a material fraction of the year, and none of it is visible in either record alone. The backtest still says +0.24R. The account statement says a number in dollars with no denominator.
Two honest caveats. A realised expectancy computed on a handful of trades is a number, not evidence - the same sample-size problem that applies to any strategy statistic applies here. And the comparison only means something if both sides cover the same signals; comparing a full-year backtest against three weeks of live trading measures the calendar, not the operator.
The Backtest Cannot Reconstruct the Log Either
The asymmetry runs both ways, which is the part that settles it. A backtest knows every signal its rules generated. It does not know which of those you saw, which you skipped, or why. Running the backtest over the same period will happily list forty signals where your account shows thirty-one, and it cannot tell you whether the nine missing ones were a data artefact, a platform outage, or you deciding at 09:41 that this one felt wrong.
That distinction is only recoverable from a record made at the time. Reconstructing it afterwards from the chart is the same failed move as reconstructing intent from a broker statement, which the previous post in this series covers - by the time you go looking, you know how the trade turned out, and hindsight rewrites the reason.
What This Does Not Mean
It does not mean backtests are theatre. The argument here is not that one record beats the other; it is that they measure different objects and neither is derivable from the other. Stop backtesting and you lose the only tool that can evaluate rules on data you never traded. Stop logging and you lose the only tool that can evaluate you.
It also does not mean a gap is proof you are the problem. A gap can come from a backtest modelling costs too optimistically, from a regime the sample never contained, or from a strategy whose edge was never real. Diagnosing which is a separate workflow, and this site already has it - backtest-to-live divergence walks through isolating the cause. This post is only making the prior claim: without both records, you have nothing to diagnose with.
And it does not re-open the attribution argument. Whether the blend of strategies in your account can be separated at all is the first post in this series; that question has to be settled before this one is even askable.
What SignalDeck Does Here, and What It Does Not
SignalDeck backtests strategies, including walk-forward, and it stores strategy labels and planned risk on logged trades, which is what makes an R-normalised comparison possible at all. That covers the inputs on both sides of the subtraction.
It does not close the loop, and two gaps are worth stating plainly because the argument above depends on them.
There is no dedicated record for a signal you passed on. The backtester has a no-trade concept internally, but nothing user-facing captures "this fired and I skipped it." Today that has to live in a journal entry or a tag, which works but is not structured enough to count against a signal list automatically.
And the execution gap is not computed for you. Both numbers exist in the product, on different screens, and putting them side by side is currently a manual comparison. If you want the figure this post describes, you work it out yourself.
Neither gap changes the argument - the two records still measure different things, and you still need both - but a post arguing you should measure something ought to say where the tooling stops.
Frequently Asked Questions
If my strategy is already validated, what does a journal add?
A validated backtest tells you the rules had an edge on the sample you tested. It does not tell you whether the account executed those rules. Every backtest holds the operator constant by assuming each signal is taken, filled at the modelled price, and exited when the rule says so. None of those three is reliably true of a human. The journal is the only record of the difference, and the difference is not a rounding error - it is where slippage, passed setups, early exits and overrides accumulate.
What is the difference between a backtest and a trading journal?
They measure different objects. A backtest measures a rule set against historical data, and its sample is every bar in the period. A journal measures one operator running that rule set, and its sample is only the decisions that person actually made. Because the objects differ, neither can be derived from the other. A backtest cannot tell you which signals you passed on, and a journal cannot tell you how the rules would have performed on data you never traded.
How do I measure my execution gap?
Compare the same quantity in both records, normalised to R so position size does not distort it. Take the expectancy per trade your backtest produced over the period, then take the realised expectancy per trade from your logged trades over the same period on the same strategy label. The difference is the execution gap. It is only meaningful if both sides cover the same signals and you have enough logged trades for the realised figure to mean anything - a handful of trades will produce a number, but not a reliable one.
Does slippage explain the whole gap?
Usually not, and assuming it does is the common mistake. Slippage and spread are the easiest components to measure, so they get blamed for a gap that is mostly behavioural. A passed signal costs the full expectancy of that trade, not a few ticks, and one skipped winner can outweigh a month of slippage. Separating the two requires knowing which signals fired and which you took, which is a record only you can make at the time.
How SignalDeck Compares
Both records in one place, versus tools that do one side well.
Related Articles
Diagnosing Backtest-to-Live Divergence
Once you have a gap, this is how you find its cause.
Why Journal Trades at All?
Series 1 - why net P&L cannot name the strategy that is losing.
Your Broker Statement Is Not a Trading Journal
Series 2 - the four fields a statement structurally cannot hold.
Walk-Forward Analysis
The out-of-sample test that makes a backtest worth comparing against.
Keep both records in one place
Backtest the rules, log the execution, and hold them in the same units. Free during beta - Pro is $30/mo and Elite $50/mo when billing launches.