If you have L1 data of a given security, what is the best practice to interpret it to a list of transaction/trades? Or, can we actually do so?

Just FYI, it's not a project for school but a problem I encounter in my full-time job. I thought it would be pretty easy at my first glance but now I realize there should be some "best solution" to this specific question, at least I might be missing something here.

What I'm doing now is to calculate the bid/ask quantity change by each update in the L1 book as traded volume (with price as last traded price, of course).

Planning to make it an open-source repo on GitHub later, at least for students and new beginners in this industry.


Now I tend to think it's not possible to do so with Level 1 data.


1 Answer 1


The L1 data of order books is data of people willing to trade (in fact just orders and not trades). So you see the highest bid someone is willing to pay, the lowest ask which is offered and the corresponding offered sizes/lots to these prices.

Sometimes the last price and size of the last transaction ist provided in L1 as well but not necessarily.

The latter one could be used for estimating trade volume. But be aware that L1 book is not a good measure for traded volume for four main “actions” that can occur:

  1. matched demands, so performed trades and sinking sizes or higher sizes if the demand of the next shown price is higher.
  2. Higher sizes by higher demand but no trade.
  3. Lower sizes by lower demands but no trade.
  4. A mix of all the previous cases.

This shows, that calculating trades prices and trades volume from L1 data, as you already suspected in your edit, is not reliably possible as you cannot be sure to have real trades or may be amended or deleted orders or if a higher demand offsets the lowered size.

However as said above, depending on the data provider the last trade with its size could be provided. But even then you are just obtaining the information from the last trade. This could lead to miss data if many trades occur in the interval and only the last one is provided. So your calculated volume would be lower or equal the real traded volume.

  • $\begingroup$ Thanks very much. Exactly - I can only get an estimate for traded volume and it's impossible to work accurate number out without last traded price or volume. Unfortunately, we don't have what we need in the quote data stream. :( $\endgroup$ Commented Mar 21, 2019 at 21:23
  • $\begingroup$ Just FYI - we do have the data stored somewhere that I didn't know. Thanks again. :) $\endgroup$ Commented Mar 25, 2019 at 2:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.