Risk management is handled through liquidations. The current implementation uses direct liquidation orders rather than a separate insurance fund or ADL mechanism.
for position in account.positions:
if position.base_position != 0:
order = Order {
order_id: LIQUIDATION_ORDER_START + counter, // Bit 63 set
side: opposite(position.direction),
price: mark_price,
quantity: abs(base_position),
}
// On order placement
reserve_margin_for_order(account, market, price, quantity)
// On fill
release_margin_reservation(account, required_initial_margin(notional))