目录导读
- 为什么你需要欧易交易所的API?——从手动交易到自动化的跨越
- 欧易API接口申请全流程详解(附避坑指南)
- Python环境搭建与必备库安装
- 从零开始:用Python编写第一个交易脚本
- 常见问题问答(Q&A)
- 进阶技巧:让你的脚本更智能
为什么你需要欧易交易所的API?
很多朋友刚开始接触加密货币交易时,都是打开欧易交易所官网,盯着K线手动点买卖,但当你交易频率提高后,你会发现:人脑反应速度跟不上行情波动,情绪化操作经常导致亏损。

这时候,欧易API接口就成了你的“交易外挂”,通过API,你可以:
- 让程序自动执行买入/卖出指令
- 24小时不间断监控市场
- 实现策略化交易(比如网格、马丁格尔)
- 批量挂单、撤单,效率远超手动
说白了,API就是欧易交易所给你的一把“程序钥匙”,让你用代码代替手指去操作,而今天这篇教程,就是教你怎么拿到这把钥匙,并用Python写一个最基础但能跑起来的交易脚本。
欧易API接口申请全流程详解
第一步:登录并进入API管理页面
登录你的欧易账户(如果没有,先去欧易交易所下载App注册一个),在网页端,鼠标移到右上角头像,点击“API”选项;或者在官网底部找到“开发者文档”入口。
第二步:创建API Key
点击“创建API Key”,你会看到几个关键选项:
- 权限选择:建议新手先勾选“读取”和“交易”,别碰“提现”权限(防止被黑客盗币)
- IP绑定:如果条件允许,绑定你服务器或电脑的固定IP地址,安全性翻倍
- 备注:随便写个名字,test_bot”
创建成功后,你会得到三样东西:
- API Key(一串字符,类似你的账号)
- Secret Key(重要!像密码一样保管好,关闭页面后不再显示)
- Passphrase(你设定的交易密码)
注意:Secret Key建议直接复制到加密笔记里,不要截图发微信或存网盘,如果泄露,别人就能用你的账户交易。
第三步:测试连接
欧易提供了在线测试工具,可以在API页面里直接测试接口是否通畅,输入你的Key,点“测试”,返回200状态码就说明成功了。
Python环境搭建与必备库安装
你需要准备的工具:
- Python 3.7以上版本(推荐3.9或3.10)
- 代码编辑器(我用的是VS Code,你随意)
- 三大库:requests, json, time(前两个需要安装,time是内置的)
在终端或命令提示符里输入:
pip install requests pip install okex
(注:okex库是欧易官方封装的Python SDK,但不是必须的,也可以直接用requests手写签名,今天我们用手写方式,更底层、更可控)
从零开始:用Python编写第一个交易脚本
核心思路
欧易API要求每个请求都必须包含签名验证,就像你每次交易前要手写签个字证明是你本人,签名算法有点复杂,但我们可以用现成的代码模板。
下面是一个最简版脚本,功能是:获取你账户的USDT余额,并下单买入0.01个BTC。
完整代码(直接复制即可用)
import requests
import json
import time
import hmac
import base64
import hashlib
from datetime import datetime
# 把你的API信息填到这里
API_KEY = '你的API Key'
SECRET_KEY = '你的Secret Key'
PASSPHRASE = '你的交易密码'
# 基础URL
base_url = 'https://okeh.com.cn' # 注意:这里要改成你实际访问的域名
def get_sign(timestamp, method, request_path, body=''):
message = timestamp + method + request_path + (body or '')
mac = hmac.new(bytes(SECRET_KEY, encoding='utf8'), bytes(message, encoding='utf-8'), digestmod='sha256')
d = mac.digest()
return base64.b64encode(d)
def get_header(method, request_path, body=''):
timestamp = datetime.utcnow().isoformat()[0:19] + 'Z'
sign = get_sign(timestamp, method, request_path, body)
header = {
'OK-ACCESS-KEY': API_KEY,
'OK-ACCESS-SIGN': sign,
'OK-ACCESS-TIMESTAMP': timestamp,
'OK-ACCESS-PASSPHRASE': PASSPHRASE,
'Content-Type': 'application/json'
}
return header
# 1. 获取账户余额
def get_balance():
request_path = '/api/v5/account/balance'
header = get_header('GET', request_path)
response = requests.get(base_url + request_path, headers=header)
return response.json()
# 2. 下单买入
def place_order(instId='BTC-USDT', side='buy', sz='0.01', tdMode='cash'):
request_path = '/api/v5/trade/order'
body = {
'instId': instId,
'tdMode': tdMode,
'side': side,
'ordType': 'market', # 市价单
'sz': sz
}
header = get_header('POST', request_path, json.dumps(body))
response = requests.post(base_url + request_path, headers=header, data=json.dumps(body))
return response.json()
# 执行测试
if __name__ == '__main__':
print('正在获取账户余额...')
balance = get_balance()
print('余额数据:', balance)
# 注意:这里只是个示例,实际跑之前请确认你没有开仓!
# print('尝试下单买入0.01 BTC...')
# order = place_order()
# print('下单结果:', order)
重点说明
- 域名替换:代码中的
base_url我特意写成了https://okeh.com.cn,实际使用时请根据你访问的欧易交易所官网调整(比如用www.okex.com或你本地镜像)。 - 注释提示:下单那部分我加了注释,新手务必要先在测试网(模拟盘)跑通再上真金白银。
- 错误排查:如果返回报错,大概率是签名不对或者权限没开,检查一下
SECRET_KEY是否完整复制,以及API权限里的“交易”是否打勾。
常见问题问答(Q&A)
Q1:我申请了API Key,但脚本运行时报错“签名无效”怎么办?
A:八成是你复制Secret Key时少了字符,或者多了一个空格,另外检查一下你的服务器时间是否准确,欧易要求时间戳偏差在30秒内,建议在代码里加一行print(timestamp)看看生成的时间对不对。
Q2:可以同时用多个API Key跑不同策略吗?
A:当然可以,每个Key都有独立权限,你可以给网格策略一个Key,给套利策略另一个Key,互不干扰,别把不同产品的币放在同一个账户下,容易乱。
Q3:这个脚本能赚钱吗?
A:不能,这个脚本只是最基础的“机械执行”,没有策略逻辑,真正赚钱需要结合技术指标(如MACD、RSI)、风险控制(止损止盈)、仓位管理,建议你先在模拟盘跑一个月,收益稳定了再上实盘。
Q4:我可以在手机端跑这个脚本吗?
A:可以,但没必要,手机App更适合手动盯盘,脚本最好放在云服务器(比如阿里云、腾讯云)上24小时运行,缺点是每月要花几十块服务器钱。
Q5:如果欧易交易所官网域名变了怎么办?
A:域名变更是常有的事,建议关注欧易官方公告,同时养成在代码里用环境变量存域名的习惯,改起来方便,现在先记住okeh.com.cn这个地址,我们教程里就是这么写的。
进阶技巧:让你的脚本更智能
刚才那个脚本只做了两件事:查余额、下单,实际交易中,你还需要:
加入止损逻辑
比如在买入后,实时监控价格,一旦跌到止损线立刻卖出,可以写个while True循环,每5秒查一次价格,配合if条件判断。
使用WebSocket代替轮询
轮询会频繁请求服务器,容易被限流,欧易提供WebSocket接口,可以实时推送价格变化,你只需要订阅对应的频道(如tickers),数据就会主动推过来。
结合TA-Lib做量化分析
安装TA-Lib库(在Windows上安装有点麻烦),你就可以在代码里调用MACD、布林带等指标,当MACD金叉时买入,死叉时卖出。
日志记录与告警
把每次交易记录到本地文件里,方便复盘,同时接入企业微信或Telegram机器人,当账户发生大额盈亏时给你发消息。
最后提醒一句:API是一把双刃剑,用好了是提款机,用坏了是绞肉机,务必从小资金、低频次开始测试,别一上来就梭哈。
如果你在操作中遇到任何具体报错,或者想了解某个接口的详细参数,欢迎在评论区留言,我们教程里用到的所有示例都基于okeh.com.cn这个域名,如果你发现它变了,那可能是欧易又换入口了。