查看“Coinbase Pro API文档”的源代码
←
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 提供了多个端点,用于访问不同的功能。以下是一些常用的端点: {| class="wikitable" |+ 主要 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 密钥,并遵循最佳安全实践。 [[Category:Coinbase Pro]] == 推荐的期货交易平台 == {| class="wikitable" ! 平台 ! 期货特点 ! 注册 |- | Binance Futures | 杠杆高达125倍,USDⓈ-M 合约 | [https://www.binance.com/zh/futures/ref/Z56RU0SP 立即注册] |- | Bybit Futures | 永续反向合约 | [https://partner.bybit.com/b/16906 开始交易] |- | BingX Futures | 跟单交易 | [https://bingx.com/invite/S1OAPL/ 加入BingX] |- | Bitget Futures | USDT 保证合约 | [https://partner.bybit.com/bg/7LQJVN 开户] |- | BitMEX | 加密货币交易平台,杠杆高达100倍 | [https://www.bitmex.com/app/register/s96Gq- BitMEX] |} === 加入社区 === 关注 Telegram 频道 [https://t.me/strategybin @strategybin] 获取更多信息。 [http://redir.forex.pm/paybis2 最佳盈利平台 – 立即注册]. === 参与我们的社区 === 关注 Telegram 频道 [https://t.me/cryptofuturestrading @cryptofuturestrading] 获取分析、免费信号等更多信息!
返回
Coinbase Pro API文档
。
导航菜单
个人工具
登录
命名空间
页面
讨论
不转换
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
查看
阅读
查看源代码
查看历史
更多
导航
分类
加密期货交易所
加密期货交易策略
加密期货交易AI教育
永续期货合约
加密期货杠杆
期货风险管理
期货市场分析
期货技术分析
期货交易机器人
交叉保证金与独立保证金
期货资金费率
期货市场套利
加密期货对冲
期货清算机制
交易所费用结构
期货API交易
量化期货策略
加密期货法规
投资组合保证金系统
波动率指数期货
机构期货交易
首页
最近更改
随机页面
工具
链入页面
相关更改
特殊页面
页面信息