目录导读
- 为什么你需要欧易API?——从手动交易到自动化的跃迁
- 欧易交易所API接口申请全流程(附截图级描述)
- Python环境搭建与API库安装
- 手把手编写第一个交易脚本:获取市场行情
- 进阶实战:自动化下单与仓位管理
- 常见问题解答(FAQ)——避坑指南
为什么你需要欧易API?——从手动交易到自动化的跃迁
在数字货币交易中,盯着屏幕手动买卖不仅累,还容易错过最佳时机,尤其当行情剧烈波动时,人性弱点会被无限放大。欧易交易所官网提供的API接口,正是为了解决这个问题而生,通过API,你可以用代码代替手指,实现策略化、程序化的交易。

简单说,API就像是一个“遥控器”,让你通过Python脚本直接指挥交易所执行买卖、查询余额、获取实时行情等操作,很多量化交易者就是靠这套工具,在币市里跑赢了大盘。
在你开始申请API之前,建议先完成欧易交易所下载并注册账号,这是所有操作的前提。
欧易交易所API接口申请全流程
1 登录并进入API管理页面
打开欧易交易所官网,登录你的账户,在右上角头像下拉菜单中,找到“API”选项,点击进入。
2 创建API Key
点击“创建API”按钮,系统会弹出设置窗口,你需要填写:
- API名称:我的Python交易脚本”
- 权限设置:通常建议勾选“交易”和“读取”权限,如果需要提币操作再勾选“提现”(但出于安全考虑,不建议给提现权限)
- IP白名单:如果你使用固定IP上网,可以限制只有该IP能调用API,增强安全性,如果IP不固定,可以留空(但风险较高)
注意:创建成功后,你会看到三样东西:
API Key、Secret Key、Passphrase。请立即复制并妥善保存,因为Secret Key只会显示一次,关闭页面就再也看不到了。
3 安全验证
确认创建时,通常需要输入资金密码或进行二次验证(谷歌验证器/短信验证码),这是为了保护你的资产安全。
Python环境搭建与API库安装
1 安装Python
如果你还没装Python,去python.org下载3.8以上版本,安装时记得勾选“Add Python to PATH”。
2 安装欧易API库
打开命令行(CMD或终端),执行以下命令:
pip install okx-py
这是专门为欧易API封装的Python库,封装了签名、请求格式等繁琐细节,你也可以直接用requests库手动调用,但新手建议直接用现成的。
如果遇到下载慢,可以换国内镜像源:
pip install okx-py -i https://pypi.tuna.tsinghua.edu.cn/simple
手把手编写第一个交易脚本:获取市场行情
1 初始化客户端
新建一个Python文件,比如trade_bot.py,写入以下代码:
from okx import PublicData import json # 初始化公共数据接口 public_data = PublicData()
2 获取BTC/USDT的当前价格
def get_btc_price():
# 获取BTC-USDT的ticker数据
result = public_data.get_ticker(instId='BTC-USDT')
if result.get('code') == '0': # 请求成功
data = result['data'][0]
print(f"最新价: {data['last']}")
print(f"24小时最高: {data['high24h']}")
print(f"24小时最低: {data['low24h']}")
else:
print("请求失败:", result.get('msg'))
if __name__ == "__main__":
get_btc_price()
运行这个脚本,控制台就会打印出BTC的实时价格,你可能觉得这没什么,但记住:能拿到数据,就能基于数据做策略。
如果想获取历史K线数据,只需调用:
candles = public_data.get_candlesticks(instId='BTC-USDT', bar='1m', limit=100) # bar参数: 1m, 5m, 15m, 30m, 1H, 4H, 1D等 # limit: 返回条数
进阶实战:自动化下单与仓位管理
1 初始化交易客户端(需要API Key)
from okx import Trade API_KEY = '你的API Key' SECRET_KEY = '你的Secret Key' PASSPHRASE = '你的Passphrase' trade = Trade(api_key=API_KEY, api_secret=SECRET_KEY, passphrase=PASSPHRASE, flag='0') # flag='0'表示实盘,'1'表示模拟盘(测试环境)
2 市价买入0.01个BTC
def buy_btc():
# 市价单,买入0.01个BTC
order = trade.place_order(
instId='BTC-USDT',
tdMode='cash', # 现金模式
side='buy', # 买入
ordType='market', # 市价单
sz='0.01' # 数量
)
if order.get('code') == '0':
print("下单成功!订单ID:", order['data'][0]['ordId'])
else:
print("下单失败:", order.get('msg'))
# 注意:运行前请确保账户有足够USDT
3 简单均线策略示例
一个最基础的交易逻辑:当5日均线上穿20日均线时买入,下穿时卖出。
import time
from okx import PublicData
def ma_strategy():
# 获取最新的100根1小时K线
candles = public_data.get_candlesticks(instId='BTC-USDT', bar='1H', limit=100)
if candles['code'] != '0':
return
# 提取收盘价
close_prices = [float(c[4]) for c in candles['data']] # 索引4是收盘价
# 计算均线
ma5 = sum(close_prices[-5:]) / 5
ma20 = sum(close_prices[-20:]) / 20
print(f"MA5: {ma5:.2f}, MA20: {ma20:.2f}")
if ma5 > ma20:
print("建议: 买入信号")
# 这里可以调用下单函数
else:
print("建议: 卖出信号或持币观望")
# 每10分钟执行一次
while True:
ma_strategy()
time.sleep(600)
真实交易中,你还需要考虑手续费、滑点、仓位大小等细节,新手建议先用模拟盘测试(
flag='1'),跑到稳定盈利再上实盘。
常见问题解答(FAQ)——避坑指南
❓ Q1:申请API时,Secret Key意外丢失怎么办?
答:在欧易交易所官网的API管理页面,删除旧的API,重新创建一对新的Key,之前的Key会立即失效。
❓ Q2:为什么我调用API时提示“签名错误”?
答:99%的原因是Secret Key复制错误,或者Passphrase写错了,检查是否有空格、大小写是否一致,如果你修改了API权限,需要重新生成签名。
❓ Q3:如何保障API Key的安全?
答:三个原则——1)永远不要将Key分享给他人;2)限制IP白名单;3)只授予必要权限(比如别给提现权限),建议在交易脚本中,将API Key单独写在一个配置文件中,并添加到.gitignore防止上传到GitHub。
❓ Q4:脚本跑着跑着突然报“请求频率限制”,怎么办?
答:欧易API对请求频率有限制,通常为每秒10次,你可以在代码中添加延时:
import time time.sleep(0.1) # 每0.1秒发一次请求,即每秒10次
或者使用官方库自带的限速功能(如果有)。
❓ Q5:可以用API进行合约交易吗?
答:可以,只需将instId改为合约产品,如BTC-USDT-SWAP,并将tdMode改为isolated(逐仓)或cross(全仓),但合约风险极高,新手务必先学会仓位管理。
❓ Q6:欧易交易所下载后,为什么API页面打不开?
答:可能是网络环境问题,可以尝试刷新页面、清除浏览器缓存,或者更换网络节点,如果持续无法打开,联系欧易客服。
❓ Q7:Python脚本运行中,突然断网怎么办?
答:建议在脚本中加入异常处理,比如连接失败时重试3次,并记录日志,如果长时间断网,可以考虑使用云服务器(如阿里云、腾讯云)24小时运行脚本。
写在最后
用Python操作欧易API,本质上是把交易逻辑变成可执行的代码,这篇教程帮你完成了从申请API到编写简单脚本的全过程,但请记住:自动化交易放大了收益,也放大了风险,在你用它赚到第一个100块之前,你可能会先亏掉1000块。
请一定先用模拟盘测试,再小资金实盘验证,慢慢来,比较快。
如果你在编写过程中遇到任何问题,欢迎在评论区留言,或参考欧易API官方文档 ——那里有更详细的技术参数说明,别忘了完成欧易交易所下载并开启二次验证,这是保护你资产的第一步。
标签: Python交易脚本