📖 目录导读
- 欧易交易所API入门须知
- API接口申请详细步骤
- Python环境与依赖库配置
- 编写第一个交易脚本(含问答)
- 常见错误与调试技巧
- 安全注意事项与优化建议
如果你是刚接触量化交易的新手,可能觉得“API”、“交易脚本”这些词有点唬人,别担心,今天我就用最接地气的方式,带你走一遍欧易交易所下载并完成API申请,再手把手写出一个能跑起来的Python交易脚本,整个过程我已经帮你踩过坑了,跟着做就行。

欧易交易所API入门须知
在动手之前,得先搞明白API是个啥玩意儿,简单说,API就是交易所给你的一把“遥控器”——你不需要打开网页,用代码就能直接操作账户:查余额、看行情、下订单。
欧易交易所的API分为三类:
- REST API:最常用,用于查询数据和下单
- WebSocket API:实时推送行情,适合做高频
- 模拟盘API:测试用,不花真金白银
⚠️ 新手建议先从模拟盘开始,等脚本跑顺了再上实盘。
API接口申请详细步骤
步骤1:注册并登录
访问欧易交易所官网,注册账号并完成基础认证。
步骤2:进入API管理页面
登录后,右上角点“账户”→ 左侧菜单找到“API管理”。
步骤3:创建API Key
点击“创建API”,会弹出三个选项:
- 读取:只能查数据,不能交易
- 交易:可以下单、撤单
- 提现:不建议开启,安全第一
建议配置:
- 如果只是做分析脚本 → 只开“读取”
- 如果要自动交易 → 开“读取+交易”,但绝对不要开提现
步骤4:设置IP白名单(强烈推荐)
填入你电脑或服务器的公网IP,这样即使API泄露,别人也没法用。
步骤5:保存好Key和Secret
创建成功后,你会得到:
- API Key(一串字符)
- Secret Key(另一串字符,只显示一次,务必复制保存到安全的地方)
很多新手在这步翻车:忘记保存Secret Key,一旦关闭页面,就再也看不到了,只能重新创建。
Python环境与依赖库配置
环境要求
- Python 3.7 或更高版本
- 推荐用虚拟环境隔离项目
安装依赖库
打开终端,执行:
pip install requests hashlib hmac base64 json time
其中requests用于发送HTTP请求,其他几个用于生成签名(交易所的安全机制)。
代码结构建议
okex_trading/
├── config.py # 存API Key和Secret
├── okex_api.py # 封装API调用函数
├── simple_trader.py # 主交易脚本
编写第一个交易脚本
❓ 问答环节:新手最常问的3个问题
Q1:为什么我发的请求总是报错“签名错误”?
A:90%的情况是API Key或Secret Key复制错了,或者时间戳格式不对,代码里确保timestamp是ISO格式,并且使用UTC时间。
Q2:模拟盘和实盘的API地址一样吗?
A:不一样,模拟盘的base URL是https://www.okex.com,实盘是https://www.okx.com。建议先用模拟盘。
Q3:我能直接用这个脚本赚钱吗? A:不能,这只是个演示脚本,真正的交易策略需要考虑滑点、手续费、风控等,但这是很好的起点。
完整脚本示例
import requests
import json
import hmac
import base64
import hashlib
import time
from datetime import datetime
# === 配置部分(用你自己的信息替换)===
API_KEY = "你的API_KEY"
SECRET_KEY = "你的SECRET_KEY"
PASSPHRASE = "你在创建API时设置的密码"
BASE_URL = "https://www.okex.com" # 模拟盘用这个,实盘改成"https://www.okx.com"
def get_timestamp():
"""生成ISO格式的UTC时间戳"""
now = datetime.utcnow()
return now.strftime('%Y-%m-%dT%H:%M:%S.%f')[:-3] + 'Z'
def generate_signature(timestamp, method, request_path, body=''):
"""生成签名(欧易特有的加密方式)"""
message = timestamp + method.upper() + request_path + (body if body else '')
mac = hmac.new(bytes(SECRET_KEY, encoding='utf-8'),
bytes(message, encoding='utf-8'),
digestmod=hashlib.sha256)
d = mac.digest()
return base64.b64encode(d).decode()
def send_request(method, path, body=''):
"""通用请求发送函数"""
timestamp = get_timestamp()
signature = generate_signature(timestamp, method, path, body)
headers = {
'OK-ACCESS-KEY': API_KEY,
'OK-ACCESS-SIGN': signature,
'OK-ACCESS-TIMESTAMP': timestamp,
'OK-ACCESS-PASSPHRASE': PASSPHRASE,
'Content-Type': 'application/json'
}
url = BASE_URL + path
if method == 'GET':
response = requests.get(url, headers=headers)
elif method == 'POST':
response = requests.post(url, headers=headers, data=body)
return response.json()
def get_account_info():
"""获取账户信息"""
path = '/api/v5/account/balance'
return send_request('GET', path)
def place_order(symbol, side, size, order_type='market'):
"""
下订单
symbol: 交易对,如'BTC-USDT'
side: 'buy' 或 'sell'
size: 数量
order_type: 'market' 或 'limit'
"""
path = '/api/v5/trade/order'
body = json.dumps({
'instId': symbol,
'tdMode': 'cash',
'side': side,
'ordType': order_type,
'sz': str(size)
})
return send_request('POST', path, body)
# === 主程序 ===
if __name__ == '__main__':
# 1. 先查一下账户余额
print("正在获取账户信息...")
acct_info = get_account_info()
print("账户余额:", acct_info)
# 2. 尝试下单(模拟盘)
# 注意:模拟盘可以用假数据测试,不会真的成交
print("尝试下模拟单...")
order_result = place_order('BTC-USDT', 'buy', 0.001)
print("下单结果:", order_result)
运行说明
- 把
API_KEY、SECRET_KEY、PASSPHRASE替换成你自己的 - 确保网络能访问
okwi.com.cn - 运行脚本:
python simple_trader.py
如果一切顺利,你会看到返回的JSON数据,里面有账户余额和订单状态。
常见错误与调试技巧
| 错误提示 | 原因 | 解决方法 |
|---|---|---|
400 Bad Request |
参数格式不对 | 检查JSON格式,数字不要带引号 |
401 Unauthorized |
签名或Key错误 | 重新复制API Key和Secret |
429 Too Many Requests |
请求太频繁 | 每次请求间隔至少0.1秒 |
500 Internal Server Error |
交易所服务器问题 | 等几分钟再试 |
调试小技巧:
- 打印
timestamp和signature,对比官方文档的示例 - 用欧易官方的API在线调试工具验证参数
- 先用模拟盘,别头铁直接上实盘
安全注意事项与优化建议
安全红线
- 绝对不要把API Key和Secret提交到GitHub,用.env文件或环境变量
- IP白名单一定要开,哪怕动态IP也要绑定
- 不要开提现权限,除非你很清楚在做什么
- 定期更换API Key,比如每3个月换一次
脚本优化方向
- 添加异常处理:下单失败时自动重试或报警
- 实现心跳机制:每隔一段时间检查连接状态
- 对接数据库:记录每次交易详情
- 集成WebSocket:获取实时行情,响应速度更快
最后说两句
这个脚本虽然简单,但已经能让你体验到量化交易的基础流程,后续你可以基于这个框架,添加自己的策略逻辑,比如均线交叉、布林带策略等。
如果你在跑通脚本的过程中遇到了问题,先检查API Key是否有权限、网络是否能访问欧易交易所官网,大多数报错都是API配置问题,别慌,慢慢排查。
先跑模拟盘,再上实盘,祝你的交易脚本顺利跑起来!