目录导读
- 欧易API接口简介:了解API功能与申请前的准备工作
- 申请欧易API密钥的详细步骤:从登录到权限设置
- Python环境搭建与依赖安装:快速配置交易脚本所需库
- 编写第一个交易脚本:获取账户余额与市场行情
- 进阶功能实现:下单与止盈止损自动化
- 常见问题解答(FAQ):解决新手高频疑问
欧易API接口简介
欧易交易所(OKX)作为全球领先的数字资产交易平台,其API接口允许开发者通过程序化方式实现自动化交易、数据抓取和策略执行,使用欧易API,你可以避免手动操作的低效性,利用Python等语言实时监控市场并执行买卖指令。

申请前需准备:
- 完成欧易官网(oe-okor.com.cn)实名认证(Level 2及以上)
- 确保账户已绑定二次验证(Google Authenticator)
- 了解基础REST API和WebSocket协议差异
提示:若你需要直接在移动端管理API,可先完成欧易交易所下载并登录账户,后续步骤可在App或网页端同步操作。
申请欧易API密钥的详细步骤
1 登录账户并进入API管理
- 访问欧易官网并登录
- 点击右上角头像 → “API” 进入管理页面
- 若未创建过API,点击“创建API Key”
2 设置权限与安全策略
- 标签名称:自定义,如“Python交易脚本”
- 权限选择:建议勾选“读取”“交易”“资金”三项(根据实际需求取舍)
- 访问限制:推荐绑定IP白名单(仅允许你的服务器IP访问),防止密钥泄露
- 验证方式:通过手机短信和邮箱双重验证,输入谷歌验证码
3 保存密钥信息
创建成功后,你会获得:
- API Key(公钥):如
a1b2c3d4-e5f6-7890-abcd-ef1234567890 - Secret Key(私钥):如
1A2B3C4D5E6F7G8H9I0J(仅显示一次,务必复制到安全位置) - Passphrase(密码短语):创建时自定义,用于签名验证
安全警告:切勿将Secret Key和Passphrase存储在公开代码仓库中,建议使用环境变量管理。
Python环境搭建与依赖安装
1 安装Python3(建议3.8以上版本)
# Windows下载exe安装包,Linux/macOS使用包管理器 sudo apt install python3-pip # Ubuntu/Debian brew install python3 # macOS
2 安装必要的库
pip install requests hashlib hmac base64 json time # 欧易官方推荐使用ccxt库(简化API调用) pip install ccxt
3 验证安装
import ccxt print(ccxt.__version__) # 输出4.0.0+则安装成功
编写第一个交易脚本:获取账户余额
1 初始化交易所对象
import ccxt
exchange = ccxt.okx({
'apiKey': '你的API_KEY', # 替换为实际值
'secret': '你的SECRET_KEY',
'password': '你的PASSPHRASE', # 非登录密码,是创建的密码短语
'enableRateLimit': True, # 遵守接口频率限制
})
# 测试连接
try:
exchange.load_markets()
print("连接成功!支持交易对数量:", len(exchange.symbols))
except Exception as e:
print("连接失败:", e)
2 获取账户总价值(USDT本位)
def get_account_balance():
balance = exchange.fetch_balance()
total_usdt = balance['total']['USDT']
print(f"账户USDT余额: {total_usdt}")
return total_usdt
get_account_balance()
3 实时获取BTC价格
def get_btc_price():
ticker = exchange.fetch_ticker('BTC/USDT')
print(f"当前BTC价格: {ticker['last']} USDT")
return ticker['last']
get_btc_price()
解释:以上代码使用了ccxt库的统一接口,无需手动拼接签名,大幅降低开发成本,如果你熟悉原始REST API,可参考欧易官方文档的加密逻辑。
进阶功能实现:限价单与自动止损
1 创建限价买单
def place_limit_order(symbol, side, amount, price):
"""
symbol: 'BTC/USDT'
side: 'buy' 或 'sell'
amount: 数量(BTC)
price: 限价
"""
try:
order = exchange.create_limit_order(symbol, side, amount, price)
print(f"订单创建成功: {order['id']}")
return order
except Exception as e:
print(f"下单失败: {e}")
# 示例:以45000 USDT买入0.01 BTC
place_limit_order('BTC/USDT', 'buy', 0.01, 45000)
2 设置止盈止损单(条件订单)
def set_stop_loss(symbol, amount, stop_price):
"""通过现货止盈止损功能"""
params = {
'stopLossPrice': stop_price,
'type': 'market', # 触发后市价平仓
}
order = exchange.create_order(symbol, 'stop', 'sell', amount, stop_price, params)
return order
# 示例:当BTC跌至44000时,市价卖出0.01 BTC
set_stop_loss('BTC/USDT', 0.01, 44000)
3 完整循环示例:每隔10秒监控价格
import time
while True:
price = get_btc_price()
if price > 50000:
print("价格过高,建议卖出!")
# place_limit_order('BTC/USDT', 'sell', 0.01, price)
elif price < 40000:
print("价格低估,考虑买入")
time.sleep(10)
注意:实盘交易前务必在测试环境模拟运行,可通过
exchange.set_sandbox_mode(True)切换到欧易沙盘测试网。
常见问题解答(FAQ)
Q1:API密钥泄露了怎么办?
A:立即登录欧易官网(oe-okor.com.cn)删除该API Key,并重置账户密码,同时检查账户是否有异常转账记录,如有需立即冻结账户。
Q2:为什么下单时提示“insufficient balance”?
A:可能原因:1)可用余额不足(考虑冻结部分);2)交易对精度问题,例如BTC最小交易量为0.0001,请确认数量是否合规;3)未勾选“交易”权限。
Q3:如何提高API请求频率?
A:欧易对API有频率限制(默认每秒10次/单个接口),如需提升,需联系客服申请企业级API权限,或通过WebSocket订阅实时数据。
Q4:脚本在运行时报错“invalid signature”?
A:检查三个地方:1)Secret Key是否完整粘贴;2)Passphrase是否与创建时一致;3)服务器时间是否与标准时间同步(差值超过30秒会报错),运行 ntpdate ntp.aliyun.com 同步时间。
Q5:如何将脚本部署到云服务器?
A:推荐使用阿里云/腾讯云轻量应用服务器(Linux系统),安装Python环境后,通过 nohup python3 script.py & 后台运行,请务必开启IP白名单限制。
Q6:欧易交易所下载后,API功能是否一致?
A:是的,下载官方App(iOS/Android)后进行实名认证,同样可以创建和管理API,功能与网页端完全同步。
通过本教程,你已掌握:
- 欧易API的申请与安全设置
- Python + ccxt库的基本用法
- 获取行情、下单和设置止损的核心代码
- 常见故障排查方法
建议新手先从 “模拟盘测试” 开始,确认策略稳定后再投入真实资金,如果需要更复杂的策略(如网格交易、套利),可学习欧易WebSocket API实现更低的延迟,立即前往欧易官网申请你的API密钥,开启自动交易之旅吧!