Market Microstructure: Order Flow and Price Formation
Module: Fintech AI | Difficulty: Advanced
Bid-Ask Spread
Price Impact (Kyle's Lambda)
Order Book Imbalance
Amihud Illiquidity
import numpy as np
class OrderBook:
def __init__(self):
self.bids = {} # price -> volume
self.asks = {}
def update(self, side, price, volume):
if side == 'bid':
self.bids[price] = volume
else:
self.asks[price] = volume
def best_bid(self):
return max(self.bids.keys()) if self.bids else None
def best_ask(self):
return min(self.asks.keys()) if self.asks else None
def spread(self):
return self.best_ask() - self.best_bid()
def imbalance(self):
bid_vol = sum(self.bids.values())
ask_vol = sum(self.asks.values())
return (bid_vol - ask_vol) / (bid_vol + ask_vol)
def microprice(self):
bid, ask = self.best_bid(), self.best_ask()
ask_vol = sum(self.asks.values())
bid_vol = sum(self.bids.values())
return (bid * ask_vol + ask * bid_vol) / (bid_vol + ask_vol)
Research Insight: Market microstructure reveals how prices are formed through the interaction of buyers and sellers. Order book imbalance predicts short-term price movements, while Kyle's lambda measures the permanent price impact of trades.