Skip to content
All library documents

Inferring Option Trade Direction from Trades and Quotes

Article Quant Q&A · Author: Marwin Steiner

Summary

The document asks how to classify the direction of option trades using tick-level trade and quote data. The proposed workflow is to align trade records with contemporaneous call and put quote panels by option symbol and timestamp, then compare each trade price with the quoted bid and ask. A trade at the ask may indicate buyer initiation, while one at the bid may indicate seller initiation; the question proposes using this inferred direction as input to a bivariate Hawkes process studying arrival intensities and implied volatility across the options smile.

The document provides no answer or validation, so the approach remains a proposal rather than an established method. Quote and trade timing alignment, trades inside the spread, stale quotes, and multi-leg or complex executions can make direction ambiguous. It contains no empirical results or accuracy estimates, and does not specify how to classify ambiguous observations or validate the inferred labels.

Key ideas

  • Trade direction can be approximated by comparing execution prices with contemporaneous bid and ask quotes.
  • Trade and quote records need to be aligned at the option-symbol and timestamp level.
  • The proposed directional labels would feed a Hawkes process analysis of trade arrivals and implied volatility.
  • Trades inside the spread and timing mismatches can make quote-based classification uncertain.
  • The document proposes a workflow but reports no validation or measured accuracy.

Tags

Full text
# How to identify trade direction from option market data feeds (polygon)


# How to identify trade direction from option market data feeds (polygon)












I have tick-level Trades and Quotes for all strikes and all expiries. I would like to know how to reliably identify trade direction. My data source is Polygon (now Massive). The Trades panel for a particular option symbol on a particular trading day looks like this:

The conditions column does not let you know whether they were buys or sells. Size is strictly positive. But I have a quote panel as well.

Would this work:

- Build contemporaneous call and put quote panel (which I already have)

- Check via nearest join on the OCC symbol which sip_timestamp matches between the contemporaneous call-put panel and an aggregated panel of all trades

- Verify if the trade price was on the bid or on the ask -> use this to infer trade direction?

I need the trade direction to inform a Bivariate Hawkes process to measure arrival intensities and their effect on implied vols across the smile.

Any tips/ideas would be appreciated.

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.