Chart expectancy lies when fills are ignored. I learned that on pairs that looked clean on M1/M5 but quietly taxed every entry through slippage and spread. My execution journal exists to measure requested price versus fill, by pair and by session — then to demote anything that charts well and bleeds on costs.
I still care about setup quality. I just refuse to grade a strategy on mid prices I never received. A “+1.2R” trade that filled 0.3R worse on entry and exited into widened spread is not the backtest screenshot.
What I log on every scalp (fast fields at the desk):
1. Pair and session tag — e.g. XAUUSD / London open, EURUSD / overlap.
2. Requested entry (limit/stop level) versus actual fill.
3. Spread at click, and again at exit if it mattered.
4. Slippage in the direction that hurts: positive when fill is worse than requested.
5. Planned R multiple versus realized R after costs.
6. One word on liquidity feel: normal, thin, or news-adjacent.
I do not write essays in the moment. Those fields are enough to aggregate later.
Weekly, or every 20–30 trades, I sort by pair and session: average slippage; average spread paid; expectancy after costs — not fantasy expectancy from candle wicks. Win rate is secondary; cost-adjusted expectancy is the gate.
Demotion rules I actually use:
- If a pair/session shows positive chart logic but near-zero or negative expectancy after costs over a meaningful sample, it drops from the A-list. No structure-was-perfect override.
- If slippage clusters around London open on one major while gold stays acceptable on my feed, I keep gold and demote that major for that window.
- If a pair only “works” when I ignore fill quality, it is not an edge. It is a screenshot hobby.
What this changed: I stopped forcing GBPUSD scalps in thin mid-morning pockets where fills were late. I kept XAUUSD in London when structure and fill stats both cleared. I cut size or stood aside when spread at click failed the max gate — logged as a non-trade.
Common trap: optimizing chart entries while execution quality decays. Another: averaging “small” slippage until a month of tuition shows as a flat curve despite a decent win rate.
I also tag news-adjacent and rollover minutes separately. Those rows often explain outliers. Mixed into “normal London,” they either over-punish a good pair or under-punish a bad window.
Process score still matters — rule adherence, setup grade, emotional tag. Execution metrics sit beside them. A high process score on a demoted pair/session does not restore it until cost-adjusted expectancy recovers in live data.
If your journal is only wins, losses, and feelings, add requested versus fill, spread, and session. Compute expectancy after costs. Demote what bleeds. Promote what still pays once the broker’s reality is included. Scalping edge is what survives contact with the order book — not what looks tradable on a paused chart.
Execution journal: measuring slippage by pair and session
-
LondonScalper
- Posts: 965
- Joined: Sat Sep 05, 2026 7:54 am
Re: Execution journal: measuring slippage by pair and session
This is the journal most people skip because it’s boring — and it’s usually where the edge leaks.
I tag every fill with:
1. Pair + session window (Asia / London / overlap / NY)
2. Requested vs fill (slippage in points)
3. Spread at send + spread at fill
4. Order type (market / limit / stop)
Then weekly I rank pairs by all-in cost, not by winrate on the chart.
Rule that stuck: if a pair’s median slippage + spread eats more than ~25–30% of my average M-target on that setup, it gets demoted for that session — even if the chart “looks perfect.”
If you’re already logging by pair/session, what’s the worst offender on your desk lately (gold vs majors vs indices)?
I tag every fill with:
1. Pair + session window (Asia / London / overlap / NY)
2. Requested vs fill (slippage in points)
3. Spread at send + spread at fill
4. Order type (market / limit / stop)
Then weekly I rank pairs by all-in cost, not by winrate on the chart.
Rule that stuck: if a pair’s median slippage + spread eats more than ~25–30% of my average M-target on that setup, it gets demoted for that session — even if the chart “looks perfect.”
If you’re already logging by pair/session, what’s the worst offender on your desk lately (gold vs majors vs indices)?
-
PropScalpDesk
- Posts: 521
- Joined: Sat Sep 19, 2026 7:50 pm
Re: Execution journal: measuring slippage by pair and session
Execution journals are how I stop lying to myself with candle midpoints. Fast fields at the desk: pair/session tag, requested versus fill, spread at click, slippage that hurts, planned R versus realized R after costs, one word on liquidity feel. Essays wait for the weekly review.Fairman wrote:Chart expectancy lies when fills are ignored. I learned that on pairs that looked clean on M1/M5 but quietly taxed every entry through slippage and spread.
Aggregation is the point. Every 20–30 trades I sort by pair and session. Anything that looks +expectancy on charts and negative after costs gets demoted or moved to watch-only. London-open gold and quiet Asia majors rarely tell the same cost story.
I still care about setup quality. I just refuse “+1.2R” that filled 0.3R worse on entry and exited into a wide spread. That is not the backtest screenshot; that is tuition.
On funded books the same log protects trailing DD: death by a thousand small taxes still trips limits.
Which pair did your sheet demote first once you measured fills instead of candles?
Re: Execution journal: measuring slippage by pair and session
GBPJPY at the London open. Looked great on candles, the fills told a different story.
It’s Fairman 
-
Shadow Trader
- Posts: 5438
- Joined: Wed Sep 09, 2026 5:19 pm
Re: Execution journal: measuring slippage by pair and session
One thing the averages can hide is how lopsided slippage usually is. Most fills come in at or near the requested price, and a handful of bad ones carry most of the total.
Say 50 fills come out as 34 at zero, 10 at 0.3 pip, 4 at 1 pip and 2 at 4 pips. The mean is 15 pips divided by 50, or 0.3 pip a trade, while the median is zero.
The chart (illustration) shows that made up sample. The two worst fills supply 8 of the 15 pips, a little over half of the total, so a pair can look cheap on the median and expensive on the mean.
That makes it worth sorting by the worst few fills rather than only averaging. If both of the 4 pip fills sit in the first minute after the open or near a release, the fix is a timing rule rather than a demotion.
The other column worth adding is favourable slippage. If the log only records fills that hurt, there is no way to see whether the broker passes on price improvement at all or only the bad side.
Say 50 fills come out as 34 at zero, 10 at 0.3 pip, 4 at 1 pip and 2 at 4 pips. The mean is 15 pips divided by 50, or 0.3 pip a trade, while the median is zero.
The chart (illustration) shows that made up sample. The two worst fills supply 8 of the 15 pips, a little over half of the total, so a pair can look cheap on the median and expensive on the mean.
That makes it worth sorting by the worst few fills rather than only averaging. If both of the 4 pip fills sit in the first minute after the open or near a release, the fix is a timing rule rather than a demotion.
The other column worth adding is favourable slippage. If the log only records fills that hurt, there is no way to see whether the broker passes on price improvement at all or only the bad side.
-
FXS Prop Desk
- Posts: 1572
- Joined: Wed Oct 07, 2026 9:52 am
Re: Execution journal: measuring slippage by pair and session
Many traders keep pairs because the charts look clean, without checking whether the fills support the strategy.
Splitting slippage by order type within each session adds detail. Market entries during the London open might slip on GBPUSD but not on EURUSD, and that difference can decide which pair to trade in the first hour.
Splitting slippage by order type within each session adds detail. Market entries during the London open might slip on GBPUSD but not on EURUSD, and that difference can decide which pair to trade in the first hour.
FXS Official Team | The Idea Lab & Strategy
-
Shadow Trader
- Posts: 5438
- Joined: Wed Sep 09, 2026 5:19 pm
Re: Execution journal: measuring slippage by pair and session
Splitting by order type, as suggested above, raises a cost that limit orders hide. A limit entry never slips, but it does not always fill, and the trades it misses are not random.
Say a week has 40 limit entries, 30 fill and 10 do not. If the 30 filled trades average plus 0.1R, they made 3R. If the 10 misses would have averaged plus 0.8R, that is 8R the log never sees, because price touched near the level and left without trading there.
The fills that do happen also lean the wrong way. A resting order gets filled most easily when price is pushing through it, so the limit entries can be the ones that start against the trade straight away.
Logging each unfilled limit with what it would have made gives the other half of the comparison. Then market and limit entries can be ranked on the same footing, slippage on one side and missed winners on the other.
For GBPJPY at the London open in particular, it would be interesting to see whether limits there mostly fill on the bad trades. Has anyone compared the two order types on that pair and window?
Say a week has 40 limit entries, 30 fill and 10 do not. If the 30 filled trades average plus 0.1R, they made 3R. If the 10 misses would have averaged plus 0.8R, that is 8R the log never sees, because price touched near the level and left without trading there.
The fills that do happen also lean the wrong way. A resting order gets filled most easily when price is pushing through it, so the limit entries can be the ones that start against the trade straight away.
Logging each unfilled limit with what it would have made gives the other half of the comparison. Then market and limit entries can be ranked on the same footing, slippage on one side and missed winners on the other.
For GBPJPY at the London open in particular, it would be interesting to see whether limits there mostly fill on the bad trades. Has anyone compared the two order types on that pair and window?
-
Shadow Trader
- Posts: 5438
- Joined: Wed Sep 09, 2026 5:19 pm
Re: Execution journal: measuring slippage by pair and session
Backtests assume a fill price, and live trading delivers a different one. The gap between the two, accumulated across hundreds of scalps, can be the difference between a working strategy and a losing one. Measuring it requires records rather than impressions.
A useful fill log captures several fields for every order: the time the signal fired, the requested price, the bid and ask at that moment, the time of the fill, the fill price, and the exit equivalents. From these, slippage in pips, latency in milliseconds, and effective spread paid can be calculated and grouped by session, pair and news proximity.
This also separates two ideas often blurred together. A strategy edge is the average advantage of the signals themselves. An execution edge is the ability to capture that advantage in practice, through order type choice, broker quality, server location and timing. A modest signal edge with poor execution loses, while careful execution can preserve a thin edge.
Once measured, the average live slippage can be fed back into the backtest as a cost assumption, closing the loop between research and reality. Rising slippage over time may also signal a deteriorating broker relationship, worth noticing before it shows up as unexplained drawdown.
A useful fill log captures several fields for every order: the time the signal fired, the requested price, the bid and ask at that moment, the time of the fill, the fill price, and the exit equivalents. From these, slippage in pips, latency in milliseconds, and effective spread paid can be calculated and grouped by session, pair and news proximity.
This also separates two ideas often blurred together. A strategy edge is the average advantage of the signals themselves. An execution edge is the ability to capture that advantage in practice, through order type choice, broker quality, server location and timing. A modest signal edge with poor execution loses, while careful execution can preserve a thin edge.
Once measured, the average live slippage can be fed back into the backtest as a cost assumption, closing the loop between research and reality. Rising slippage over time may also signal a deteriorating broker relationship, worth noticing before it shows up as unexplained drawdown.