介面限頻
為保障平台穩定與帳戶安全,OpenAPI 對每類介面都施加了配額。請在客戶端開發初期就按限頻規則設計,限額嚴格執行。
限頻規則
| 類別 | 限制 |
|---|---|
| 行情介面 | 每帳戶僅允許 1 條長連接,同時訂閱標的不超過 500 支;每秒調用不超過 10 次,並行請求不超過 5 個。 |
| 交易介面 | 每 30 秒內調用不超過 30 次,兩次調用之間的間隔不得少於 20 ms。 |
超限回應
達到限額時,伺服器返回 HTTP 429 Too Many Requests,並通過 Retry-After 回應標頭告知需要等待的秒數:
http
HTTP/1.1 429 Too Many Requests
Retry-After: 2
Content-Type: application/json
{ "code": 429001, "message": "rate limit exceeded" }重試策略
推薦使用指數退避(Exponential Backoff)策略處理限流:
python
import time
import requests
def safe_request(url, headers, data, max_retries=3):
for i in range(max_retries):
resp = requests.post(url, headers=headers, json=data)
if resp.status_code == 429:
wait = int(resp.headers.get('Retry-After', 2 ** i))
time.sleep(wait)
continue
return resp
raise Exception("max retries exceeded")最佳實踐
- 批量請求 — 把多個標的合併為一次調用,例如
code_list支持最多 400 個標的。 - 快取靜態數據 — 交易日曆、板塊列表等不常變化的數據應在本地快取。
- 監聽回應標頭 — 關注
X-RateLimit-Remaining回應標頭,提前預測限流。 - 錯峰調用 — 避免在開盤時段集中發送大量請求。