Signal 2 — Bid-Ask Depth Ratio (BADR)
| Thuộc tính | Giá trị |
|---|---|
| Phân loại | Liquidity Analysis |
| Khung thời gian | 5–30 phút |
| Paper gốc | Kyle (1985); Avellaneda-Stoikov (2008) |
| Loại dữ liệu | Level-2 order book |
| Hướng giao dịch | Mean Reversion |
| Capacity | Trung bình |
Logic. BADR so sánh depth phía bid với phía ask trong các level gần mid-price (weight giảm theo khoảng cách). BADR > 1.3 → áp lực mua mạnh, giá thường overshoot up rồi điều chỉnh → SELL. BADR < 0.7 → BUY. Exit khi BADR về vùng [0.9, 1.1].
Công thức.BADR = Σ(V_bid_i × W_i) / Σ(V_ask_i × W_i)W_i = 1 / (1 + |price_i − mid|)
Code Python.
python
def calculate_badr(order_book, levels=10):
"""order_book: dict với 'bids' và 'asks' = list of (price, volume)."""
mid = (order_book['bids'][0][0] + order_book['asks'][0][0]) / 2
bid_sum = sum(
v * (1.0 / (1.0 + abs(p - mid)))
for p, v in order_book['bids'][:levels]
)
ask_sum = sum(
v * (1.0 / (1.0 + abs(p - mid)))
for p, v in order_book['asks'][:levels]
)
return bid_sum / ask_sum if ask_sum > 0 else np.nanQuantConnect setup. QC hỗ trợ Level-2 qua AddData[OrderBook] cho crypto/forex; với equity cần custom feed. Snapshot order book mỗi 5 giây, tính BADR rolling mean 30 phút để xác nhận persistence trước khi entry. Bracket order với target = mid-revert, stop = 2× ATR(15m).