Skip to Content

Ngày 42 Python 365 ngày | Khám phá Order Book với API Binance

🐍 Ngày 42 Python 365 ngày | Khám phá Order Book với API Binance

Hôm nay, chúng ta sẽ cùng tìm hiểu Order Book là gì và cách lấy dữ liệu Order Book từ API Binance bằng Python.

📚 Order Book là gì?

Order Book (Sổ Lệnh) là nơi lưu trữ tất cả các lệnh mua và lệnh bán của một tài sản (ví dụ Bitcoin) trên sàn giao dịch, được sắp xếp theo thứ tự giá.

🔹 Cấu trúc:

  • Lệnh mua (Bid): Người mua đề nghị mua tài sản với một mức giá cụ thể.
  • Lệnh bán (Ask): Người bán đề nghị bán tài sản với một mức giá cụ thể.

✅ Khi giá mua cao nhất khớp với giá bán thấp nhất, giao dịch sẽ được thực hiện.

📈 Ví dụ Order Book BTC/USDT:

Giá mua (Bid)Khối lượng (BTC)Giá bán (Ask)Khối lượng (BTC)
93,0000.563,1000.3
92,9001.063,2000.4
92,8002.063,3000.6

🛠 Bài tập thực hành

Bước 1: Cài đặt thư viện

pip install python-binance

Bước 2: Kết nối API Binance và lấy Order Book

from binance import Client

# Thay bằng API Key và Secret Key của bạn
api_key = 'YOUR_API_KEY'
api_secret = 'YOUR_API_SECRET'

client = Client(api_key, api_secret)

# Lấy Order Book cho cặp BTCUSDT
order_book = client.get_order_book(symbol='BTCUSDT')

# In ra top 5 lệnh mua và bán
print("Top 5 lệnh mua (Bids):")
for bid in order_book['bids'][:5]:
    price, quantity = bid
    print(f"Giá: {price}, Khối lượng: {quantity}")

print("\nTop 5 lệnh bán (Asks):")
for ask in order_book['asks'][:5]:
    price, quantity = ask
    print(f"Giá: {price}, Khối lượng: {quantity}")

📺 Tham khảo thêm

🎯 Ghi chú

  • Dữ liệu Order Book có thể cập nhật cực kỳ nhanh theo thời gian thực.
  • Bạn có thể dùng WebSocket để theo dõi biến động trực tiếp của Order Book nếu muốn nâng cao.

/* Tối ưu font, khoảng cách và màu chủ đạo */ body { font-family: 'Inter', sans-serif; color: #2e3a59; } h1, h2, h3 { color: #2a7a4d; /* màu xanh giống Docusaurus */ font-weight: 700; } a { color: #2a7a4d; text-decoration: none; } a:hover { text-decoration: underline; } /* Bo tròn và đổ bóng cho khối nội dung */ .card, .oe_structure { border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.05); padding: 1.5rem; }