Skip to content
All library documents

Why FX Tick Feeds Can Contain Multiple Updates per Millisecond

Article Quant Q&A · Author: skeetastax

Summary

The document asks whether separate foreign-exchange quote changes can share the same timestamp when data are recorded to millisecond precision. An answer based on an exchange-traded FX contract reports measuring intervals between top-of-book changes on a feed with microsecond timestamps. Many updates occurred within a millisecond, showing why reducing timestamps to milliseconds can assign identical times to distinct events. It also notes that providers may batch concurrent changes into one message.

A second answer explains that many FX quote streams combine liquidity from multiple providers and may represent different sizes or counterparties. A composite quote can therefore conceal the source and book size behind each update. The examples show that duplicate millisecond timestamps are plausible in fast markets, but the observations concern a particular exchange-traded contract and feed. They do not establish universal behavior across venues or data vendors; feed precision, aggregation, provider identity, and message conventions matter when interpreting or reconstructing tick sequences.

Key ideas

  • Distinct quote changes can occur within one millisecond and receive the same rounded timestamp.
  • The cited measurement used microsecond feed precision for an exchange-traded FX contract.
  • Data vendors may batch concurrent changes into a single message.
  • Composite FX streams can aggregate quotes from multiple liquidity providers and sizes.
  • Timestamp interpretation depends on the feed, venue, and aggregation method.

Tags

Full text
# Is there ever a case where there are multiple ticks (different prices) at the same tick timestamp in Forex?


# Is there ever a case where there are multiple ticks (different prices) at the same tick timestamp in Forex?












Say I'm receiving ticks for AUDUSD. The timestamp for Forex tick data seems to go down to a resolution of .001 second (milliseconds).

Example:

```
|        Datetime       |  Bid  |  Ask  |
+-----------------------+-------+-------+
|30.10.2011 21:40:55.288|1.07134|1.07077|
|30.10.2011 21:40:56.619|1.07133|1.07077|
|30.10.2011 21:40:57.224|1.07133|1.07077|
|30.10.2011 21:41:05.958|1.07132|1.07077|
|30.10.2011 21:41:06.077|1.0712 |1.07077|
```

It is possible, or does it ever happen, that there are two ticks (regardless of price) that happen at exactly the same time?

Example:

```
|        Datetime       |  Bid  |  Ask  |
+-----------------------+-------+-------+
|30.10.2011 21:40:55.288|1.07134|1.07077|
|30.10.2011 21:40:56.619|1.07133|1.07077|
|30.10.2011 21:40:57.224|1.07133|1.07077|
|30.10.2011 21:41:05.958|1.07132|1.07077|
|30.10.2011 21:41:06.077|1.0712 |1.07077|
|30.10.2011 21:41:06.077|1.07125|1.07076|   <--- duplicate tick millisecond timestamp: possible???
```

It is theoretically possible, but do Exchanges allow this and cater for it?

## Answer by Sergei Rodionov (score 1, accepted)

https://quant.stackexchange.com/a/61172

I ran a script to measure the timestamp delta between top-of-book change events on a quote feed for an exchange traded FX contract (~80000 trades per day). The feed itself provides microsecond precision.

- 7% of top of book changes were less than 10 microseconds apart.

- 46% of top of book changes were less than 1 millisecond apart.

As you can see from this example, the frequency of top of book changes on an exchange is quite high, so it's quite normal for these messages to have the same millisecond timestamp.

The data providers can compress the feed by batching multiple concurrent changes into one message.

## Answer by hroptatyr (score 1)

https://quant.stackexchange.com/a/61167

I would argue (millisecond-resolution aside) not only is it possible but common in FX. Unless you're trading with exactly one counterparty and preagreed sizes, most streams are composites of several liquidity providers and several sizes.

To elaborate: For example in Bloomberg by default you subscribe to the NY composite stream (CMPN), you could disentangle that by subscribung to `AUD CIFX Curncy` (for Citi FX), or if you're after a specific liquidity `AUD BGNE 5-10 Curncy` (for minimum sizes of AUD 5mn).

In your example you left out the liquidity provider and the book size, so it's hard to say what the actual problem is.

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.