· DOM & TAPE

Why the tape prints the same price many times in a row

The tape repeats a price because each trade prints as its own row and price holds until the resting size there is gone. A 40-second ES run shows the count.

SHORT ANSWER

The tape prints the same price many times because each trade is its own row, and price cannot move until the resting orders at the best bid or offer are filled or cancelled. Dozens of small trades can fill at a deep level before it clears. One large order that fills against several resting orders also prints several rows at one price.

The tape prints the same price many times in a row because each trade is its own row, and price cannot move until the best bid or offer is empty. The tape is the time and sales window, which lists every trade in one instrument as it happens. A run of identical prices means traders kept trading against one resting level. This note counts one such run in ES and shows what the repeats measure. The note on time and sales explained with a sequence of prints covers the columns of the window.

How price moves one tick

Price on the tape moves when the best offer or the best bid empties. Take the offer side. Sellers rest limit orders at the best offer. Buyers who send market orders fill against those resting orders. While any size rests at that price, every buy prints there. The offer clears only when buyers fill the last contract or the sellers cancel what is left. The next buy then prints one tick higher.

So the length of a run of identical prices depends on two things. One is how much size rested at the level. The other is how many contracts each buyer took.

Why one price prints many rows

Three things add rows at one price.

  1. Many traders send small orders. Each order that trades prints at least one row.
  2. One large order meets several resting orders. CME fills resting orders at a price in time order for most futures, so a 60-lot that meets three resting sell orders of 20 can print three rows at one timestamp.
  3. Sellers add to the offer while it trades. New sell orders join the back of the queue, so the level lasts longer than its starting size suggests.

Some platforms combine rows that share a time, price and side, which changes the row count for the same trades. Check that setting before you count.

Forty seconds at one ES offer

Here is an invented run at the 5,050.25 offer in the E-mini S&P 500 future, ES. The offer starts with 380 contracts. All numbers are an example.

SecondsPrints at 5,050.25Contracts boughtSell orders addedContracts cancelledLeft at the offer
0 to 10970300340
10 to 2061502040170
20 to 308904020100
30 to 403100000

The tape shows 26 prints in a row at 5,050.25. The next buy prints at 5,050.50.

Reading the run

Buyers took 410 contracts at 5,050.25 over the 40 seconds. That is 30 contracts more than the 380 that rested at the start. Sellers added 90 contracts during the run, and other sellers cancelled 60. The 26 prints average about 16 contracts each.

The second window holds 6 prints for 150 contracts. Three of those rows share one millisecond and add up to 60. That may be one 60-lot market order that met three resting sell orders. The tape cannot confirm it, because rows from two orders sent in the same millisecond look the same.

The last window has only 3 prints, but they total 100 contracts. Those 3 prints filled more contracts than the 9 prints of the first window. Counting rows alone would miss that. Add the sizes as well.

What the repeats measure, and what they do not

A run of 26 prints at one price counts the trades that filled at the level before it cleared. The sum of their sizes measures how many contracts traded there. Neither number tells you who traded or why.

The tape has no data for the two middle columns of the table. The 90 contracts added and the 60 cancelled come from the DOM, not the tape. Without the DOM you would see 410 contracts traded at a level that showed 380, with no way to account for the difference. The note on full depth replay and why it needs recorded data shows the same split between trades and book updates at one price.

Where to watch both

Sierra Chart lists Time and Sales next to its Trade DOM, so you can watch the run and the resting size together. Jigsaw lists Depth & Sales and a Reconstructed Tape. The glossary defines the best offer, the aggressor and the other terms used here.

A check you can run

Pick the best offer during a quiet minute and write down its size on the DOM. Count the prints at that price until the next print comes one tick higher. Add up their sizes. Subtract the starting size. The result is the size sellers added minus the size they cancelled while the level traded.

Questions

Why does time and sales show the same price over and over?

Each trade prints as its own row, and the best offer or bid stays at one price until its resting orders are filled or cancelled. Dozens of trades can fill at a level with 400 contracts before price moves.

Does one row on the tape equal one order?

Not always. One market order that fills against several resting orders can print one row per resting order. Many small orders from different traders also print one row each.

How do you know when a price level has cleared?

The next print at the same side comes one tick further on. In the example here, the first print at 5,050.50 came right after the offer at 5,050.25 traded its last contracts.

Can the tape show how many contracts were added to a level?

No. The tape lists trades only. To see sell orders joining or leaving the offer, you need the DOM or a heatmap beside the tape.

Educational content about market data and charting software. It is not trading or investment advice. Trading involves risk.

MORE NOTES