Coinbase Pro API文檔
---
- Coinbase Pro API文檔
Coinbase Pro (現在稱為 Coinbase Advanced Trade) 提供了強大的應用程式編程接口 (API),允許開發者程序化地訪問其交易平台。對於希望構建自動化交易系統、進行大規模訂單管理或整合 Coinbase Pro 功能到現有應用中的交易者和開發者來說,理解 Coinbase Pro API 至關重要。 本文將為初學者詳細闡述 Coinbase Pro API 文檔,涵蓋基本概念、認證、主要端點、數據結構以及一些實用示例。
基礎概念
在深入研究 API 之前,了解幾個關鍵概念至關重要:
- **RESTful API:** Coinbase Pro API 遵循 REST (Representational State Transfer) 架構風格。這意味着它使用標準 HTTP 方法 (GET, POST, PUT, DELETE) 來訪問和操作資源。
- **API 密鑰:** 為了安全地訪問 API,你需要生成一對 API 密鑰:一個 API 密鑰 (API Key) 用於標識你的應用程式,另一個秘密密鑰 (Secret Key) 用於驗證你的請求。 務必妥善保管你的秘密密鑰,切勿泄露給他人。
- **認證:** 所有 API 請求都需要進行認證,通常通過在請求頭中使用簽名進行。簽名是使用你的秘密密鑰對請求參數進行加密的結果,確保請求的真實性。
- **速率限制:** 為了防止濫用和維護平台的穩定性,Coinbase Pro API 實施了速率限制。你需要了解這些限制,並在你的應用程式中進行處理,避免超過限制。 了解 速率限制 的重要性對於構建可靠的交易機械人至關重要。
- **數據格式:** Coinbase Pro API 主要使用 JSON (JavaScript Object Notation) 格式來傳輸數據。你需要熟悉 JSON 格式,以便解析 API 響應。
- **時間戳:** API 請求通常需要包含時間戳,以確保請求的及時性。時間戳必須是 UTC 時間,並且精確到秒。
認證流程
訪問 Coinbase Pro API 的第一步是進行認證。以下是認證的基本步驟:
1. **生成 API 密鑰:** 登錄你的 Coinbase Pro 賬戶,進入「設置」 -> 「API」。創建新的 API 密鑰,並選擇適當的權限。**務必**只授予你的應用程式所需的最小權限。 例如,如果你的應用程式只需要讀取市場數據,則不需要授予提款權限。 2. **獲取 API 密鑰和秘密密鑰:** 創建 API 密鑰後,你會獲得一個 API 密鑰和一個秘密密鑰。**秘密密鑰只會顯示一次,請務必妥善保存。** 3. **構建簽名:** 每次發送 API 請求時,你需要使用你的秘密密鑰構建一個簽名。簽名過程涉及以下步驟:
* 将请求的 HTTP 方法、URI、请求头和请求体按照特定顺序组合成一个字符串。 * 使用 HMAC-SHA256 算法和你的秘密密钥对该字符串进行加密。 * 将加密结果编码为 Base64 字符串,这就是你的签名。
4. **添加簽名到請求頭:** 將簽名添加到 API 請求的 `CB-ACCESS-SIGN` 請求頭中。同時,還需要添加 `CB-ACCESS-KEY` 請求頭,包含你的 API 密鑰。 5. **添加時間戳:** 添加 `CB-ACCESS-TIMESTAMP` 請求頭,包含當前 UTC 時間的時間戳(秒)。
以下是一個示例請求頭:
``` CB-ACCESS-KEY: YOUR_API_KEY CB-ACCESS-SIGN: YOUR_SIGNATURE CB-ACCESS-TIMESTAMP: 1678886400 ```
請參考 Coinbase Pro API 文檔 獲取更詳細的認證指南和代碼示例。
主要 API 端點
Coinbase Pro API 提供了多個端點,用於訪問不同的功能。以下是一些常用的端點:
**端點** | **描述** | **HTTP 方法** |
`/accounts` | 獲取賬戶信息 | GET |
`/accounts/{account_id}` | 獲取特定賬戶的信息 | GET |
`/accounts/{account_id}/orders` | 獲取賬戶的訂單列表 | GET |
`/orders` | 創建新的訂單 | POST |
`/orders/{order_id}` | 獲取特定訂單的信息 | GET |
`/orders/{order_id}/cancel` | 取消訂單 | POST |
`/products` | 獲取可交易的產品列表 | GET |
`/products/{product_id}/book` | 獲取訂單簿 | GET |
`/products/{product_id}/trades` | 獲取交易歷史 | GET |
`/products/{product_id}/candles` | 獲取蠟燭圖數據(K線圖) | GET |
`/time` | 獲取伺服器時間 | GET |
- **/accounts:** 用於獲取你的賬戶信息,包括可用餘額、總餘額等。
- **/orders:** 用於創建、獲取、修改和取消訂單。 這對於自動化交易策略至關重要,例如 網格交易。
- **/products:** 用於獲取可交易的產品列表,例如 BTC-USD、ETH-BTC 等。
- **/products/{product\_id}/book:** 用於獲取特定產品的訂單簿,包含買單和賣單信息。 訂單簿數據是進行 量價分析 的基礎。
- **/products/{product\_id}/trades:** 用於獲取特定產品的交易歷史,包含交易價格、數量和時間戳。
- **/products/{product\_id}/candles:** 用於獲取特定產品的蠟燭圖數據,用於 技術分析。
數據結構
Coinbase Pro API 響應通常包含複雜的 JSON 數據結構。理解這些數據結構對於正確解析 API 響應至關重要。以下是一些常見的數據結構:
- **Account:** 包含賬戶信息,例如 `id` (賬戶 ID), `name` (賬戶名稱), `currency` (貨幣類型), `balance` (餘額), `available` (可用餘額) 等。
- **Order:** 包含訂單信息,例如 `id` (訂單 ID), `product_id` (產品 ID), `side` (買入/賣出), `type` (訂單類型), `price` (價格), `size` (數量), `filled_size` (已成交數量), `status` (訂單狀態) 等。
- **Product:** 包含產品信息,例如 `id` (產品 ID), `name` (產品名稱), `base_url` (基礎 URL) 等。
- **Trade:** 包含交易信息,例如 `id` (交易 ID), `product_id` (產品 ID), `price` (價格), `size` (數量), `time` (交易時間) 等。
- **Candle:** 包含蠟燭圖數據,例如 `time` (時間戳), `low` (最低價), `high` (最高價), `open` (開盤價), `close` (收盤價), `volume` (交易量) 等。
實用示例 (Python)
以下是一個使用 Python 和 `requests` 庫獲取 BTC-USD 產品訂單簿的示例:
```python import requests import hmac import hashlib import time import base64
- 替換為你的 API 密鑰和秘密密鑰
api_key = "YOUR_API_KEY" secret_key = "YOUR_SECRET_KEY"
- 產品 ID
product_id = "BTC-USD"
- API 端點
endpoint = f"https://api.pro.coinbase.com/products/{product_id}/book"
- 獲取時間戳
timestamp = str(int(time.time()))
- 構建簽名
message = timestamp + "GET" + "/products/" + product_id + "/book" signature = hmac.new(secret_key.encode('utf-8'), message.encode('utf-8'), hashlib.sha256).hexdigest()
- 構建請求頭
headers = {
"CB-ACCESS-KEY": api_key, "CB-ACCESS-SIGN": signature, "CB-ACCESS-TIMESTAMP": timestamp
}
- 發送 API 請求
response = requests.get(endpoint, headers=headers)
- 檢查響應狀態碼
if response.status_code == 200:
# 解析 JSON 响应 data = response.json() # 打印订单簿数据 print(data)
else:
# 打印错误信息 print(f"Error: {response.status_code} - {response.text}")
```
- 注意:** 請務必替換 `YOUR_API_KEY` 和 `YOUR_SECRET_KEY` 為你的實際 API 密鑰和秘密密鑰。
進階主題
- **WebSockets:** Coinbase Pro 還提供了 WebSocket API,用於實時接收市場數據和訂單更新。 WebSocket API 比 REST API 更高效,適用於需要實時數據的應用程式。 了解 WebSocket API 的使用對於構建低延遲交易系統至關重要。
- **錯誤處理:** API 響應可能包含錯誤信息。你需要仔細處理這些錯誤,並採取適當的措施,例如重試請求或記錄錯誤日誌。
- **數據分析:** 使用 API 獲取的數據可以進行各種數據分析,例如 動量指標、布林帶 和 斐波那契回調,以幫助你做出更明智的交易決策。
- **交易策略:** 結合 API 和你的交易策略,你可以自動化你的交易流程,並提高交易效率。 例如,你可以使用 API 實現 追蹤止損 或 均值回歸 策略.
- **風險管理:** 在使用 API 進行自動化交易時,務必進行適當的風險管理,例如設置止損單和倉位大小限制。
總結
Coinbase Pro API 為開發者提供了一個強大的工具,用於構建各種加密貨幣交易應用程式。 通過理解 API 的基本概念、認證流程、主要端點和數據結構,你可以有效地利用 API 來實現你的交易目標。 記住,安全是至關重要的,務必妥善保管你的 API 密鑰,並遵循最佳安全實踐。
推薦的期貨交易平台
平台 | 期貨特點 | 註冊 |
---|---|---|
Binance Futures | 槓桿高達125倍,USDⓈ-M 合約 | 立即註冊 |
Bybit Futures | 永續反向合約 | 開始交易 |
BingX Futures | 跟單交易 | 加入BingX |
Bitget Futures | USDT 保證合約 | 開戶 |
BitMEX | 加密貨幣交易平台,槓桿高達100倍 | BitMEX |
加入社區
關注 Telegram 頻道 @strategybin 獲取更多信息。 最佳盈利平台 – 立即註冊.
參與我們的社區
關注 Telegram 頻道 @cryptofuturestrading 獲取分析、免費信號等更多信息!