Trading.Analytics (trading v0.1.0)

Market microstructure analytics for analyzing order book dynamics.

Summary

Functions

Analyzes order flow toxicity using various metrics.

Calculates order book imbalance.

Calculates comprehensive market microstructure metrics.

Calculates the mid price.

Calculates price impact for a given order size.

Calculates the bid-ask spread.

Calculates volume-weighted average price (VWAP) from trades.

Calculates the weighted mid price based on best bid/ask sizes.

Functions

calculate_flow_toxicity(recent_trades, book)

@spec calculate_flow_toxicity([map()], Trading.OrderBook.t()) :: map()

Analyzes order flow toxicity using various metrics.

calculate_imbalance(map)

@spec calculate_imbalance(map()) :: float()

Calculates order book imbalance.

calculate_metrics(book, opts \\ [])

@spec calculate_metrics(
  Trading.OrderBook.t(),
  keyword()
) :: map()

Calculates comprehensive market microstructure metrics.

calculate_mid_price(bid, ask)

@spec calculate_mid_price(float() | nil, float() | nil) :: float() | nil

Calculates the mid price.

calculate_price_impact(book, side, order_size)

@spec calculate_price_impact(Trading.OrderBook.t(), :buy | :sell, pos_integer()) :: %{
  price: float() | nil,
  cost: float() | nil,
  impact_bps: float() | nil
}

Calculates price impact for a given order size.

calculate_spread(bid, ask)

@spec calculate_spread(float() | nil, float() | nil) :: float() | nil

Calculates the bid-ask spread.

calculate_vwap(trades)

@spec calculate_vwap([map()]) :: float() | nil

Calculates volume-weighted average price (VWAP) from trades.

calculate_weighted_mid_price(book)

@spec calculate_weighted_mid_price(Trading.OrderBook.t()) :: float() | nil

Calculates the weighted mid price based on best bid/ask sizes.