Forex Signal Execution: Spread, Slippage and Session Timing
How to evaluate a forex signal when the quoted price, your fill, spread and session conditions are not identical.
A signal price is a reference
A provider publishes at one moment and a subscriber executes at another. The difference can come from message delay, spread widening, liquidity, order type or a news release. Keep publication time, receipt time and order time in the same log. A screenshot of a chart does not prove that every reader could trade its best tick.
If an entry is a range, decide how the range will be scored before the outcome. If it is a single price, ask whether it is a limit, a reference or a market instruction. Precision that cannot be interpreted consistently is not useful precision.
Spreads change by pair and session
Major pairs, crosses and exotics carry different liquidity assumptions. The same stop distance can represent a different practical burden when spread is wide. Note the pair, quote currency, session and whether a high-impact release was nearby.
Do not judge a provider by a pips headline alone. Record the stop, target, spread and position sizing rule so a reader can distinguish a market move from an execution result.
Updates need timestamps
Break-even moves, trailing stops and partial targets can improve a live workflow, but only if the update is recorded before the relevant price move. An edited message without an original timestamp is difficult to audit. A review should say whether it scored the initial plan or the later instruction.
That distinction matters when comparing a publisher's history with a reader's account. A clean archive preserves both.
Execution worksheet
- Pair, venue and session.
- Publication, receipt and order timestamps.
- Entry, stop, targets and every update.
- Observed spread and executable price.
- Risk in account currency before opening.
Use the worksheet across a meaningful sample. It turns a vague complaint about slippage into evidence that can guide a subscription decision.
Worked fill comparison (illustrative, not a provider result)
Suppose a long EUR/USD call names 1.1000 as its reference entry, 1.0980 as its stop and 1.1040 as its target. On that reference alone, the plan appears to risk 20 pips for 40 pips of upside, or 2R before costs. If the subscriber instead buys at an executable ask of 1.1003, the same fixed stop is now 23 pips away and the target only 37 pips away: about 1.61R before commission and financing. The three-pip difference is hypothetical, not an observed spread or a claim about any service.
For a long position, log the executable ask at entry and the bid that would close it. Use the actual broker's fill and fee schedule, not the publisher's chart midpoint. A limit order can cap the purchase price but may never fill; a market order prioritises execution but does not guarantee the displayed price. If the signal expires before a viable fill, mark it missed rather than backfilling the reference price.
Decision rule for a trial
Predefine a maximum delay and a maximum acceptable entry deterioration in pips for each pair. On every published call, log one of four outcomes: filled within rule, filled outside rule, missed, or not actionable because required terms were absent. Keep all four in the denominator. Compare your fill-based risk multiple with the publisher's reference-based multiple, and report the gap without relabelling one as the other.
The CFTC retail forex advisory explains the margin and dealer-side risks that a signal score cannot capture. Its warnings are a reason to inspect broker terms separately from the signal archive.
The observation can be timely without being executable
A fictional reader observes an instruction before its expiry and sees a chart level. No broker acceptance record exists. The source and observation clocks can be represented while execution remains unknown. A later candle reaching the target cannot supply the missing fill.
The bid/ask chapter compares coherent reference and actual-price ledgers. Keep the price-side convention and separately booked costs with any summary, particularly where spreads vary across the sampled period. A universal friction number is a sensitivity assumption, not a historical account record.