Behaviour and execution

Intent vs Execution

Most journals record what happened. Your statement also records what you meant to happen — the stop and target columns are a plan written down before the result. This compares them and prices the difference.

FreeNo signupNothing leaves your browser

The rarest thing in your statement

A trading journal records outcomes. Outcomes are easy: they are what happened. What almost nothing records is what you meant to happen, because intentions are usually not written down anywhere a machine can read them.

Except in one place. A MetaTrader export carries two columns most tools throw away on import: S/L and T/P. Those are decisions, fixed before the result was known. Sitting next to the actual exit price, they make a comparison that a P&L column alone can never support.

That is what this page does. Nothing here is a model or an inference — it is two numbers you set against one number the market delivered.

The three things it can see

Trades with no stop at all. A zero in that column means nothing was set. This is not a subtle finding, and it does not need statistics: either the level was there or it was not. The page also totals what the unprotected losing trades cost.

Exits worse than your own stop. If the price you exited at is further against you than the stop you set, the plan did not hold on that trade. Small slippage does not count — anything within 2% of the stop distance is execution noise, not a decision.

Winners that stopped short of their target. How far along the way to your own take-profit the winning trades actually got. A median reach well below 100% means your exits are consistently earlier than your intentions.

How the overrun is priced

Without knowing what a point is worth on your instrument, money would normally be impossible here. Ratios solve it:

overrun ratio = distance actually travelled against you ÷ distance to your stop
cost of the overrun = actual loss − (actual loss ÷ overrun ratio)

If a trade ran 1.8× past its stop, then holding the stop would have cost 1.8× less, and the difference comes straight out of the trade's own net result. No contract specification, no account currency, no assumptions about the symbol — just the trade's own arithmetic.

What this cannot see, and why saying so matters

A stop that was moved.

Your statement stores the final stop level, not the one you set at entry. If you widened a stop as the trade went against you and then exited at the new level, every number on this page will call that discipline.

That is the single most common way a trading plan gets broken, and it is invisible to any tool reading a closed statement — including this one. Tools that market themselves as discipline trackers rarely mention it.

So the honest reading of a clean result here is "the level held", not "I followed my plan". If you know you move stops, this page will not catch you, and no amount of squinting at it will change that. Catching it needs the stop recorded at the moment of entry, which means a journal capturing the trade as it opens rather than a file exported after it closes.

Two things that are not automatically mistakes

Exceeding a stop is not always a decision. Gaps over a weekend, news releases and thin liquidity jump straight over a level; the order fills where the market next trades, which can be far past where you asked. A handful of overruns on a file spanning months is ordinary. A steady pattern of them, particularly on liquid instruments in normal hours, is something else.

A winner that stopped short of target is not always impatience. Price may simply never have reached the level. The row is a count of what happened, and the interesting version is the median across many trades: if most of your winners consistently reach a third of the way and stop, the exits are yours, not the market's.

Which files work

MetaTrader 4 and MetaTrader 5 exports, because they keep the two columns. Most other broker formats drop the stop and target on export, and for those the page says so and stops rather than manufacturing a comparison out of the columns it does have.

Everything is read inside your browser. No upload, no account.

Frequently asked

All my trades show no stop. Is that a parsing error?

Check the export itself: if the S/L column is present but full of zeros, your stops were managed manually or by an EA rather than sitting on the server as orders. The file genuinely does not contain them, and this page reports that rather than guessing.

Are the money figures after costs?

Yes. The trade's net result — commission and swap already deducted — is what the ratio is applied to.

Why is 2% of the stop distance ignored?

Because filling a few points past a level is how orders work, not a lapse in discipline. The threshold keeps ordinary execution noise out of a figure that is meant to describe decisions.

This is the plan. What did you actually do?

A calculator tells you the size you should have taken. It cannot tell you the size you took at 2pm after two losers, or how often your stop moved once price went against you. Drop in a statement from MT4/MT5, a broker CSV or a crypto export and see the answer for your own last 90 trades.

Import my trades — free