欧易API接口申请教程:三步学会用Python编写自动化交易脚本

📚 目录导读
- 欧易API是什么?为什么交易员都在用?
- 手把手教你申请欧易API接口(含权限设置避坑)
- 环境搭建:Python+库安装只需5分钟
- 实战代码:一个完整的行情获取+下单脚本
- 常见错误与排雷指南
- 问答集中营:新手最关心的5个问题
- 进阶玩法:如何让脚本24小时自动运行
1️⃣ 欧易API是什么?为什么交易员都在用?
很多朋友刚接触加密货币交易时,都会问:“手动下单太累了,有没有办法让电脑帮我盯着盘?” 答案是肯定的——通过欧易交易所官网的API接口。
API就像是一把“数字钥匙”,让你用代码直接连接欧易交易平台,你可以用它实现:
- 自动获取实时行情
- 按设定条件自动买卖
- 批量管理订单
- 跑量化策略
要知道,在快节奏的币圈,人眼盯盘根本拼不过机器,用欧易API写个脚本,哪怕只实现简单的“跌破支撑价自动止损”,都能帮你省下大量精力和情绪波动。
2️⃣ 手把手教你申请欧易API接口
你需要一个欧易交易所账号(如果还没注册,可以通过欧易交易所下载先注册,完成身份认证),步骤如下:
- 登录欧易交易所官网 → 点击右上角头像 → 进入“API管理”
- 创建API Key → 输入备注名(如“自动交易测试”)
- 设置权限 — 这里要特别留意:
- 只读权限:只能查行情、查持仓,无法交易(适合练手)
- 交易权限:可以下单、撤单(开始实战时选这个)
- 提现权限:不建议开启,保障资金安全
- 安全验证 → 输入短信+邮箱验证码 → 生成Key
⚠️ 重要:API Key和Secret Key只会显示一次!请立即复制保存到本地TXT文件,别截图存手机(容易丢失或泄露),如果忘记,可以删除旧的重新生成。
3️⃣ 环境搭建:Python+库安装只需5分钟
假设你已经安装了Python(推荐3.9以上版本),接下来安装两个关键库:
pip install requests hmac hashlib base64 json time
这些库都是Python自带的或轻量级的,如果遇到慢的情况,可以换国内镜像源:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
小提示:建议使用虚拟环境(venv),避免和其他项目冲突,具体命令:
python -m venv okx_bot cd okx_bot Scripts\activate # Windows source bin/activate # Mac/Linux
4️⃣ 实战代码:一个完整的行情获取+下单脚本
下面是一个可直接运行的例子,能获取BTC/USDT当前价格,并自动挂一个限价买单。
import requests
import hmac
import hashlib
import base64
import json
import time
api_key = "你的API_KEY"
secret_key = "你的SECRET_KEY"
passphrase = "你的交易密码"
# ==== 签名函数(官方推荐写法)====
def generate_sign(timestamp, method, request_path, body=''):
message = timestamp + method + request_path + body
mac = hmac.new(bytes(secret_key, encoding='utf8'),
bytes(message, encoding='utf-8'),
digestmod=hashlib.sha256)
d = mac.digest()
return base64.b64encode(d).decode('utf-8')
# ==== 获取行情 ====
def get_ticker():
url = "https://www.okx.com/api/v5/market/ticker?instId=BTC-USDT"
headers = {
'OK-ACCESS-KEY': api_key,
'OK-ACCESS-PASSPHRASE': passphrase,
'Content-Type': 'application/json'
}
timestamp = str(time.time())
headers['OK-ACCESS-TIMESTAMP'] = timestamp
headers['OK-ACCESS-SIGN'] = generate_sign(timestamp, 'GET', '/api/v5/market/ticker')
response = requests.get(url, headers=headers)
return response.json()
# ==== 下单(限价买入0.001个BTC)====
def place_order(price):
url = "https://www.okx.com/api/v5/trade/order"
body = {
"instId": "BTC-USDT",
"tdMode": "cash", # 现金交易
"side": "buy",
"ordType": "limit",
"sz": "0.001",
"px": str(price)
}
body_json = json.dumps(body)
timestamp = str(time.time())
headers = {
'OK-ACCESS-KEY': api_key,
'OK-ACCESS-PASSPHRASE': passphrase,
'Content-Type': 'application/json',
'OK-ACCESS-TIMESTAMP': timestamp,
'OK-ACCESS-SIGN': generate_sign(timestamp, 'POST', '/api/v5/trade/order', body_json)
}
response = requests.post(url, headers=headers, data=body_json)
return response.json()
# ==== 主程序 ====
if __name__ == "__main__":
print("正在获取BTC当前价格...")
ticker = get_ticker()
current_price = float(ticker['data'][0]['last'])
print(f"当前价格: {current_price} USDT")
# 设置比当前价低1%的买单
buy_price = round(current_price * 0.99, 2)
print(f"准备挂单: 买入价格 {buy_price}")
result = place_order(buy_price)
print("下单结果:", result)
运行效果:
正在获取BTC当前价格...
当前价格: 67500 USDT
准备挂单: 买入价格 66825.0
下单结果: {'code': '0', 'data': [{'ordId': '1234567890', 'clOrdId': '', 'ts': '1735689600000'}]}
如果返回 code: '0',说明下单成功,如果出现其他错误码,看下一节排雷。
5️⃣ 常见错误与排雷指南
| 错误码 | 含义 | 解决方案 |
|---|---|---|
| 50013 | 时间戳偏差过大 | 检查系统时间是否准确,需与API服务器同步(误差不超过30秒) |
| 50019 | 签名错误 | 确认Secret Key和passphrase是否正确 |
| 50021 | 权限不足 | 检查API Key的权限设置,需开启交易权限 |
| 51006 | 价格不满足最小变动 | 调整价格精度,比如BTC只能到0.01 USDT |
时间戳同步小技巧:打开浏览器访问 time.is 对比,如果系统时间不准,右击时间设置 → 同步时钟。
6️⃣ 问答集中营:新手最关心的5个问题
Q1:API Key泄露了怎么办? A:立即登录欧易交易所官网,进入API管理界面删除泄露的Key,再重新生成,如果你的Key有交易权限而资金被盗,可以联系客服处理。强烈建议:每次只生成短期使用的Key,且不要开启提现权限。
Q2:能不能用这个脚本做网格交易? A:当然可以!只要循环运行脚本,设定价格区间,每次达到条件就下单,不过建议先用模拟盘测试,不要在实盘里直接跑未验证的策略。
Q3:为什么我的订单总是成交不了?
A:限价单需要等市场价达到你的挂单价才会成交,如果想立即成交,可以把 ordType 改为 market(市价单),但注意市价单会有滑点。
Q4:运行脚本时提示“Too Many Requests”?
A:欧易API有频率限制(通常每秒10次),建议在每次请求后加上 time.sleep(0.1) 来降低频率。
Q5:可以同时操作多个币种吗?
A:可以,把 instId 换成其他币种,ETH-USDT、SOL-USDT,并在循环里用列表来管理多个币种。
7️⃣ 进阶玩法:如何让脚本24小时自动运行
写好的Python脚本不可能一直开着电脑跑吧?这里有两个方案:
- 云服务器方案:买一台最低配的腾讯云或阿里云服务器,配置好Python环境,用
nohup python script.py &后台运行。 - 本地计划任务:Windows用任务计划程序,Mac/Linux用crontab,定时执行脚本。
给新手的提醒:自动交易有风险,建议先用最小金额(比如10U)测试一周,确认脚本没有bug再逐步加资金,千万不要把全部身家直接丢进去自动跑!
最后再啰嗦一句:加密市场波动剧烈,任何自动化脚本都无法保证100%盈利,不要把API Key和资金密码告诉任何人,也不要在公共场合共享脚本截图(可能会暴露Key信息),祝你交易顺利,早日实现交易自由!