tastytrade.dxfeed

For general dxfeed symbology, go to Formats, where you’ll find information on various kinds of formatting.

For options on futures symbology, go to CME Group and look at the ‘Specs’ section for the given futures symbol.

If you want to double-check you typed the symbol right, or want to troubleshoot a hanging request, go to dxfeed Symbol Lookup and type in the same symbol.

Event

pydantic model tastytrade.dxfeed.event.Event(*, eventSymbol: str, eventTime: int)

Base class for dxfeed events received from the data streamer.

Show JSON schema
{
   "title": "Event",
   "description": "Base class for dxfeed events received from the data streamer.",
   "type": "object",
   "properties": {
      "eventSymbol": {
         "title": "Eventsymbol",
         "type": "string"
      },
      "eventTime": {
         "title": "Eventtime",
         "type": "integer"
      }
   },
   "required": [
      "eventSymbol",
      "eventTime"
   ]
}

Fields:
Validators:
field event_symbol : str [Required] (alias 'eventSymbol')

symbol of this event

Validated by:
field event_time : int [Required] (alias 'eventTime')

time of this event

Validated by:
validator change_nan_to_none  »  all fields
classmethod from_stream(data: list[Any]) list[Self]

Makes a list of event objects from a list of raw trade data fetched by a DXFeedStreamer.

Parameters:
data: list[Any]

list of raw quote data from streamer

pydantic model tastytrade.dxfeed.event.IndexedEvent(*, eventSymbol: str, eventTime: int, eventFlags: int)

A dxfeed IndexedEvent with flags computed bitwise. For info see here.

Show JSON schema
{
   "title": "IndexedEvent",
   "description": "A dxfeed ``IndexedEvent`` with flags computed bitwise.\nFor info see `here <https://docs.dxfeed.com/dxfeed/api/com/dxfeed/event/IndexedEvent.html>`_.",
   "type": "object",
   "properties": {
      "eventSymbol": {
         "title": "Eventsymbol",
         "type": "string"
      },
      "eventTime": {
         "title": "Eventtime",
         "type": "integer"
      },
      "eventFlags": {
         "title": "Eventflags",
         "type": "integer"
      }
   },
   "required": [
      "eventSymbol",
      "eventTime",
      "eventFlags"
   ]
}

Fields:
Validators:

field event_flags : int [Required] (alias 'eventFlags')

flags for the event

Validated by:
property pending : bool

TX_PENDING is an indicator of pending transactional update. When txPending is true it means, that an ongoing transaction update that spans multiple events is in process. All events with txPending true shall be put into a separate pending list for each source id and should be processed later when an event for this source id with txPending false comes.

property remove : bool

REMOVE_EVENT is used to indicate that that the event with the corresponding index has to be removed.

property snapshot_begin : bool

SNAPSHOT_BEGIN is used to indicate when the loading of a snapshot starts. Snapshot load starts on new subscription and the first indexed event that arrives for each non-zero source id on new subscription may have snapshotBegin set to true. It means, that an ongoing snapshot consisting of multiple events is incoming. All events for this source id shall be put into a separate pending list for each source id.

property snapshot_end : bool

SNAPSHOT_END or SNAPSHOT_SNIP are used to indicate the end of a snapshot. The last event of a snapshot is marked with either snapshotEnd or snapshotSnip. At this time, all events from a pending list for the corresponding source can be processed, unless txPending is also set to true. In the later case, the processing shall be further delayed due to ongoing transaction.

The difference between snapshotEnd and snapshotSnip is the following: snapshotEnd indicates that the data source had sent all the data pertaining to the subscription for the corresponding indexed event, while snapshotSnip indicates that some limit on the amount of data was reached and while there still might be more data available, it will not be provided.

property snapshot_mode : bool

SNAPSHOT_MODE is used to instruct dxFeed to use snapshot mode. It is intended to be used only for publishing to activate (if not yet activated) snapshot mode. The difference from SNAPSHOT_BEGIN flag is that SNAPSHOT_MODE only switches on snapshot mode without starting snapshot synchronization protocol. When a snapshot is empty or consists of a single event, then the event can have both snapshotBegin and snapshotEnd or snapshotSnip flags. In case of an empty snapshot, removeEvent on this event is also set to true.

property snapshot_snip : bool

SNAPSHOT_END or SNAPSHOT_SNIP are used to indicate the end of a snapshot. The last event of a snapshot is marked with either snapshotEnd or snapshotSnip. At this time, all events from a pending list for the corresponding source can be processed, unless txPending is also set to true. In the later case, the processing shall be further delayed due to ongoing transaction.

The difference between snapshotEnd and snapshotSnip is the following: snapshotEnd indicates that the data source had sent all the data pertaining to the subscription for the corresponding indexed event, while snapshotSnip indicates that some limit on the amount of data was reached and while there still might be more data available, it will not be provided.

Candle

pydantic model tastytrade.dxfeed.candle.Candle(*, eventSymbol: str, eventTime: int, eventFlags: int, index: int, time: int, sequence: int, count: int, volume: Decimal | None = None, vwap: Decimal | None = None, bidVolume: Decimal | None = None, askVolume: Decimal | None = None, impVolatility: Decimal | None = None, openInterest: int | None = None, open: Annotated[Decimal, WrapValidator(func=zero_from_none, json_schema_input_type=PydanticUndefined)], high: Annotated[Decimal, WrapValidator(func=zero_from_none, json_schema_input_type=PydanticUndefined)], low: Annotated[Decimal, WrapValidator(func=zero_from_none, json_schema_input_type=PydanticUndefined)], close: Annotated[Decimal, WrapValidator(func=zero_from_none, json_schema_input_type=PydanticUndefined)])

Bases: IndexedEvent

A Candle event with open, high, low, close prices and other information for a specific period. Candles are build with a specified period using a specified price type with data taken from a specified exchange.

Show JSON schema
{
   "title": "Candle",
   "description": "A Candle event with open, high, low, close prices and other information\nfor a specific period. Candles are build with a specified period using a\nspecified price type with data taken from a specified exchange.",
   "type": "object",
   "properties": {
      "eventSymbol": {
         "title": "Eventsymbol",
         "type": "string"
      },
      "eventTime": {
         "title": "Eventtime",
         "type": "integer"
      },
      "eventFlags": {
         "title": "Eventflags",
         "type": "integer"
      },
      "index": {
         "title": "Index",
         "type": "integer"
      },
      "time": {
         "title": "Time",
         "type": "integer"
      },
      "sequence": {
         "title": "Sequence",
         "type": "integer"
      },
      "count": {
         "title": "Count",
         "type": "integer"
      },
      "volume": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Volume"
      },
      "vwap": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Vwap"
      },
      "bidVolume": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Bidvolume"
      },
      "askVolume": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Askvolume"
      },
      "impVolatility": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Impvolatility"
      },
      "openInterest": {
         "anyOf": [
            {
               "type": "integer"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Openinterest"
      },
      "open": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            }
         ],
         "title": "Open"
      },
      "high": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            }
         ],
         "title": "High"
      },
      "low": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            }
         ],
         "title": "Low"
      },
      "close": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            }
         ],
         "title": "Close"
      }
   },
   "required": [
      "eventSymbol",
      "eventTime",
      "eventFlags",
      "index",
      "time",
      "sequence",
      "count",
      "open",
      "high",
      "low",
      "close"
   ]
}

Fields:
Validators:

field ask_volume : Decimal | None = None (alias 'askVolume')

ask volume in the candle

Validated by:
field bid_volume : Decimal | None = None (alias 'bidVolume')

bid volume in the candle

Validated by:
field close : Annotated[Decimal, WrapValidator(func=zero_from_none, json_schema_input_type=PydanticUndefined)] [Required]

the last (close) price of the candle

Constraints:
  • func = <function zero_from_none at 0x76a00774f7e0>

  • json_schema_input_type = PydanticUndefined

Validated by:
field count : int [Required]

total number of events in the candle

Validated by:
field high : Annotated[Decimal, WrapValidator(func=zero_from_none, json_schema_input_type=PydanticUndefined)] [Required]

the maximal (high) price of the candle

Constraints:
  • func = <function zero_from_none at 0x76a00774f7e0>

  • json_schema_input_type = PydanticUndefined

Validated by:
field imp_volatility : Decimal | None = None (alias 'impVolatility')

implied volatility in the candle

Validated by:
field index : int [Required]

unique per-symbol index of this candle event

Validated by:
field low : Annotated[Decimal, WrapValidator(func=zero_from_none, json_schema_input_type=PydanticUndefined)] [Required]

the minimal (low) price of the candle

Constraints:
  • func = <function zero_from_none at 0x76a00774f7e0>

  • json_schema_input_type = PydanticUndefined

Validated by:
field open : Annotated[Decimal, WrapValidator(func=zero_from_none, json_schema_input_type=PydanticUndefined)] [Required]

the first (open) price of the candle

Constraints:
  • func = <function zero_from_none at 0x76a00774f7e0>

  • json_schema_input_type = PydanticUndefined

Validated by:
field open_interest : int | None = None (alias 'openInterest')

open interest in the candle

Validated by:
field sequence : int [Required]

sequence number of this event

Validated by:
field time : int [Required]

timestamp of the candle in milliseconds

Validated by:
field volume : Decimal | None = None

the total volume of the candle

Validated by:
field vwap : Decimal | None = None

volume-weighted average price

Validated by:
tastytrade.dxfeed.candle.zero_from_none(v: Any, handler: ValidatorFunctionWrapHandler, _: ValidationInfo) Decimal

Greeks

pydantic model tastytrade.dxfeed.greeks.Greeks(*, eventSymbol: str, eventTime: int, eventFlags: int, index: int, time: int, sequence: int, price: Decimal, volatility: Decimal, delta: Decimal, gamma: Decimal, theta: Decimal, rho: Decimal, vega: Decimal)

Bases: IndexedEvent

Greek ratios, or simply Greeks, are differential values that show how the price of an option depends on other market parameters: on the price of the underlying asset, its volatility, etc. Greeks are used to assess the risks of customer portfolios. Greeks are derivatives of the value of securities in different axes. If a derivative is very far from zero, then the portfolio has a risky sensitivity in this parameter.

Show JSON schema
{
   "title": "Greeks",
   "description": "Greek ratios, or simply Greeks, are differential values that show how the\nprice of an option depends on other market parameters: on the price of the\nunderlying asset, its volatility, etc. Greeks are used to assess the risks\nof customer portfolios. Greeks are derivatives of the value of securities\nin different axes. If a derivative is very far from zero, then the\nportfolio has a risky sensitivity in this parameter.",
   "type": "object",
   "properties": {
      "eventSymbol": {
         "title": "Eventsymbol",
         "type": "string"
      },
      "eventTime": {
         "title": "Eventtime",
         "type": "integer"
      },
      "eventFlags": {
         "title": "Eventflags",
         "type": "integer"
      },
      "index": {
         "title": "Index",
         "type": "integer"
      },
      "time": {
         "title": "Time",
         "type": "integer"
      },
      "sequence": {
         "title": "Sequence",
         "type": "integer"
      },
      "price": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            }
         ],
         "title": "Price"
      },
      "volatility": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            }
         ],
         "title": "Volatility"
      },
      "delta": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            }
         ],
         "title": "Delta"
      },
      "gamma": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            }
         ],
         "title": "Gamma"
      },
      "theta": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            }
         ],
         "title": "Theta"
      },
      "rho": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            }
         ],
         "title": "Rho"
      },
      "vega": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            }
         ],
         "title": "Vega"
      }
   },
   "required": [
      "eventSymbol",
      "eventTime",
      "eventFlags",
      "index",
      "time",
      "sequence",
      "price",
      "volatility",
      "delta",
      "gamma",
      "theta",
      "rho",
      "vega"
   ]
}

Fields:
Validators:

field delta : Decimal [Required]

option delta

Validated by:
field gamma : Decimal [Required]

option gamma

Validated by:
field index : int [Required]

unique per-symbol index of this event

Validated by:
field price : Decimal [Required]

option market price

Validated by:
field rho : Decimal [Required]

option rho

Validated by:
field sequence : int [Required]

sequence number to distinguish events that have the same time

Validated by:
field theta : Decimal [Required]

option theta

Validated by:
field time : int [Required]

timestamp of this event in milliseconds

Validated by:
field vega : Decimal [Required]

option vega

Validated by:
field volatility : Decimal [Required]

Black-Scholes implied volatility of the option

Validated by:

Profile

pydantic model tastytrade.dxfeed.profile.Profile(*, eventSymbol: str, eventTime: int, description: str, shortSaleRestriction: str, tradingStatus: str, haltStartTime: int, haltEndTime: int, exDividendDayId: int, statusReason: str | None = None, high52WeekPrice: Decimal | None = None, low52WeekPrice: Decimal | None = None, beta: Decimal | None = None, shares: Decimal | None = None, highLimitPrice: Decimal | None = None, lowLimitPrice: Decimal | None = None, earningsPerShare: Decimal | None = None, exDividendAmount: Decimal | None = None, dividendFrequency: Decimal | None = None, freeFloat: Decimal | None = None)

Bases: Event

A Profile event provides the security instrument description. It represents the most recent information that is available about the traded security on the market at any given moment of time.

Show JSON schema
{
   "title": "Profile",
   "description": "A Profile event provides the security instrument description. It\nrepresents the most recent information that is available about the\ntraded security on the market at any given moment of time.",
   "type": "object",
   "properties": {
      "eventSymbol": {
         "title": "Eventsymbol",
         "type": "string"
      },
      "eventTime": {
         "title": "Eventtime",
         "type": "integer"
      },
      "description": {
         "title": "Description",
         "type": "string"
      },
      "shortSaleRestriction": {
         "title": "Shortsalerestriction",
         "type": "string"
      },
      "tradingStatus": {
         "title": "Tradingstatus",
         "type": "string"
      },
      "haltStartTime": {
         "title": "Haltstarttime",
         "type": "integer"
      },
      "haltEndTime": {
         "title": "Haltendtime",
         "type": "integer"
      },
      "exDividendDayId": {
         "title": "Exdividenddayid",
         "type": "integer"
      },
      "statusReason": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Statusreason"
      },
      "high52WeekPrice": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "High52Weekprice"
      },
      "low52WeekPrice": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Low52Weekprice"
      },
      "beta": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Beta"
      },
      "shares": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Shares"
      },
      "highLimitPrice": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Highlimitprice"
      },
      "lowLimitPrice": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Lowlimitprice"
      },
      "earningsPerShare": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Earningspershare"
      },
      "exDividendAmount": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Exdividendamount"
      },
      "dividendFrequency": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Dividendfrequency"
      },
      "freeFloat": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Freefloat"
      }
   },
   "required": [
      "eventSymbol",
      "eventTime",
      "description",
      "shortSaleRestriction",
      "tradingStatus",
      "haltStartTime",
      "haltEndTime",
      "exDividendDayId"
   ]
}

Fields:
Validators:

field beta : Decimal | None = None

the correlation coefficient of the instrument to the S&P500 index

Validated by:
field description : str [Required]

description of the security instrument

Validated by:
field dividend_frequency : Decimal | None = None (alias 'dividendFrequency')

frequency of cash dividends payments per year (calculated)

Validated by:
field earnings_per_share : Decimal | None = None (alias 'earningsPerShare')

earnings per share

Validated by:
field ex_dividend_amount : Decimal | None = None (alias 'exDividendAmount')

the amount of the last paid dividend

Validated by:
field ex_dividend_day_id : int [Required] (alias 'exDividendDayId')

identifier of the ex-dividend date

Validated by:
field free_float : Decimal | None = None (alias 'freeFloat')

the number of shares that are available to the public for trade

Validated by:
field halt_end_time : int [Required] (alias 'haltEndTime')

ending time of the trading halt interval

Validated by:
field halt_start_time : int [Required] (alias 'haltStartTime')

starting time of the trading halt interval

Validated by:
field high_52_week_price : Decimal | None = None (alias 'high52WeekPrice')

maximal (high) price in last 52 weeks

Validated by:
field high_limit_price : Decimal | None = None (alias 'highLimitPrice')

maximal (high) allowed price

Validated by:
field low_52_week_price : Decimal | None = None (alias 'low52WeekPrice')

minimal (low) price in last 52 weeks

Validated by:
field low_limit_price : Decimal | None = None (alias 'lowLimitPrice')

minimal (low) allowed price

Validated by:
field shares : Decimal | None = None

shares outstanding

Validated by:
field short_sale_restriction : str [Required] (alias 'shortSaleRestriction')

short sale restriction of the security instrument possible values are ACTIVE | INACTIVE | UNDEFINED

Validated by:
field status_reason : str | None = None (alias 'statusReason')

description of the reason that trading was halted

Validated by:
field trading_status : str [Required] (alias 'tradingStatus')

trading status of the security instrument possible values are ACTIVE | HALTED | UNDEFINED

Validated by:

Quote

pydantic model tastytrade.dxfeed.quote.Quote(*, eventSymbol: str, eventTime: int, sequence: int, timeNanoPart: int, bidTime: int, bidExchangeCode: str, askTime: int, askExchangeCode: str, bidPrice: Decimal, askPrice: Decimal, bidSize: Decimal = Decimal('0'), askSize: Decimal = Decimal('0'))

Bases: Event

A Quote event is a snapshot of the best bid and ask prices, and other fields that change with each quote.

Show JSON schema
{
   "title": "Quote",
   "description": "A Quote event is a snapshot of the best bid and ask prices, and other\nfields that change with each quote.",
   "type": "object",
   "properties": {
      "eventSymbol": {
         "title": "Eventsymbol",
         "type": "string"
      },
      "eventTime": {
         "title": "Eventtime",
         "type": "integer"
      },
      "sequence": {
         "title": "Sequence",
         "type": "integer"
      },
      "timeNanoPart": {
         "title": "Timenanopart",
         "type": "integer"
      },
      "bidTime": {
         "title": "Bidtime",
         "type": "integer"
      },
      "bidExchangeCode": {
         "title": "Bidexchangecode",
         "type": "string"
      },
      "askTime": {
         "title": "Asktime",
         "type": "integer"
      },
      "askExchangeCode": {
         "title": "Askexchangecode",
         "type": "string"
      },
      "bidPrice": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            }
         ],
         "title": "Bidprice"
      },
      "askPrice": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            }
         ],
         "title": "Askprice"
      },
      "bidSize": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            }
         ],
         "default": "0",
         "title": "Bidsize"
      },
      "askSize": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            }
         ],
         "default": "0",
         "title": "Asksize"
      }
   },
   "required": [
      "eventSymbol",
      "eventTime",
      "sequence",
      "timeNanoPart",
      "bidTime",
      "bidExchangeCode",
      "askTime",
      "askExchangeCode",
      "bidPrice",
      "askPrice"
   ]
}

Fields:
Validators:

field ask_exchange_code : str [Required] (alias 'askExchangeCode')

ask exchange code

Validated by:
field ask_price : Decimal [Required] (alias 'askPrice')

ask price

Validated by:
field ask_size : Decimal = Decimal('0') (alias 'askSize')

ask size as integer number (rounded toward zero) or decimal for cryptocurrencies

Validated by:
field ask_time : int [Required] (alias 'askTime')

time of the last ask change

Validated by:
field bid_exchange_code : str [Required] (alias 'bidExchangeCode')

bid exchange code

Validated by:
field bid_price : Decimal [Required] (alias 'bidPrice')

bid price

Validated by:
field bid_size : Decimal = Decimal('0') (alias 'bidSize')

bid size as integer number (rounded toward zero) or decimal for cryptocurrencies

Validated by:
field bid_time : int [Required] (alias 'bidTime')

time of the last bid change

Validated by:
field sequence : int [Required]

sequence of this quote

Validated by:
field time_nano_part : int [Required] (alias 'timeNanoPart')

microseconds and nanoseconds part of time of the last bid or ask change

Validated by:
property micro_price : Decimal

Average of bid and ask price weighted by their sizes

property mid_price : Decimal

Halfway point between bid and ask prices

Summary

pydantic model tastytrade.dxfeed.summary.Summary(*, eventSymbol: str, eventTime: int, dayId: int, dayClosePriceType: str, prevDayId: int, prevDayClosePriceType: str, openInterest: int, dayOpenPrice: Decimal | None = None, dayHighPrice: Decimal | None = None, dayLowPrice: Decimal | None = None, dayClosePrice: Decimal | None = None, prevDayClosePrice: Decimal | None = None, prevDayVolume: Decimal | None = None)

Bases: Event

Summary is an information snapshot about the trading session including session highs, lows, etc. This record has two goals: Transmit OHLC values, and provide data for charting. OHLC is required for a daily chart, and if an exchange does not provide it, the charting services refer to the Summary event.

Before opening the bidding, the values are reset to N/A or NaN.

Show JSON schema
{
   "title": "Summary",
   "description": "Summary is an information snapshot about the trading session including\nsession highs, lows, etc. This record has two goals: Transmit OHLC\nvalues, and provide data for charting. OHLC is required for a daily chart,\nand if an exchange does not provide it, the charting services refer to the\nSummary event.\n\nBefore opening the bidding, the values are reset to N/A or NaN.",
   "type": "object",
   "properties": {
      "eventSymbol": {
         "title": "Eventsymbol",
         "type": "string"
      },
      "eventTime": {
         "title": "Eventtime",
         "type": "integer"
      },
      "dayId": {
         "title": "Dayid",
         "type": "integer"
      },
      "dayClosePriceType": {
         "title": "Dayclosepricetype",
         "type": "string"
      },
      "prevDayId": {
         "title": "Prevdayid",
         "type": "integer"
      },
      "prevDayClosePriceType": {
         "title": "Prevdayclosepricetype",
         "type": "string"
      },
      "openInterest": {
         "title": "Openinterest",
         "type": "integer"
      },
      "dayOpenPrice": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Dayopenprice"
      },
      "dayHighPrice": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Dayhighprice"
      },
      "dayLowPrice": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Daylowprice"
      },
      "dayClosePrice": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Daycloseprice"
      },
      "prevDayClosePrice": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Prevdaycloseprice"
      },
      "prevDayVolume": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Prevdayvolume"
      }
   },
   "required": [
      "eventSymbol",
      "eventTime",
      "dayId",
      "dayClosePriceType",
      "prevDayId",
      "prevDayClosePriceType",
      "openInterest"
   ]
}

Fields:
Validators:

field day_close_price : Decimal | None = None (alias 'dayClosePrice')

the last (close) price for the day

Validated by:
field day_close_price_type : str [Required] (alias 'dayClosePriceType')

the price type of the last (close) price for the day possible values are FINAL | INDICATIVE | PRELIMINARY | REGULAR

Validated by:
field day_high_price : Decimal | None = None (alias 'dayHighPrice')

the maximal (high) price for the day

Validated by:
field day_id : int [Required] (alias 'dayId')

identifier of the day that this summary represents

Validated by:
field day_low_price : Decimal | None = None (alias 'dayLowPrice')

the minimal (low) price for the day

Validated by:
field day_open_price : Decimal | None = None (alias 'dayOpenPrice')

the first (open) price for the day

Validated by:
field open_interest : int [Required] (alias 'openInterest')

open interest of the symbol as the number of open contracts

Validated by:
field prev_day_close_price : Decimal | None = None (alias 'prevDayClosePrice')

the last (close) price for the previous day

Validated by:
field prev_day_close_price_type : str [Required] (alias 'prevDayClosePriceType')

the price type of the last (close) price for the previous day possible values are FINAL | INDICATIVE | PRELIMINARY | REGULAR

Validated by:
field prev_day_id : int [Required] (alias 'prevDayId')

identifier of the previous day that this summary represents

Validated by:
field prev_day_volume : Decimal | None = None (alias 'prevDayVolume')

total volume traded for the previous day

Validated by:

TimeAndSale

pydantic model tastytrade.dxfeed.timeandsale.TimeAndSale(*, eventSymbol: str, eventTime: int, eventFlags: int, index: int, time: int, timeNanoPart: int, sequence: int, exchangeCode: str, price: Decimal, size: int, bidPrice: Decimal, askPrice: Decimal, exchangeSaleConditions: str, tradeThroughExempt: str, aggressorSide: str, spreadLeg: bool, extendedTradingHours: bool, validTick: bool, type: str, buyer: None, seller: None)

Bases: IndexedEvent

TimeAndSale event represents a trade or other market event with a price, like market open/close price. TimeAndSale events are intended to provide information about trades in a continuous-time slice (unlike Trade events which are supposed to provide snapshots about the most recent trade). TimeAndSale events have a unique index that can be used for later correction/cancellation processing.

Show JSON schema
{
   "title": "TimeAndSale",
   "description": "TimeAndSale event represents a trade or other market event with a price,\nlike market open/close price. TimeAndSale events are intended to provide\ninformation about trades in a continuous-time slice (unlike Trade events\nwhich are supposed to provide snapshots about the most recent trade).\nTimeAndSale events have a unique index that can be used for later\ncorrection/cancellation processing.",
   "type": "object",
   "properties": {
      "eventSymbol": {
         "title": "Eventsymbol",
         "type": "string"
      },
      "eventTime": {
         "title": "Eventtime",
         "type": "integer"
      },
      "eventFlags": {
         "title": "Eventflags",
         "type": "integer"
      },
      "index": {
         "title": "Index",
         "type": "integer"
      },
      "time": {
         "title": "Time",
         "type": "integer"
      },
      "timeNanoPart": {
         "title": "Timenanopart",
         "type": "integer"
      },
      "sequence": {
         "title": "Sequence",
         "type": "integer"
      },
      "exchangeCode": {
         "title": "Exchangecode",
         "type": "string"
      },
      "price": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            }
         ],
         "title": "Price"
      },
      "size": {
         "title": "Size",
         "type": "integer"
      },
      "bidPrice": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            }
         ],
         "title": "Bidprice"
      },
      "askPrice": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            }
         ],
         "title": "Askprice"
      },
      "exchangeSaleConditions": {
         "title": "Exchangesaleconditions",
         "type": "string"
      },
      "tradeThroughExempt": {
         "title": "Tradethroughexempt",
         "type": "string"
      },
      "aggressorSide": {
         "title": "Aggressorside",
         "type": "string"
      },
      "spreadLeg": {
         "title": "Spreadleg",
         "type": "boolean"
      },
      "extendedTradingHours": {
         "title": "Extendedtradinghours",
         "type": "boolean"
      },
      "validTick": {
         "title": "Validtick",
         "type": "boolean"
      },
      "type": {
         "title": "Type",
         "type": "string"
      },
      "buyer": {
         "title": "Buyer",
         "type": "null"
      },
      "seller": {
         "title": "Seller",
         "type": "null"
      }
   },
   "required": [
      "eventSymbol",
      "eventTime",
      "eventFlags",
      "index",
      "time",
      "timeNanoPart",
      "sequence",
      "exchangeCode",
      "price",
      "size",
      "bidPrice",
      "askPrice",
      "exchangeSaleConditions",
      "tradeThroughExempt",
      "aggressorSide",
      "spreadLeg",
      "extendedTradingHours",
      "validTick",
      "type",
      "buyer",
      "seller"
   ]
}

Fields:
Validators:

field aggressor_side : str [Required] (alias 'aggressorSide')

initiator of the trade

Validated by:
field ask_price : Decimal [Required] (alias 'askPrice')

the ask price on the market when this time and sale event occured

Validated by:
field bid_price : Decimal [Required] (alias 'bidPrice')

the bid price on the market when this time and sale event occured

Validated by:
field buyer : None [Required]

Undocumented; always None

Validated by:
field exchange_code : str [Required] (alias 'exchangeCode')

exchange code of this time and sale event

Validated by:
field exchange_sale_conditions : str [Required] (alias 'exchangeSaleConditions')

sale conditions provided for this event by data feed

Validated by:
field extended_trading_hours : bool [Required] (alias 'extendedTradingHours')

whether this transaction is completed during extended trading hours

Validated by:
field index : int [Required]

unique per-symbol index of this time and sale event

Validated by:
field price : Decimal [Required]

price of this time and sale event

Validated by:
field seller : None [Required]

Undocumented; always None

Validated by:
field sequence : int [Required]

sequence of this quote

Validated by:
field size : int [Required]

size of this time and sale event as integer number (rounded toward zero)

Validated by:
field spread_leg : bool [Required] (alias 'spreadLeg')

whether this transaction is a part of a multi-leg order

Validated by:
field time : int [Required]

timestamp of the original event

Validated by:
field time_nano_part : int [Required] (alias 'timeNanoPart')

microseconds and nanoseconds part of time of the last bid or ask change

Validated by:
field trade_through_exempt : str [Required] (alias 'tradeThroughExempt')

transaction is concluded by exempting from compliance with some rule

Validated by:
field type : str [Required]

type of event - 0: new, 1: correction, 2: cancellation

Validated by:
field valid_tick : bool [Required] (alias 'validTick')

normalized SaleCondition flag

Validated by:

TheoPrice

pydantic model tastytrade.dxfeed.theoprice.TheoPrice(*, eventSymbol: str, eventTime: int, eventFlags: int, index: int, time: int, sequence: int, price: Decimal, underlyingPrice: Decimal, delta: Decimal, gamma: Decimal, dividend: Decimal, interest: Decimal)

Bases: IndexedEvent

Theo price is a snapshot of the theoretical option price computation that is periodically performed by dxPrice model-free computation. dxFeed does not send recalculations for all options at the same time, so we provide you with a formula so you can perform calculations based on values from this event.

Show JSON schema
{
   "title": "TheoPrice",
   "description": "Theo price is a snapshot of the theoretical option price computation that\nis periodically performed by dxPrice model-free computation. dxFeed does\nnot send recalculations for all options at the same time, so we provide\nyou with a formula so you can perform calculations based on values from\nthis event.",
   "type": "object",
   "properties": {
      "eventSymbol": {
         "title": "Eventsymbol",
         "type": "string"
      },
      "eventTime": {
         "title": "Eventtime",
         "type": "integer"
      },
      "eventFlags": {
         "title": "Eventflags",
         "type": "integer"
      },
      "index": {
         "title": "Index",
         "type": "integer"
      },
      "time": {
         "title": "Time",
         "type": "integer"
      },
      "sequence": {
         "title": "Sequence",
         "type": "integer"
      },
      "price": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            }
         ],
         "title": "Price"
      },
      "underlyingPrice": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            }
         ],
         "title": "Underlyingprice"
      },
      "delta": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            }
         ],
         "title": "Delta"
      },
      "gamma": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            }
         ],
         "title": "Gamma"
      },
      "dividend": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            }
         ],
         "title": "Dividend"
      },
      "interest": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            }
         ],
         "title": "Interest"
      }
   },
   "required": [
      "eventSymbol",
      "eventTime",
      "eventFlags",
      "index",
      "time",
      "sequence",
      "price",
      "underlyingPrice",
      "delta",
      "gamma",
      "dividend",
      "interest"
   ]
}

Fields:
Validators:

field delta : Decimal [Required]

delta of the theoretical price

Validated by:
field dividend : Decimal [Required]

implied simple dividend return of the corresponding option series

Validated by:
field gamma : Decimal [Required]

gamma of the theoretical price

Validated by:
field index : int [Required]

unique per-symbol index of this event

Validated by:
field interest : Decimal [Required]

implied simple interest return of the corresponding option series

Validated by:
field price : Decimal [Required]

theoretical price

Validated by:
field sequence : int [Required]

sequence number to distinguish events that have the same time

Validated by:
field time : int [Required]

timestamp of this event in milliseconds

Validated by:
field underlying_price : Decimal [Required] (alias 'underlyingPrice')

underlying price at the time of theo price computation

Validated by:

Trade

pydantic model tastytrade.dxfeed.trade.Trade(*, eventSymbol: str, eventTime: int, time: int, timeNanoPart: int, sequence: int, exchangeCode: str, dayId: int, tickDirection: str, extendedTradingHours: bool, price: Decimal, change: Decimal | None = None, size: int | None = None, dayVolume: Decimal | None = None, dayTurnover: Decimal | None = None)

Bases: Event

A Trade event provides prices and the volume of the last transaction in regular trading hours, as well as the total amount per day in the number of securities and in their value. This event does not contain information about all transactions, but only about the last transaction for a single instrument.

Show JSON schema
{
   "title": "Trade",
   "description": "A Trade event provides prices and the volume of the last transaction in\nregular trading hours, as well as the total amount per day in the number\nof securities and in their value. This event does not contain information\nabout all transactions, but only about the last transaction for a single\ninstrument.",
   "type": "object",
   "properties": {
      "eventSymbol": {
         "title": "Eventsymbol",
         "type": "string"
      },
      "eventTime": {
         "title": "Eventtime",
         "type": "integer"
      },
      "time": {
         "title": "Time",
         "type": "integer"
      },
      "timeNanoPart": {
         "title": "Timenanopart",
         "type": "integer"
      },
      "sequence": {
         "title": "Sequence",
         "type": "integer"
      },
      "exchangeCode": {
         "title": "Exchangecode",
         "type": "string"
      },
      "dayId": {
         "title": "Dayid",
         "type": "integer"
      },
      "tickDirection": {
         "title": "Tickdirection",
         "type": "string"
      },
      "extendedTradingHours": {
         "title": "Extendedtradinghours",
         "type": "boolean"
      },
      "price": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            }
         ],
         "title": "Price"
      },
      "change": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Change"
      },
      "size": {
         "anyOf": [
            {
               "type": "integer"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Size"
      },
      "dayVolume": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Dayvolume"
      },
      "dayTurnover": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Dayturnover"
      }
   },
   "required": [
      "eventSymbol",
      "eventTime",
      "time",
      "timeNanoPart",
      "sequence",
      "exchangeCode",
      "dayId",
      "tickDirection",
      "extendedTradingHours",
      "price"
   ]
}

Fields:
Validators:

field change : Decimal | None = None

change of the last trade

Validated by:
field day_id : int [Required] (alias 'dayId')

identifier of the current trading day

Validated by:
field day_turnover : Decimal | None = None (alias 'dayTurnover')

total turnover traded for a day

Validated by:
field day_volume : Decimal | None = None (alias 'dayVolume')

total volume traded for a day as integer number (rounded toward zero)

Validated by:
field exchange_code : str [Required] (alias 'exchangeCode')

exchange code of the last trade

Validated by:
field extended_trading_hours : bool [Required] (alias 'extendedTradingHours')

whether the last trade was in extended trading hours

Validated by:
field price : Decimal [Required]

price of the last trade

Validated by:
field sequence : int [Required]

sequence of the last trade

Validated by:
field size : int | None = None

size of the last trade as integer number (rounded toward zero)

Validated by:
field tick_direction : str [Required] (alias 'tickDirection')

tick direction of the last trade possible values are DOWN | UNDEFINED | UP | ZERO | ZERO_DOWN | ZERO_UP

Validated by:
field time : int [Required]

time of the last trade

Validated by:
field time_nano_part : int [Required] (alias 'timeNanoPart')

microseconds and nanoseconds time part of the last trade

Validated by:

Underlying

pydantic model tastytrade.dxfeed.underlying.Underlying(*, eventSymbol: str, eventTime: int, eventFlags: int, index: int, time: int, sequence: int, volatility: Decimal, frontVolatility: Decimal, backVolatility: Decimal, callVolume: int, putVolume: int, optionVolume: int, putCallRatio: Decimal)

Bases: IndexedEvent

Underlying event is a snapshot of computed values that are available for an option underlying symbol based on the option prices on the market. It represents the most recent information that is available about the corresponding values on the market at any given moment of time.

Show JSON schema
{
   "title": "Underlying",
   "description": "Underlying event is a snapshot of computed values that are available for\nan option underlying symbol based on the option prices on the market. It\nrepresents the most recent information that is available about the\ncorresponding values on the market at any given moment of time.",
   "type": "object",
   "properties": {
      "eventSymbol": {
         "title": "Eventsymbol",
         "type": "string"
      },
      "eventTime": {
         "title": "Eventtime",
         "type": "integer"
      },
      "eventFlags": {
         "title": "Eventflags",
         "type": "integer"
      },
      "index": {
         "title": "Index",
         "type": "integer"
      },
      "time": {
         "title": "Time",
         "type": "integer"
      },
      "sequence": {
         "title": "Sequence",
         "type": "integer"
      },
      "volatility": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            }
         ],
         "title": "Volatility"
      },
      "frontVolatility": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            }
         ],
         "title": "Frontvolatility"
      },
      "backVolatility": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            }
         ],
         "title": "Backvolatility"
      },
      "callVolume": {
         "title": "Callvolume",
         "type": "integer"
      },
      "putVolume": {
         "title": "Putvolume",
         "type": "integer"
      },
      "optionVolume": {
         "title": "Optionvolume",
         "type": "integer"
      },
      "putCallRatio": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
               "type": "string"
            }
         ],
         "title": "Putcallratio"
      }
   },
   "required": [
      "eventSymbol",
      "eventTime",
      "eventFlags",
      "index",
      "time",
      "sequence",
      "volatility",
      "frontVolatility",
      "backVolatility",
      "callVolume",
      "putVolume",
      "optionVolume",
      "putCallRatio"
   ]
}

Fields:
Validators:

field back_volatility : Decimal [Required] (alias 'backVolatility')

back month implied volatility for the underlying using VIX methodology

Validated by:
field call_volume : int [Required] (alias 'callVolume')

call options traded volume for a day

Validated by:
field front_volatility : Decimal [Required] (alias 'frontVolatility')

front month implied volatility for the underlying using VIX methodology

Validated by:
field index : int [Required]

unique per-symbol index of this event

Validated by:
field option_volume : int [Required] (alias 'optionVolume')

options traded volume for a day

Validated by:
field put_call_ratio : Decimal [Required] (alias 'putCallRatio')

ratio of put options volume to call options volume for a day

Validated by:
field put_volume : int [Required] (alias 'putVolume')

put options traded volume for a day

Validated by:
field sequence : int [Required]

sequence number of this event to distinguish events with the same time

Validated by:
field time : int [Required]

timestamp of this event in milliseconds

Validated by:
field volatility : Decimal [Required]

30-day implied volatility for this underlying based on VIX methodology

Validated by: