In this question, suggestions on algorithms from Lee and Ready and Pan and Poteshman address ways to determine trade side without access to bid/ask quotes.
The streaming data I have access to yields data similar to the below:
timestamp mark bid ask last volume
1635113033622 4526.25 4526.25 4526.5 4526.25 2239
1635113034196 4526.50 4526.00 4526.25 4526.50 2241
Would it be reasonable to find the midpoint between bid and ask, then compare to last in the same row?
If last is ≥ midpoint, buyer initiated—else, seller initiated.
midpoint = (bid + ask) / 2
side = 'buyer' if last >= midpoint else 'seller'
Would there be an alternate way of inferring what side is being more aggressive?
Also, I'm unsure if the last price in the same row would be ideal to compare to bid/ask quotes, or should the comparison be made to last in prior row.
Any pointers are greatly appreciated.