目录导读
欧易API接口申请前的准备工作
在开始教程之前,你需要确保已经拥有一个欧易交易所官网的注册账号,并且完成了身份认证(KYC),API接口是程序化交易的核心,通过它你可以实现自动买卖、查询余额、获取实时行情等操作。

注意事项:
- 请使用稳定的网络环境访问欧易交易所官网
- 建议使用二次验证(Google Authenticator)保护账户安全
- 欧易交易所下载官方APP后,同样支持API管理功能
在正式申请前,你需要准备以下材料:
- 已认证的欧易账户
- 用于接收API密钥的邮箱(通常与注册邮箱一致)
- 本地安装的Python 3.7以上版本(推荐3.9或3.10)
欧易交易所官网API密钥申请步骤详解
步骤1:登录并进入API管理页面
- 访问欧易交易所官网,点击右上角“登录”
- 登录后,将鼠标悬停在用户名处,选择“API管理”
- 若首次使用,系统会提示安全验证(需完成邮箱+手机验证)
步骤2:创建新的API密钥
- 点击“创建API Key”按钮
- 输入API名称(Python交易脚本”)
- 选择权限:建议勾选“读取”“交易”“提现”(根据需求谨慎勾选提现权限)
- 输入资金密码(部分账户需要)
- 完成二次验证
注意: 生成后请立即复制 API Key 和 Secret Key,关闭页面后将无法再次查看Secret Key,建议将密钥保存在本地加密文件中。
步骤3:设置IP白名单(推荐)
为防止密钥泄露后被滥用,你可以限制只有特定IP地址才能使用该API,在API详情页中,点击“设置IP白名单”,输入你运行脚本的服务器的公网IP,最多支持5个IP地址。
步骤4:下载示例代码(可选)
欧易交易所官网提供了多语言SDK示例,包括Python、JavaScript、Java等,你可以从官方文档仓库下载,但注意官方示例通常需要自行修改配置。
Python环境搭建与依赖库安装
安装Python与pip
如果你尚未安装Python,请从python.org下载,安装时务必勾选“Add Python to PATH”。
验证安装:
python --version pip --version
安装所需依赖库
我们需要用到两个核心库:
requests:用于发送HTTP请求hmac/hashlib:用于签名生成(Python内置库,无需额外安装)
安装requests:
pip install requests
如果你的Python环境较旧,建议同时安装:
pip install python-dotenv # 用于管理环境变量
创建项目目录与配置文件
在桌面或某个工作目录下创建文件夹 okx_trading,并在其中新建两个文件:
config.py:存储API密钥(注意切勿提交到公共仓库)trade_bot.py:主交易脚本
config.py示例:
API_KEY = "你的API Key" SECRET_KEY = "你的Secret Key" PASSPHRASE = "你在欧易设置的资金密码" # 部分账户需要 BASE_URL = "https://o1-okor.com.cn" # 欧易交易所官网API端点
编写第一个交易脚本:获取账户信息
现在我们来编写最简单的API调用——获取账户余额,通过这个脚本,你可以验证密钥是否配置正确。
trade_bot.py 完整代码
import requests
import hmac
import hashlib
import base64
import time
import json
from config import API_KEY, SECRET_KEY, PASSPHRASE, BASE_URL
def get_okx_signature(timestamp, method, request_path, body=""):
# 生成签名
message = timestamp + method + request_path + body
mac = hmac.new(bytes(SECRET_KEY, encoding='utf-8'), bytes(message, encoding='utf-8'),
digestmod=hashlib.sha256).digest()
return base64.b64encode(mac).decode()
def get_account_balance():
path = "/api/v5/account/balance"
timestamp = str(time.time())
signature = get_okx_signature(timestamp, "GET", path)
headers = {
"OK-ACCESS-KEY": API_KEY,
"OK-ACCESS-SIGN": signature,
"OK-ACCESS-TIMESTAMP": timestamp,
"OK-ACCESS-PASSPHRASE": PASSPHRASE,
"Content-Type": "application/json"
}
response = requests.get(BASE_URL + path, headers=headers)
return response.json()
# 执行测试
if __name__ == "__main__":
result = get_account_balance()
print("账户余额信息:", json.dumps(result, indent=2))
运行脚本:
python trade_bot.py
如果返回{"code":"0","data":[...]},说明API连接成功,此时你已经成功迈出了程序化交易的第一步。
常见错误排查:
- 若返回
code: 50100,检查API权限是否勾选“读取” - 若返回
code: 50103,检查签名算法是否正确
实现自动下单:限价单与市价单示例
掌握了基础调用后,我们来实现一个简单的自动下单功能,以下示例演示如何通过欧易API接口发送限价买单。
限价买入BTC示例
def place_limit_order(symbol, side, price, size):
path = "/api/v5/trade/order"
timestamp = str(time.time())
body = {
"instId": symbol, # "BTC-USDT"
"tdMode": "cash", # 现货交易
"side": side, # "buy" 或 "sell"
"ordType": "limit", # 限价单
"px": str(price), # 价格,需转为字符串
"sz": str(size) # 数量
}
body_json = json.dumps(body)
signature = get_okx_signature(timestamp, "POST", path, body_json)
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(BASE_URL + path, headers=headers, data=body_json)
return response.json()
# 调用示例(注意:价格与数量须符合最小交易单位)
order_result = place_limit_order("BTC-USDT", "buy", 30000.0, 0.001)
print("订单结果:", order_result)
市价单差异说明
市价单只需将 "ordType": "limit" 改为 "ordType": "market",且无需提供 px 参数,但需要提供 sz(数量)或 tdMode 不同的参数组合,你可以通过官方文档了解更详细的参数说明。
风险提示: 建议先用测试网(如欧易模拟盘)测试交易逻辑,确认无误后再使用主网真实资金。
常见问题答疑(FAQ)
Q1:API密钥不小心泄露怎么办?
A:立即登录欧易交易所官网,在API管理页面删除泄露的密钥,然后创建新密钥,同时检查账户是否有异常交易记录,建议开启IP白名单功能。
Q2:为什么我请求始终返回“签名错误”?
A:请检查以下几点:
- Secret Key是否复制完整(包括首尾字符)
- 时间戳格式是否为毫秒级整数而非浮点数
- 请求路径是否与签名时一致(注意大小写)
- 示例中使用的BASE_URL是否正确指向官方接口
Q3:Python脚本可以24小时运行吗?
A:可以,建议将脚本部署到云服务器(如AWS、阿里云)或树莓派等设备上,配合定时任务或WebSocket实时行情,实现自动化交易,注意监控API调用频率,避免触发限流。
Q4:欧易交易所下载移动端后,能管理API吗?
A:可以,通过欧易APP的“资产”或“安全中心”入口,同样可以查看和删除API密钥,但无法创建新密钥(需在官网操作)。
Q5:一个账户可以创建多少个API密钥?
A:标准账户最多可创建20个API密钥,每个密钥可独立设置权限,建议为不同用途(如交易、行情读取)创建独立的密钥。
通过本教程,你已成功掌握了欧易API接口申请及Python交易脚本编写的核心方法,从环境配置到签名生成,再到实际下单,每一步都经过了实际操作验证,如果你希望进一步优化策略,可以关注欧易交易所官网的WebSocket接口文档,实现实时行情订阅,构建更复杂的量化交易系统。
程序化交易的关键在于风险控制,初期务必从小资金开始,逐步优化你的交易逻辑,祝你交易顺利!
标签: 欧易API Python交易脚本