Spaces:
Runtime error
Runtime error
| """ABIDES-style order book wrapper built on SENTINEL matching engine.""" | |
| from __future__ import annotations | |
| from typing import List, Dict | |
| from ..market.order import Order, OrderSide, OrderType | |
| from ..market.order_book import OrderBook | |
| from ..market.trade import Trade | |
| class AbidesOrderBook: | |
| def __init__(self) -> None: | |
| self._book = OrderBook() | |
| def add_order(self, agent_id: str, side: OrderSide, order_type: OrderType, price: float, quantity: int) -> List[Trade]: | |
| order = Order(agent_id=agent_id, side=side, order_type=order_type, price=price, quantity=quantity) | |
| return self._book.add_order(order) | |
| def cancel_order(self, order_id: str) -> bool: | |
| return self._book.cancel_order(order_id) | |
| def get_depth(self, levels: int = 5) -> dict[str, list]: | |
| return self._book.get_depth(levels) | |
| def get_total_depth(self, levels: int = 5) -> int: | |
| return self._book.get_total_depth(levels) | |
| def get_levels(self, levels: int = 10) -> tuple[list[dict], list[dict]]: | |
| depth = self._book.get_depth(levels) | |
| return depth.get("bids", []), depth.get("asks", []) | |
| def bid_levels(self) -> list[dict]: | |
| return self.get_levels(10)[0] | |
| def ask_levels(self) -> list[dict]: | |
| return self.get_levels(10)[1] | |
| def get_depth(self, levels: int = 5) -> Dict[str, list]: | |
| return self._book.get_depth(levels) | |
| def get_total_depth(self, levels: int = 5) -> int: | |
| return self._book.get_total_depth(levels) | |
| def bid_levels(self) -> list: | |
| return self._book.get_depth(10)["bids"] | |
| def ask_levels(self) -> list: | |
| return self._book.get_depth(10)["asks"] | |
| def best_bid(self) -> float | None: | |
| return self._book.best_bid | |
| def best_ask(self) -> float | None: | |
| return self._book.best_ask | |
| def mid_price(self) -> float | None: | |
| return self._book.mid_price | |
| def spread(self) -> float | None: | |
| return self._book.spread | |