目录导读
- 为什么要用API交易?
- 欧易API接口申请全流程
- 环境配置:Python与必要库安装
- 实战代码:一个能跑起来的交易脚本
- 常见问题与避坑指南
- 问答环节:你可能关心的几个问题
为什么要用API交易?
做交易的人都知道,手动操作不仅效率低,还容易错失行情,API交易就像给你的交易装上了自动驾驶——你可以提前设定好策略,让程序自动执行。

如果你经常在欧易交易所进行交易,想把手动操作变成自动执行,那么通过API来写脚本是最高效的方式,无论你是做量化、搬砖还是定投,掌握API调用都是必备技能。
小提示:如果你是首次接触,建议先用模拟盘或小额资金测试,熟悉流程后再上实盘。
欧易API接口申请全流程
在开始写代码之前,先要在欧易交易所官网上申请API密钥,具体步骤如下:
第一步:登录你的欧易交易所下载账号(如果没有账号,先注册并完成KYC认证)
第二步:进入“个人中心” -> “API管理”
第三步:点击“创建API”,系统会提示你填写备注(建议写“交易脚本”以便区分用途)
第四步:选择权限,为了安全,建议只勾选“交易”和“读取”权限,不勾选“提现”权限,这样即使密钥泄露,对方也无法转走你的资产。
第五步:完成安全验证(短信+谷歌验证器),系统会生成API Key和Secret Key
⚠️ 重要提醒:Secret Key只显示一次,请务必复制并保存到安全的地方,一旦关闭页面,无法再次查看。
至此,API申请完成,你会得到两个关键参数:
api_key:长度为32位的字符串secret_key:长度为64位的字符串(请勿泄露)
环境配置:Python与必要库安装
写交易脚本需要有Python环境,版本建议使用3.8及以上,然后安装相关的库:
# 安装pycryptodomex(加密签名用) pip install pycryptodomex # 安装requests(发送HTTP请求) pip install requests # 安装ccxt(一个集成了多家交易所API的库,新手友好) pip install ccxt
推荐新手用ccxt:这个库封装了不同交易所的差异,同样一份代码,换一下交易所参数就能用在别的平台上,如果你只想针对欧易一家,也可以用官方API直接写,但ccxt更省事。
实战代码:一个能跑起来的交易脚本
下面是一个完整的Python交易脚本,实现了“获取账户余额”和“市价买入”两个基础功能。
import ccxt
import time
# 1. 配置你的API信息
api_key = "你的API_KEY"
secret_key = "你的SECRET_KEY"
passphrase = "你的API密码" # 欧易创建API时需要设置passphrase
# 2. 初始化欧易交易所对象
exchange = ccxt.okx({
'apiKey': api_key,
'secret': secret_key,
'password': passphrase,
'enableRateLimit': True, # 防止请求过快被限
})
# 3. 获取账户余额
def get_balance():
try:
balance = exchange.fetch_balance()
usdt = balance['USDT']['free']
print(f"当前USDT余额: {usdt}")
return usdt
except Exception as e:
print(f"获取余额失败: {e}")
return 0
# 4. 市价买入BTC(示例)
def buy_btc_market(amount_usdt):
try:
# 市价买入,amount_usdt是你要花多少USDT
order = exchange.create_market_buy_order('BTC/USDT', amount_usdt)
print(f"买入成功,订单ID: {order['id']}")
return order
except Exception as e:
print(f"买入失败: {e}")
return None
# 5. 主函数
if __name__ == "__main__":
print("=== 欧易交易脚本启动 ===")
balance = get_balance()
if balance > 10: # 如果余额大于10 USDT
print("准备用5 USDT市价买入BTC...")
buy_btc_market(5)
else:
print("余额不足,请充值USDT")
代码说明:
- 第2步用ccxt初始化交易所对象,填入申请好的密钥
fetch_balance()可以查询钱包各个币种的余额create_market_buy_order()执行市价买单,参数是交易对和金额- 脚本最后加了简单的余额判断,防止余额不足时下单被拒
运行方式:把上面的代码保存为 trade.py,在终端执行 python trade.py 即可。
如果你想获取K线数据进行策略分析,可以调用 fetch_ohlcv() 方法:
# 获取BTC/USDT的1小时K线,最近100根
ohlcv = exchange.fetch_ohlcv('BTC/USDT', '1h', limit=100)
for candle in ohlcv:
print(candle) # 输出格式:[时间戳, 开盘价, 最高价, 最低价, 收盘价, 成交量]
常见问题与避坑指南
问题1:报错“ReadTimeout”或“ConnectionError”
- 原因:网络延迟或请求过于频繁
- 解决:在代码里加
time.sleep(0.5)或启用enableRateLimit: True
问题2:报错“signature invalid”
- 原因:API密钥或passphrase错误
- 解决:检查三个参数是否与欧易官网创建的一致,尤其注意大小写
问题3:订单一直未成交(限价单)
- 原因:价格没达到你的挂单价
- 解决:新手建议先用市价单(如上面代码的
market_buy_order),成交速度快
问题4:API权限不足
- 原因:创建API时没勾选相应权限
- 解决:回到欧易API管理页面,编辑该API,勾上“交易”权限
问答环节:你可能关心的几个问题
Q1:API密钥泄露了怎么办? 立即登录欧易交易所下载的API管理页面,删除该API并创建新的,如果已经发现有异常交易,马上修改账号密码和谷歌验证器。
Q2:运行脚本时能关掉电脑吗? 不能,脚本在你的本地电脑运行,如果想24小时运行,需要把脚本部署到云服务器上(比如阿里云或腾讯云的轻量云服务器,一个月几十块钱)。
Q3:这个脚本能直接赚钱吗? 不能,上面的脚本只是一个“执行器”,它本身没有交易策略,你需要自己编写策略逻辑,当比特币跌到X元时买入,涨到Y元时卖出”,建议先用回测验证策略有效性,再上实盘。
Q4:可以用这个脚本做搬砖套利吗? 可以,但需要同时接入多个交易所的API,并实时监控价差,需要注意的是,欧易对API调用有频率限制(具体规则见官方文档),不要短时间内发太多请求。
Q5:为什么推荐用ccxt而不是直接调欧易官方API? ccxt封装了签名、数据格式转换等繁琐操作,让你专注于交易逻辑,如果你直接调原生API,需要自己计算签名(HMAC-SHA256),拼接请求体,还要处理返回数据的格式,对于新手来说容易出错。
最后提醒:交易有风险,脚本只是工具,建议先用模拟盘测试至少一周,确保代码无误后再投入真金白银,如果你在编写过程中遇到任何问题,欢迎在评论区留言,我会及时回复。
祝你交易顺利!🚀
标签: Python交易脚本