Coinbase Pro API文檔

出自cryptofutures.trading
跳至導覽 跳至搜尋

---

  1. 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 提供了多個端點,用於訪問不同的功能。以下是一些常用的端點:

主要 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

  1. 替換為你的 API 密鑰和秘密密鑰

api_key = "YOUR_API_KEY" secret_key = "YOUR_SECRET_KEY"

  1. 產品 ID

product_id = "BTC-USD"

  1. API 端點

endpoint = f"https://api.pro.coinbase.com/products/{product_id}/book"

  1. 獲取時間戳

timestamp = str(int(time.time()))

  1. 構建簽名

message = timestamp + "GET" + "/products/" + product_id + "/book" signature = hmac.new(secret_key.encode('utf-8'), message.encode('utf-8'), hashlib.sha256).hexdigest()

  1. 構建請求頭

headers = {

   "CB-ACCESS-KEY": api_key,
   "CB-ACCESS-SIGN": signature,
   "CB-ACCESS-TIMESTAMP": timestamp

}

  1. 發送 API 請求

response = requests.get(endpoint, headers=headers)

  1. 檢查響應狀態碼

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 獲取分析、免費信號等更多信息!