API sàn giao dịch crypto cho arbitrage: REST và WebSocket, rate limit và API key an toàn 01/10/2026 – Posted in: Arbitrage Software, cryptoarbitrage software
Kết nối API sàn giao dịch crypto cho arbitrage: REST, WebSocket, rate limit và độ trễ
Một cơ hội arbitrage chỉ tồn tại chừng nào bot của bạn còn nhìn thấy và kịp hành động. Cả hai điều đó phụ thuộc vào cách bạn kết nối với từng sàn. Hướng dẫn này giải thích những lựa chọn quyết định một khoảng chênh lệch giá sẽ thành lệnh khớp hay thành giao dịch bị bỏ lỡ: nên dùng loại API nào, rate limit hoạt động ra sao trên Binance, Bybit, OKX, MEXC và Gate.io, cách tạo API key an toàn, và từng mili giây bị tiêu tốn ở đâu.
Vì sao kết nối API quyết định kết quả arbitrage
Trên lý thuyết, arbitrage giữa các sàn trông rất đơn giản: mua ở nơi giá thấp hơn, bán ở nơi giá cao hơn, giữ lại phần chênh lệch sau khi trừ phí. Thực tế, khoảng chênh lệch thường chỉ tồn tại từ vài trăm mili giây đến vài phút, và toàn bộ giao dịch diễn ra qua API của sàn. Có ba yếu tố kỹ thuật quyết định bạn thực sự thu được bao nhiêu:
- Bạn thấy giá nhanh đến mức nào. Nếu báo giá đến muộn, khoảng chênh lệch bạn tính ra có thể đã biến mất.
- Lệnh của bạn đến sàn nhanh đến mức nào. Hai chân lệnh phải được khớp trên hai sàn; chân chậm hơn sẽ quyết định giá vào lệnh thực tế của bạn.
- Bạn được phép gửi request thường xuyên đến đâu. Rate limit giới hạn số lượng request. Bot chạm giới hạn sẽ bị chặn đúng vào lúc thị trường sôi động nhất và chênh lệch giá lớn nhất.
Không điều nào trong số này hiện ra khi backtest, vì vậy hai bot chạy cùng một chiến lược vẫn có thể cho kết quả rất khác nhau. Nếu bạn chưa đo khoảng chênh lệch giữa các sàn mình dùng, hãy bắt đầu với công cụ quét arbitrage crypto miễn phí của chúng tôi: nó cho thấy cặp giao dịch và sàn nào tạo ra chênh lệch giá đủ lớn để bù phí.
REST và WebSocket: mỗi loại phù hợp cho việc gì
Mọi sàn lớn đều cung cấp hai cách để giao tiếp.
REST API hoạt động theo kiểu request và response. Bot gửi một HTTP request đã ký (ví dụ “cho tôi sổ lệnh” hoặc “đặt lệnh này”) và chờ phản hồi. Mỗi request độc lập, dễ debug và đều bị tính vào rate limit.
WebSocket API giữ một kết nối luôn mở. Sau khi bạn đăng ký (subscribe) một kênh, sàn sẽ đẩy mọi cập nhật (thay đổi order book, giao dịch khớp, trạng thái lệnh của chính bạn) ngay khi chúng xảy ra. Không cần polling và không có khoảng “mù” giữa các lần kiểm tra.

| REST | WebSocket | |
|---|---|---|
| Dữ liệu thị trường | Ảnh chụp (snapshot) khi có request; bỏ lỡ các thay đổi giữa hai lần polling | Luồng cập nhật order book và giao dịch liên tục |
| Ứng dụng điển hình trong arbitrage | Arbitrage hedge (giữa các sàn) khi chênh lệch kéo dài từ vài giây trở lên; số dư; rút tiền | Arbitrage độ trễ (latency arbitrage) và mọi chiến lược có chênh lệch tồn tại dưới một giây |
| Áp lực rate limit | Cao: mỗi lần kiểm tra giá đều tốn weight | Thấp với dữ liệu: một subscription thay cho hàng nghìn request |
| Độ phức tạp | Thấp | Cao hơn: kết nối lại, số thứ tự (sequence number), duy trì order book cục bộ |
Phần lớn hệ thống chuyên nghiệp kết hợp cả hai: WebSocket cho dữ liệu thị trường và cập nhật lệnh, REST (hoặc endpoint giao dịch qua WebSocket của sàn, nếu có) để đặt lệnh, và REST cho các lệnh gọi quản trị chậm như số dư và chuyển tiền.
Đây cũng là khác biệt thực tế giữa hai bot crypto của chúng tôi. VIP Crypto Arbitrage kết nối qua REST tới hơn 35 sàn và được xây dựng cho arbitrage hedge giữa các sàn, nơi chênh lệch tồn tại đủ lâu. SharpTrader Pro dùng luồng WebSocket từ hơn 40 sàn, điều bắt buộc với arbitrage độ trễ, nơi cửa sổ cơ hội chỉ 100–500 ms.
Rate limit trên các sàn lớn
Rate limit là nguyên nhân phổ biến nhất khiến bot arbitrage ngừng hoạt động khi giao dịch thật. Mỗi sàn đếm request của bạn theo địa chỉ IP, theo tài khoản (UID) hoặc theo API key, và sẽ chặn hoặc ban bạn khi vượt hạn mức. Bảng dưới đây tóm tắt các quy định được công bố tại thời điểm viết bài (tháng 9/2026). Giới hạn thay đổi thường xuyên, vì vậy hãy luôn kiểm tra tài liệu của sàn và đọc các header giới hạn trong response thực tế.
| Sàn | Giới hạn REST chính | Điều gì xảy ra khi vượt giới hạn | Chi tiết hữu ích |
|---|---|---|---|
| Binance (Spot) | Request weight 6,000 mỗi phút cho mỗi IP; giới hạn số lượng lệnh riêng. Mỗi endpoint có weight riêng | HTTP 429; tiếp tục gửi sau 429 sẽ dẫn đến HTTP 418 và IP bị ban tự động từ 2 phút đến 3 ngày với trường hợp tái phạm | Header X-MBX-USED-WEIGHT-* và X-MBX-ORDER-COUNT-* cho biết mức sử dụng hiện tại; Retry-After cho biết cần chờ bao lâu |
| Bybit (V5) | 600 request mỗi 5 giây cho mỗi IP; giới hạn theo UID cho giao dịch, ví dụ tạo lệnh 20/s trên spot và 10/s trên hợp đồng linear | Giới hạn IP: HTTP 403 “access too frequent”, được gỡ sau khoảng 10 phút; giới hạn UID: retCode 10006 | Header X-Bapi-Limit, X-Bapi-Limit-Status, X-Bapi-Limit-Reset-Timestamp |
| OKX (V5) | Giới hạn được đặt theo từng endpoint và từng công cụ giao dịch, cấp VIP cao hơn được hạn mức lớn hơn | Response lỗi cho endpoint đó; lạm dụng lặp lại có thể khiến key bị hạn chế | Kênh order book: bbo-tbt (giá mua/bán tốt nhất, mỗi 10 ms), books5 (mỗi 100 ms), books (tăng dần, 100 ms); các kênh L2 tick-by-tick yêu cầu cấp VIP cao hơn |
| MEXC (Spot v3) | Các endpoint tính weight theo IP dùng chung 300 weight mỗi 10 giây; endpoint tính weight theo UID là 500 weight mỗi 10 giây | HTTP 429 kèm Retry-After; vi phạm lặp lại dẫn đến ban IP từ 2 phút đến 3 ngày |
WebSocket: tối đa 30 stream mỗi kết nối, 100 message mỗi giây; kết nối bị đóng sau 60 s không có traffic (hãy trả lời ping) |
| Gate.io (API v4) | Giới hạn theo từng key được công bố cho endpoint spot public và private, với giới hạn cao hơn nhiều cho việc hủy lệnh | Request gần ngưỡng burst bị làm chậm, request vượt ngưỡng bị từ chối | WebSocket: tối đa 300 kết nối mỗi IP |
Ba nguyên tắc giúp bot luôn nằm trong giới hạn:
- Lấy dữ liệu thị trường qua WebSocket, không qua REST. Một bot polling sổ lệnh của 20 cặp trên 5 sàn mỗi 200 ms sẽ gửi 500 request mỗi giây. Cùng lượng dữ liệu đó qua WebSocket chỉ tốn vài subscription.
- Đọc các header giới hạn và tự giảm tốc trước khi sàn buộc bạn làm vậy. Bot lùi lại khi dùng đến 80% hạn mức sẽ không bao giờ bị ban.
- Tách riêng lưu lượng. Dùng API key (hoặc tài khoản phụ) khác nhau cho từng bot, để một script chạy mất kiểm soát không thể làm chặn key giao dịch của bạn.
Tạo API key an toàn
Bot arbitrage cần quyền đọc số dư và đặt lệnh. Nó không bao giờ cần quyền rút tiền. Một key bị lộ nhưng không có quyền rút vẫn có thể gây lỗ qua các giao dịch xấu, nhưng không thể rút sạch tài khoản.
- Tạo một key cho mỗi sàn và mỗi bot, đặt tên theo bot và server.
- Chỉ bật quyền đọc và giao dịch spot/futures. Luôn tắt quyền rút tiền.
- Giới hạn key theo địa chỉ IP của VPS. Hầu hết các sàn hỗ trợ whitelist IP; key chỉ gắn với một IP sẽ vô dụng trên bất kỳ máy nào khác.
- Lưu secret ở dạng mã hóa trên server, không bao giờ để trong ảnh chụp màn hình, tin nhắn chat hay tài liệu chia sẻ.
- Thay key mới sau mỗi lần thay đổi nhân sự, chuyển server hoặc nghi ngờ bị lộ, và xóa những key không còn dùng.
- Với các chiến lược riêng biệt, hãy dùng tài khoản phụ (sub-account): chúng tách biệt số dư và rate limit.
Độ trễ đến từ đâu và cách giảm
Từ lúc giá thay đổi trên sàn đến lúc lệnh của bạn được khớp, thời gian bị tiêu tốn ở năm chặng: cập nhật thị trường truyền đến server của bạn, bot phát hiện chênh lệch, lệnh đã ký được gửi ngược lại, sàn khớp lệnh, và xác nhận được trả về. Với một bot được viết tốt, phần xử lý chỉ mất vài mili giây. Mạng thường chiếm phần lớn thời gian.

- Đặt bot gần sàn. Hầu hết các sàn lớn vận hành matching engine tại những vùng cloud cụ thể (nhiều sàn ở Tokyo, Singapore hoặc Hong Kong). Một VPS trong cùng vùng có thể giảm thời gian round-trip từ vài chục mili giây xuống còn vài mili giây. Hướng dẫn tốc độ VPS của chúng tôi giải thích cách đo.
- Với chiến lược nhiều sàn, hãy chọn vị trí giảm thiểu chân lệnh chậm hơn, chứ không phải mức trung bình: giao dịch chỉ nhanh bằng lần khớp chậm nhất của nó.
- Giữ kết nối luôn “nóng”. Tái sử dụng kết nối HTTPS (keep-alive) và ký trước những gì có thể; mở kết nối TLS mới cho mỗi lệnh sẽ thêm trọn một vòng round-trip.
- Đo lường liên tục. Ghi log timestamp của sàn cho mỗi cập nhật so với đồng hồ cục bộ (đồng bộ bằng NTP) và theo dõi độ “tuổi” của các báo giá mà bot dùng để giao dịch.
Giữ kết nối ổn định
Kết nối WebSocket sẽ bị rớt. Các sàn đóng stream không hoạt động, khởi động lại server và giới hạn thời gian sống của kết nối. Một bot vững vàng luôn tính trước điều này:
- Heartbeat: trả lời ping (MEXC đóng kết nối sau 60 giây không có traffic) và tự gửi ping nếu sàn yêu cầu.
- Kiểm tra sequence: các stream order book dạng tăng dần mang theo ID cập nhật. Nếu thiếu một ID, hãy bỏ sổ lệnh cục bộ và đồng bộ lại từ snapshot mới thay vì giao dịch trên một sổ lệnh đã sai lệch.
- Tự động kết nối lại có back-off: kết nối lại nhanh, nhưng không lặp liên tục; ví dụ Bybit giới hạn số kết nối mới trong mỗi khung 5 phút.
- Chống dữ liệu cũ: nếu không có cập nhật nào cho một cặp trong khoảng thời gian định sẵn, hãy ngừng giao dịch cặp đó cho đến khi stream hồi phục.
- Đối soát trạng thái lệnh: sau khi kết nối lại, truy vấn lệnh đang mở và vị thế qua REST trước khi đặt bất kỳ lệnh mới nào, để không bao giờ bỏ quên một lệnh hedge mới khớp một nửa.
- Theo dõi thông báo thay đổi API. Các sàn ngừng hỗ trợ endpoint và thay đổi giới hạn nhiều lần mỗi năm. Trình theo dõi thay đổi API sàn crypto của chúng tôi tổng hợp các thông báo này ở một nơi.
Checklist trước khi chạy thật
- Đã xác nhận chênh lệch giá trên các cặp của bạn bằng công cụ quét, sau khi trừ phí.
- Một API key cho mỗi sàn: chỉ giao dịch, tắt rút tiền, đã thiết lập whitelist IP.
- Dữ liệu thị trường qua WebSocket; lệnh gọi REST chỉ dùng cho lệnh và dữ liệu tài khoản.
- Đã ghi log các header rate limit; bot tự giảm tốc trước khi chạm 80% hạn mức.
- VPS đặt tại vùng giảm thiểu chân lệnh chậm nhất; đã đo thời gian round-trip.
- Các cơ chế kết nối lại, đồng bộ lại và chống dữ liệu cũ đã được kiểm thử bằng cách cố ý ngắt mạng.
- Lần chạy thật đầu tiên với khối lượng tối thiểu, sau đó so sánh giá khớp với giá mà bot đã thấy.
Để phần mềm lo phần hạ tầng kết nối
Quản lý kết nối, ký request, rate limit và kết nối lại đều đã được tích hợp sẵn trong các bot của chúng tôi. Hãy bắt đầu với công cụ quét miễn phí, sau đó chọn bot phù hợp với chiến lược của bạn.
Công cụ quét arbitrage crypto miễn phí So sánh các bot arbitrage crypto
Câu hỏi thường gặp
Tôi có cần WebSocket cho arbitrage crypto không?
Với arbitrage độ trễ thì có: cơ hội tồn tại chưa đến một giây và polling không thể phát hiện kịp. Với arbitrage hedge (giữa các sàn), nơi chênh lệch kéo dài vài giây hoặc vài phút, REST là đủ, nhưng WebSocket vẫn giúp giảm mức sử dụng rate limit.
Vì sao bot của tôi gặp lỗi HTTP 429 hoặc 418 trên Binance?
429 nghĩa là bạn đã vượt giới hạn request; 418 nghĩa là IP đã bị ban vì vẫn tiếp tục gửi request sau lỗi 429. Hãy chuyển dữ liệu thị trường sang WebSocket, tuân thủ header Retry-After và giảm tốc trước khi chạm giới hạn.
API key dùng cho arbitrage có nên cho phép rút tiền không?
Không. Quyền giao dịch và đọc là đủ. Việc cân bằng lại số dư giữa các sàn có thể làm thủ công hoặc qua một quy trình riêng, được giới hạn chặt chẽ.
Vị trí server nào tốt nhất cho arbitrage giữa nhiều sàn?
Vị trí giảm thiểu chân lệnh chậm nhất trong giao dịch của bạn. Hãy đo thời gian round-trip từ các vùng ứng viên đến API của từng sàn trước khi quyết định.
API của sàn thay đổi thường xuyên đến mức nào?
Nhiều lần mỗi năm ở mỗi sàn: endpoint mới, phiên bản bị ngừng hỗ trợ và giới hạn thay đổi. Hãy đăng ký nhận thông báo API của từng sàn và theo dõi trình theo dõi thay đổi API của chúng tôi.