Source code for lobster_reconstructor.orders

from dataclasses import dataclass
from typing import Literal

[docs] @dataclass class Order: """ Represents a raw order event message from the limit order book data. Parameters ---------- timestamp : float Event timestamp, in seconds after midnight. event_type : {'submit', 'cancel', 'delete', 'vis_exec', 'hid_exec', 'cross', 'halt'} Type of order book event: - 'submit' : A new order submission. - 'cancel' : A partial cancellation of an existing order. - 'delete' : A complete removal of an existing order. - 'vis_exec' : Execution against visible liquidity. - 'hid_exec' : Execution against hidden liquidity. - 'cross' : Crossing event (buy/sell imbalance). - 'halt' : Trading halt event. order_id : int Unique identifier for the order. size : int Number of shares price : int Price level of the order (scaled to be an integer, e.g. x10000 for LOBSTER data). direction : {'bid', 'ask'} Side of the order book the order belongs to: - 'bid' : Buy side. - 'ask' : Sell side. """ timestamp: float event_type: Literal['submit', 'cancel', 'delete', 'vis_exec', 'hid_exec', 'cross', 'halt'] order_id: int size: int price: int direction: Literal['bid', 'ask']
[docs] @dataclass class LimitOrder: """ Represents a limit order in the order book. Unlike :class:`Order`, which is a raw message/event, a ``LimitOrder`` reflects the current resting state of an order in the book. Parameters ---------- timestamp : float Time when the order was added in seconds after midnight. order_id : int Unique identifier for the order. size : int Remaining visible quantity of the order. price : int Price level of the order (scaled to be an integer, e.g. x10000 for LOBSTER data). direction : {'bid', 'ask'} Side of the order book: - 'bid' : Buy order. - 'ask' : Sell order. """ timestamp: float order_id: int size: int price: int direction: Literal['bid', 'ask']