目录导读
- 欧易API接口概述
- API申请与安全配置
- 环境搭建与Python库安装
- 编写基础交易脚本
- 常见问题与问答
欧易API接口概述
欧易交易所(OKX)作为全球领先的数字资产交易平台,其开放的API接口为量化交易者提供了强大的自动化工具,通过API,用户可以实现行情查询、订单管理、资产监控等功能,尤其适合高频交易和策略执行,使用Python编写交易脚本,能显著提升操作效率,减少人工干预风险,在开始前,您需先完成欧易交易所下载及账号注册流程。

欧易API采用RESTful架构,支持HTTP/HTTPS协议,数据格式为JSON,其核心功能涵盖现货、合约、永续等交易类型,且提供WebSocket实时推送服务,要高效使用API,建议先熟悉官方文档中的签名认证与限频规则。
API申请与安全配置
申请步骤
- 登录欧易交易所官网,进入“账户-API管理”页面。
- 点击“创建API密钥”,按提示完成身份验证(需绑定谷歌验证器或短信验证码)。
- 设置权限:建议勾选“交易”与“读取”权限(如需提现需额外授权,但为安全考虑不推荐自动提现)。
安全注意事项
- 妥善保管Secret Key:该密钥仅在创建时显示一次,丢失需重新生成。
- 绑定IP白名单:仅允许指定服务器IP调用API,避免密钥泄露风险。
- 定期轮换密钥:建议每月更新一次,降低安全隐患。
环境搭建与Python库安装
1 环境准备
- Python 3.7+(推荐3.9或3.10):可从官网下载。
- 安装requests库与HMAC模块:
pip install requests hashlib hmac base64
2 测试网络连接
使用以下代码检查能否访问欧易API:
import requests url = "https://www.okx.com/api/v5/public/time" response = requests.get(url) print(response.json())
若返回服务器时间,说明网络连通。
编写基础交易脚本
1 获取账户余额
import requests
import hmac
import base64
import time
import json
# 填入您的API Key与Secret Key
API_KEY = "your_api_key"
SECRET_KEY = "your_secret_key"
PASSPHRASE = "your_passphrase"
def get_signature(timestamp, method, request_path, body):
message = timestamp + method + request_path + body
mac = hmac.new(bytes(SECRET_KEY, 'utf-8'), bytes(message, 'utf-8'), digestmod='sha256')
return base64.b64encode(mac.digest())
def get_balance():
timestamp = str(int(time.time()))
method = "GET"
request_path = "/api/v5/account/balance"
body = ""
signature = get_signature(timestamp, method, request_path, body)
headers = {
"OK-ACCESS-KEY": API_KEY,
"OK-ACCESS-SIGN": signature,
"OK-ACCESS-TIMESTAMP": timestamp,
"OK-ACCESS-PASSPHRASE": PASSPHRASE,
}
response = requests.get("https://www.okx.com" + request_path, headers=headers)
return response.json()
print(get_balance())
2 执行市价买单
def place_market_order(symbol, side, size):
timestamp = str(int(time.time()))
method = "POST"
request_path = "/api/v5/trade/order"
order_data = {
"instId": symbol, # "BTC-USDT"
"tdMode": "cash",
"side": side, # "buy"或"sell"
"ordType": "market",
"sz": str(size)
}
body = json.dumps(order_data)
signature = get_signature(timestamp, method, request_path, body)
headers = {
"OK-ACCESS-KEY": API_KEY,
"OK-ACCESS-SIGN": signature,
"OK-ACCESS-TIMESTAMP": timestamp,
"OK-ACCESS-PASSPHRASE": PASSPHRASE,
"Content-Type": "application/json"
}
response = requests.post("https://www.okx.com" + request_path, headers=headers, data=body)
return response.json()
# 示例:买入0.01 BTC
print(place_market_order("BTC-USDT", "buy", 0.01))
进阶提示
- 可将上述函数封装为类,统一管理密钥与请求频率。
- 需处理错误码与限频重试(如返回代码50030代表限频,需等待后重试)。
常见问题与问答
Q1:API请求返回“签名无效”如何解决?
- 检查时间戳是否与服务器时间同步(允许误差±5秒)。
- 确认Secret Key未包含多余空格或换行符。
Q2:如何避免被欧易限制API调用?
- 控制请求频率(现货接口每秒最多20次,合约更严格)。
- 使用WebSocket订阅实时行情,减少轮询次数。
Q3:脚本是否支持合约交易?
- 支持,需在订单参数中设置
tdMode: "isolated"或"cross",并指定posSide(多空方向)。
Q4:欧易API有Python SDK吗?
- 官方提供开源Python SDK:
pip install okx-python-sdk,可简化开发流程。
Q5:API密钥被泄露怎么办?
- 立即在欧易交易所官网禁用该密钥并生成新密钥,同时检查账户是否有异常订单。
通过以上教程,您已具备使用欧易API编写Python交易脚本的基础,建议先在模拟盘(Demo环境)测试脚本,确认无误后再接入实盘,如需获取最新欧易动态,可参考欧易交易所下载页面公告,量化交易需持续优化策略,祝您交易顺利!
标签: 欧易API Python交易脚本