A trader posts a screenshot of a clean EUR/USD sweep. On your terminal the same minute misses the old high by a fraction of a pip. It is possible for both screens to report their respective feeds accurately.
Spot forex is an OTC market with multiple sources of pricing. An ICT level therefore needs a data source, an executable quote side and a tolerance before it can be audited across brokers. The discrepancy offers a way to measure how sensitive your setup is to its data.
A cross-feed audit compares the classification of the same timed event on two identified feeds. Each feed should first be tested against its own reference extreme. A separate price-difference measurement compares the absolute quotes. These two questions can produce different results.
A repeatable comparison of broker price feeds
A persistent one-pip offset between feeds can leave their own-level sweep classifications identical. Conversely, nearly identical prices can disagree about a one-tick break. Portability of the setup depends on which differences alter an eligibility or exit decision. The raw average price gap alone cannot answer that question.
BIS research on dealer and customer trading in the spot market
Why the distinction matters for order flow
Small discrepancies can come from display rounding or different bar boundaries. First compare raw quotes around the alleged event and each source’s earlier reference. If clocks or coverage cannot be reconciled, preserve an unresolved case. Calling the other broker wrong without the underlying evidence leaves the original decision untested.
How to identify it on a chart
Align timestamps, instrument specifications and bid/ask convention. Rebuild the earlier high on each source using the same interval. Save the maximum subsequent quote on each, then calculate signed penetration against its own earlier reference. Document the tolerance for a genuine break and any missing quote intervals.
Feed A has an old high of 1.08734 and tests 1.08739. Feed B has an old high of 1.08743 and tests 1.08741. A penetrates by 0.5 pip while B falls short by 0.2. A trader executing on B who copies A’s precise prices can claim a sweep on a chart whose own level was never taken.
Separate absolute price disagreement from sweep disagreement
Set high references independently on feeds A and B. A’s high is 1.09142 and B’s is 1.09149. A sweep in this sheet requires a later bid strictly above that feed’s own high. The raw level difference before any test is already 0.7 pip.
| Observation | Evidence available | Classification |
|---|---|---|
| Both reach | A 1.09146, B 1.09154 | A +0.4 pip, B +0.5 pip |
| Only A crosses | A 1.09144, B 1.09148 | A +0.2 pip, B -0.1 pip |
| Exact touch on B | A 1.09147, B 1.09149 | A +0.5 pip, B zero |
| Neither crosses | A 1.09139, B 1.09146 | Both 0.3 pip short |
| Missing source | A 1.09156, B’s interval unavailable | A +1.4 pips, joint result unknown |
Both reach. Absolute quotes differ but the classification agrees. A portability study benefits more from recording this agreement than from forcing the two streams onto one averaged reference.
Only A crosses. This candidate passes a one-feed rule on A and fails a two-feed agreement screen. An order placed at B still requires B’s own executable quote, even if A supplied the analytical trigger.
Exact touch on B. Changing strict penetration to touch-or-cross changes B’s label. Record that policy difference before counting the two feeds as evidence of different institutional activity.
Neither crosses. Both sources produce the same signed gap from their own high even though their absolute prices remain different. The fixed offset itself has no effect on this particular decision.
Missing source. An ordinary negative on B would exclude the setup under a dual-confirmation rule. Missing coverage provides less information. Keep the uncertainty visible before calculating a disagreement rate.
Which cases survive a minimum half-pip penetration on both feeds?
Reapply the threshold to both signed columns. A positive print below the minimum becomes ineligible. The rule is stricter even on cases where both feeds originally agreed, so report the new eligible count separately.
How to trade the setup in a paper session
Declare the analytical feed and execution feed before the session. A two-feed-confirmation model requires timely evidence from both. A one-feed model can trade its own qualified event on the execution venue. Compare results without silently switching to the chart that best fits each historical outcome.
The charts use constructed five-minute bid candles. The two two feeds, one swing exercises below share a bracket order as a comparison point. Each shows when an ICT displacement clears a local swing, when a fair value gap becomes measurable and which later quote can fill it. All sample spreads, costs, outcomes and sizes belong to the hypothetical exercise.
What to do with constant offsets and unstable timestamps
A stable difference between two feeds can arise even when their price changes line up closely. For breakouts measured against each feed’s own earlier extreme, a constant additive shift cancels in the subtraction. For orders copied as absolute numbers between platforms, the same shift can materially alter a fill. Decide whether you are testing portability of an idea or replication of an exact order price.
A timestamp problem behaves differently. A high at the end of a five-minute interval on one server may appear in the next bar on another. The extreme prices can agree over ten minutes while their apparent short-term pivot formation differs. Rebuild the interval from UTC observations and check whether the timestamps label bar opens or closes before deciding that the feeds disagree about the market.
Use a boundary buffer as an explicit sensitivity experiment. Recalculate classifications after requiring a slightly larger penetration, keeping each source’s native price increment. Marginal disagreements may disappear along with many originally eligible signals. Report both changes. A filter that achieves complete agreement by rejecting nearly everything has limited value to a trader looking for usable opportunities.
In a real execution dispute, the broker order acknowledgement, deal history, symbol specification and matching executable quotes matter more than another broker’s screenshot. For training, preserve the two feeds to learn which setups travel well. A reader should be able to reconstruct an apparent sweep on the analytical feed and independently determine whether the execution feed ever offered the price required by the actual order.
EUR/USD worked example
Audit the same episode on another feed
Feed A marks its own reference at 1.10174. Feed B’s corresponding swing is 1.10182, an absolute difference of 0.8 pip. The chart shows only A’s candles. During the synchronized episode A reaches 1.10144 while B stops at 1.10185, 0.3 pip short of its own reference on the approach side. A’s price event is genuine under its feed definition.
The two-source confirmation rule therefore does not pass on this episode. A one-source baseline permits the local displacement through 1.10306 and the retracement to 1.10251 on feed A. The order below belongs solely to that baseline. A ledger comparing both policies assigns a zero-trade result to the dual-confirmation opportunity rather than copying A’s fill to B.
The shaded execution area forms when the 07:40 candle closes. The lines show requested order prices over bid candles. A buy limit needs an ask at or below the order price. The long closes on the bid. The illustrated prices are synthetic.
Read the entry from left to right
Begin with the marked sell-side reference at 1.10174. The five-minute candle beginning 07:25 extends to 1.10144. At its close there is evidence of a visit and a new local low. The price that will become the upper edge of the execution gap is still in the future. A reader practising this live can put an alert on the opposing pivot at 1.10306 and leave the order ticket empty until the remaining conditions arrive.
At the close of the 07:35 candle the bid stands at 1.10340. Compare that with the earlier pivot. A completed shift now supports an upward delivery hypothesis, but the proposed three-candle imbalance still requires its third candle. The first candle’s high is 1.10227. The third candle’s eventual low is 1.10275. Their separation is 4.8 pips and their midpoint is 1.10251. The earliest next-bar activation on this tape is 07:45.
The order buys on the ask and the chart shows bids. With spread fixed at 0.6 pip, an ask of 1.10251 corresponds to bid 1.10245. The returning bid reaches 1.10214 and its matching ask reaches 1.10220. The workbook assumes continuous movement between displayed quote observations, sufficient available size and an execution at the requested limit. The same logic applied to a real broker order would still need the deal record to establish an actual fill.
| Item | Price or calculation | Implication |
|---|---|---|
| Entry | 1.10251 | Resting long limit after completion of the execution gap |
| Protective exit | 1.10120 | 13.1 pips of original price risk |
| Objective | 1.10547 | 29.6 pips of potential gross reward |
| Gross risk:reward | 29.6 ÷ 13.1 = 2.26 | 1:2.26 |
| Net planned risk:reward | (29.6 − 0.5) ÷ (13.1 + 0.5) | 1:2.14 at assumed fills |
| First baseline exit | Target reached | +29.1 pips after the extra cost allowance |
Translate the chart into a position size
For a worked cash conversion, suppose the USD paper account assigns this candidate a maximum planned loss of $13.25. A standard lot of 100,000 base units on this USD-quoted pair changes by $10 for a one-pip move. One standard lot at the 13.1-pip stop distance plus 0.5 pip of estimated round-trip fees and other friction therefore exposes $136.00 at the modelled stop fill. The bid/ask condition already accounts for the stated spread.
Dividing the cash cap by that one-lot loss gives 0.0974 lots before volume rounding. With a permitted increment of one hundredth, rounding down gives 0.09 lot and $12.24 of planned downside. Check the conversion in reverse by multiplying size by loss per lot. A smaller order can make a wide structural stop affordable. It cannot supply missing room between entry and the intended liquidity destination, and a stop filled through its requested price can still exceed the estimate.
Reclassify one changed condition
Shift every quote and reference on B by the same two pips. Its absolute difference from A changes, yet its own signed penetration is still a 0.3-pip near miss. This invariance shows why a fixed price offset alone cannot diagnose disagreement in a rule that uses each feed’s own swing.
GBP/USD worked example
Audit the same episode on another feed
Feed A marks its own reference at 1.28606. Feed B’s corresponding swing is 1.28617, an absolute difference of 1.1 pip. The chart shows only A’s candles. During the synchronized episode A reaches 1.28627 while B stops at 1.28614, 0.3 pip short of its own reference on the approach side. A’s price event is genuine under its feed definition.
The two-source confirmation rule therefore does not pass on this episode. A one-source baseline permits the local displacement through 1.28512 and the retracement to 1.28551 on feed A. The order below belongs solely to that baseline. A ledger comparing both policies assigns a zero-trade result to the dual-confirmation opportunity rather than copying A’s fill to B.
The shaded execution area forms when the 07:35 candle closes. The lines show requested order prices over bid candles. A short exit is bought on the ask, 0.8 pip above the plotted bid in this model. The illustrated prices are synthetic.
Audit the sell order from the dealing side
The first local buy-side reference at 1.28606 has a different job from the swing whose closing break confirms the bearish move. Compare the observed high of 1.28627 with that first price, then inspect the later close at 1.28488 relative to the pivot at 1.28512. One comparison describes location and the other supplies direction. Combining them into a single retrospective arrow would hide the point at which the trader actually gained the new information.
A bearish fair value gap forms when the later high remains below the earlier low in the three-candle sequence. Here the low of the candle starting 07:25 is 1.28568. The high of the candle starting 07:35 is 1.28534. The middle of their 3.4-pip interval is 1.28551. The sell limit becomes available once the second boundary is known. On the returning candle the maximum bid is 1.28577, high enough for the paper limit under the stated fill convention.
A sell opens on the bid, but the position ends by buying on the ask. For an ask stop at 1.28644 the bid needs to reach only 1.28636 with the assumed 0.8-pip spread. An ask target at 1.28310 requires a bid at or below 1.28302. Marking the two bid equivalents before scoring the last candle prevents a visually attractive wick from becoming a profit that the executable side never offered.
| Item | Price or calculation | Implication |
|---|---|---|
| Entry | 1.28551 | Resting short limit after completion of the execution gap |
| Protective exit | 1.28644 | 9.3 pips of original price risk |
| Objective | 1.28310 | 24.1 pips of potential gross reward |
| Gross risk:reward | 24.1 ÷ 9.3 = 2.59 | 1:2.59 |
| Net planned risk:reward | (24.1 − 0.6) ÷ (9.3 + 0.6) | 1:2.37 at assumed fills |
| First baseline exit | Stop reached | -9.9 pips after the extra cost allowance |
Reconcile the terminal candle
The first deciding bar opens at 08:00 GMT. Its bid ranges from 1.28563 to 1.28676. Adding the model spread gives an ask range from 1.28571 to 1.28684. Follow the tape from the fill and stop at the first executable exit. Here the original bracket reaches its protective stop before the other terminal price. The closing body can finish away from that exit without changing the realised trade.
As a sensitivity check, leave the chosen fill sequence intact and increase extra round-trip costs by 0.5 pip. Possible net reward becomes 23.0 pips and possible downside becomes 10.4 pips, giving risk:reward of 1:2.21. This calculation isolates a change in charges. A different spread can alter whether the original sell or its buy-to-close orders were ever executable, which calls for a new quote-by-quote replay.
Reclassify one changed condition
Shift every quote and reference on B by the same two pips. Its absolute difference from A changes, yet its own signed penetration is still a 0.3-pip near miss. This invariance shows why a fixed price offset alone cannot diagnose disagreement in a rule that uses each feed’s own swing.
Compare a single-broker sweep with two-feed agreement
Take five independent practice records and apply two predeclared policies. A requires a sweep of the broker A reference. B requires a sweep of both brokers’ own references. In this exercise “yes” means the named condition occurs within the stated opportunity. A row can satisfy both conditions, satisfy one, fail both, or leave a condition unresolved. Score the evidence supplied before imagining how the rest of the chart might behave.
| Constructed observation | Policy A | Policy B |
|---|---|---|
| Both feeds show their own earlier high exceeded | yes | yes |
| Feed A crosses and B falls one point short | yes | no |
| Only B crosses its high | no | no |
| Both highs remain untouched | no | no |
| A crosses and B has missing interval coverage | yes | unknown |
Work through the disagreements
Both feeds show their own earlier high exceeded. The episode is portable under this strict crossing convention even when absolute prices differ.
Feed A crosses and B falls one point short. The single-feed rule is eligible while the agreement filter removes a marginal case.
Only B crosses its high. A is a shared requirement in this particular comparison. A B-only strategy would be a third policy.
Both highs remain untouched. A future move in the right direction supplies no missing earlier sweep.
A crosses and B has missing interval coverage. No confirmed B event and a confirmed B failure carry different evidential weight.
In these constructed observations, A gives 3 confirmed yes, 2 confirmed no and 0 unresolved. B gives 1 confirmed yes, 3 confirmed no and 1 unresolved. Among the 4 rows settled for both rules, they agree on 3 classifications. Agreement here concerns qualification under the stated definitions. No return series has been supplied for these five records, so the counts cannot estimate the profitability of either policy.
Resolve the missing evidence
Retrieve B’s original reference window and contemporaneous bid ticks for the disputed test. Until that information is available, the possible number of positive A classifications is 3 out of five. For B the corresponding count is 1 to 2. Preserving bounds stops an unresolved record from entering the journal as a known failure merely because obtaining the source data was inconvenient.
Applying the worksheet on a new session
Preserve precision from the source quote to the decision
Store the original quotation in its native increment. Five-decimal EUR/USD and GBP/USD examples express one tenth of a pip in their last digit. A rounding step made for a convenient label can turn a one-point miss into a touch or collapse two distinct highs onto a single price. Carry the raw numbers through the comparison and round only the final display value or the actual order as required by the venue.
Record the equality convention at every boundary. A rule admitting separation of at most one pip includes the exact one-pip case. A rule requiring a price beyond an old high excludes a print exactly on it. The same worksheet can quite correctly use both conventions, because constructing a candidate and confirming the next event are different operations. Audit equality cases first when two reviewers disagree despite using apparently identical charts.
Where a calculated midpoint falls between executable increments, distinguish the analytical midpoint from the order price. Document which direction the order rounds for a buy and for a sell. Then recompute potential risk, reward and fill eligibility from the actual order. This is often immaterial on a large move but can dominate a study built around marginal returns to tightly spaced levels.
Choose the source for the observation and for the order
Record the symbol, venue or broker, source timezone, quote convention and sampling interval for each input. A tick stream can contain last trades, bids and asks, or a subset of these. A candle’s high represents the maximum of whatever field constructed it. It follows that two apparently identical charts may answer different questions before any discretionary interpretation enters the picture.
For a multi-source test, define the permitted age and alignment of observations. A last quote can remain visible while another feed updates several times. Pairing both visible values as if they were simultaneous can manufacture a divergence. Store each quote’s original timestamp and reject or flag combinations outside the predeclared tolerance. The same discipline applies when comparing prior reference windows as well as the immediate signal.
Use the execution venue for actual fills. A separate analytical series can still be appropriate for choosing location or direction if the rule declares it. The order then has its own submission record, active lifetime, bid or ask trigger and terminal deal. Keeping those records separate lets you find a useful analytical signal even when the price printed on its source was never directly available to the broker account.
Keep a ledger of visits through the handoff
Once a reference qualifies, begin a simple event ledger at its activation time. Record the first approach, exact touch, first penetration and first completed close outside as separate events when the research question depends on them. Some will occur on the same bar and others on different days. A chart loaded only at the start of your own working session can lose the overnight portion of that ledger.
When a later event updates the status, keep the original price and add the new timestamp. Redrawing the old line to a nearby swing can turn a second visit into the apparent first touch of a different object. If you do want to study the newer swing, give it a new identifier and a formation time. The ledger then contains both the old reference’s history and the newer reference’s own possible first visit.
Use a final state for unresolved paths. If a missing candle could contain the first penetration, the next visible penetration is the first observed after coverage resumes. That description preserves what you know. A study specifically requiring the first actual visit since formation needs the missing interval or an uncertainty flag. Include the number of affected sessions beside any comparison of visit frequencies so readers can see how much history was available.
Interrogate the smallest reproducible disagreement
Find the case in your sample with the smallest absolute price difference that still changes one policy decision. Retrieve the two original reference extrema, the two later tests and all four timestamps. Recalculate signed penetration for each feed using raw precision. Next compare the chart labels as actually displayed on the trader’s screen.
If the difference disappears after aligning the timestamps, record a clock problem. If each feed remains internally consistent but the price classifications still differ, keep a genuine source-dependent case. If the apparent event exists only on rounded labels, record a presentation issue. Each diagnosis has a different repair. Separating these cases also prevents a single disputed wick from being presented as evidence that a strategy will, or will not, travel reliably between brokers.
Frequently asked questions
Which feed is the real market?
Each is a record of the specified source. Use the execution venue for claims about your actual order and declare the source used for the analytical hypothesis.
Should I average the two highs?
An average creates a synthetic reference. It can be studied, but it does not describe either broker’s actual historical high.
Does a data discrepancy prove manipulation?
A difference can arise through venue coverage, spread, timestamps or filtering. Public candles alone do not establish intent.
How should I handle a missing minute?
Keep the event unresolved on that feed unless another record from the same source restores the required evidence.
Can I test how much the discrepancy matters?
Measure decisions that change under predeclared tolerances and report the number of comparable observations alongside the disagreements.
Continue the chart exercise with the school’s guides to the London Kill Zone and the Judas Swing for session context. Use market structure shifts to locate the confirmation, fair value gaps to mark the return interval, and order blocks to relate the smaller trade to its larger price area.
