CoinEx API使用教程:如何连接、交易与实时数据获取

发布于 2025-02-07 09:40:13 · 阅读量: 178263

CoinEx交易接口教程

1. CoinEx API简介

CoinEx 是一个全球化的加密货币交易所,支持丰富的交易对,并且提供了一套完善的 API(应用程序接口)。如果你想要用代码自动化交易,或者抓取市场数据,那 API 绝对是你的得力助手。CoinEx 的 API 主要有 RESTful APIWebSocket API 两种,前者适合请求式交互(比如获取账户信息、下单、查询订单等),后者则适合实时推送(比如市场深度、成交数据)。

2. 申请 API Key

在开始使用 API 之前,你得先申请一个 API Key,相当于你的数字身份卡。操作步骤如下:

  1. 登录 CoinEx 账户,进入【API管理】页面。
  2. 点击 创建 API,填写相关信息:
  3. 备注名(随便写,方便自己记)
  4. 绑定 IP(强烈建议绑定,防止 API 被滥用)
  5. 设置权限(视需求勾选,一般交易机器人需要「读取」和「交易」权限)
  6. 生成 API Key 和 Secret Key,务必妥善保存!Secret Key 只会显示一次,丢了就得重来。

3. 连接 CoinEx API

CoinEx API 主要通过 HTTP 请求 进行交互,我们以 Python 为例,使用 requests 库进行访问。

3.1 安装依赖库

bash pip install requests

3.2 发送 GET 请求(获取市场行情)

import requests

url = "https://api.coinex.com/v1/market/ticker" params = {"market": "BTCUSDT"}

response = requests.get(url, params=params) print(response.json())

这段代码会返回 BTC/USDT 的最新行情数据,包括最新成交价、买一价、卖一价等。

4. 账户授权及交易

想要执行账户相关的操作(比如下单、撤单、查询余额),就必须进行 API 认证。CoinEx 采用 HMAC-SHA256 签名方式,具体操作如下:

4.1 生成签名

import hashlib import hmac import time

API_KEY = "你的APIKey" SECRET_KEY = "你的SecretKey"

def get_signature(params, secret_key): sorted_params = "&".join(f"{key}={value}" for key, value in sorted(params.items())) return hmac.new(secret_key.encode(), sorted_params.encode(), hashlib.sha256).hexdigest()

4.2 发送交易请求(限价买入 BTC)

def place_order(): url = "https://api.coinex.com/v1/order/limit" params = { "access_id": API_KEY, "market": "BTCUSDT", "type": "buy", "amount": "0.01", "price": "30000", "tonce": int(time.time() * 1000), } params["signature"] = get_signature(params, SECRET_KEY)

headers = {"Content-Type": "application/json"}
response = requests.post(url, json=params, headers=headers)
return response.json()

print(place_order())

5. WebSocket 监听实时数据

如果你想要实时监听交易所的市场数据,CoinEx 的 WebSocket API 是更好的选择。以下是一个 Python 示例,监听 BTC/USDT 最新成交价格。

import websocket import json

def on_message(ws, message): data = json.loads(message) print("最新成交价:", data.get("params", [None, None])[1])

def on_open(ws): sub_msg = { "method": "state.subscribe", "params": ["BTCUSDT"], "id": 1 } ws.send(json.dumps(sub_msg))

ws = websocket.WebSocketApp("wss://socket.coinex.com/", on_message=on_message) ws.run_forever()

6. 常见问题

Q1: API 请求失败,返回 signature error

  • 确保 signature 计算正确,参数顺序要按照字母排序再签名。
  • tonce 需要是最新的时间戳(毫秒)。

Q2: WebSocket 连接断开?

  • 可能是网络问题,建议加上 自动重连机制
  • CoinEx 会定期断开长时间不活跃的连接,建议定期发送心跳包。

Q3: 怎么用 Python 处理大数据量的交易记录?

  • 使用 asyncioaiohttp 进行异步请求,提高并发能力。
  • pandas 处理数据,存入数据库进行分析。



Gate.io Logo 加入 Gate.io,注册赢取最高$6666迎新任务奖励!