目录导读
为什么你需要欧易API?
很多刚接触加密货币交易的朋友,欧易交易所下载之后,会发现自己整天盯着K线图手动买卖,不仅累还容易错过行情,这时候,欧易API就像你的私人交易助手——通过API接口,你可以让程序自动执行买卖策略,省时省力。

举个例子:你设置一个规则——当BTC价格跌破30000美元时自动买入,涨到35000美元时自动卖出,手动操作你可能需要24小时盯着屏幕,但用欧易API写个脚本,电脑就能自动帮你执行,这就是API交易的魅力,也是越来越多人开始学习欧易API接口申请教程的原因。
欧易API接口申请全流程(图文详解)
第一步:登录你的欧易账户
打开okzn.com.cn,输入账号密码登录,如果你还没有账户,你需要先完成注册和实名认证。
第二步:进入API管理页面
登录后,点击右上角头像 → 「API」→「创建API」,这里要注意,欧易有“读取权限”和“交易权限”之分:
- 读取权限:只能看行情、查余额,不能操作交易
- 交易权限:可以下单、撤单,涉及资金操作
如果你是新手,建议先只开读取权限测试,熟悉后再升级到交易权限。
第三步:获取API Key和Secret Key
创建成功后,你会得到三个关键信息:
- API Key:相当于你的账号ID
- Secret Key:相当于你的密码(务必保存好,关掉页面后不可再次查看)
- Passphrase:你自己设置的口令(后面代码里要用)
安全提醒:Secret Key和Passphrase不要透露给任何人,不要截图发到社交平台,建议在okzn.com.cn的API设置中,把IP白名单打开,只允许你的服务器IP调用API。
第四步:绑定IP白名单(强烈推荐)
在欧易API设置页面,你可以输入你的服务器IP或者你电脑的公网IP,这样即使有人拿到了你的API Key,也无法从其他IP访问你的账户资金。
Python环境准备与依赖库安装
安装Python
确保你的电脑安装了Python 3.7以上版本,在终端输入python --version查看版本号。
安装必要的库
打开终端(或命令行),逐条输入:
pip install requests pip install hashlib pip install hmac pip install base64 pip install json
这些是编写欧易API脚本最常用的库,requests负责发送网络请求,hashlib和hmac负责签名加密——这是欧易验证你身份的关键步骤。
手把手教你编写第一个交易脚本
下面这个脚本功能很简单:查询你的账户余额,别小看这个功能,它是所有交易操作的基础,跑通了这个脚本,你就可以轻松扩展出买入、卖出、挂单等功能。
完整代码示例
import requests
import json
import base64
import hmac
import hashlib
from datetime import datetime
import time
# ========== 配置你的API信息 ==========
api_key = "你的API Key"
secret_key = "你的Secret Key"
passphrase = "你的Passphrase"
# ========== 通用函数:生成签名 ==========
def generate_sign(timestamp, method, request_path, body=""):
message = timestamp + method + request_path + body
mac = hmac.new(bytes(secret_key, encoding='utf-8'), bytes(message, encoding='utf-8'), digestmod=hashlib.sha256).digest()
return base64.b64encode(mac).decode()
# ========== 获取账户余额 ==========
def get_account_balance():
base_url = "https://www.okx.com"
request_path = "/api/v5/account/balance"
method = "GET"
timestamp = datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%S.%f')[:-3] + 'Z'
sign = generate_sign(timestamp, method, request_path, "")
headers = {
"OK-ACCESS-KEY": api_key,
"OK-ACCESS-SIGN": sign,
"OK-ACCESS-TIMESTAMP": timestamp,
"OK-ACCESS-PASSPHRASE": passphrase,
"Content-Type": "application/json"
}
response = requests.get(base_url + request_path, headers=headers)
return response.json()
# ========== 运行 ==========
if __name__ == "__main__":
result = get_account_balance()
print("账户余额信息:")
print(json.dumps(result, indent=4, ensure_ascii=False))
代码解析(新手必看)
- 引入库:requests负责发请求,hmac和hashlib负责加密签名
- 配置API信息:把你在欧易申请的API Key、Secret Key、Passphrase填进去
- generate_sign函数:这是最核心的部分,欧易要求每次请求都要带签名,防止请求被篡改,签名生成方法:把时间戳、请求方法、请求路径拼接成一个字符串,再用Secret Key进行HMAC-SHA256加密,最后用Base64编码
- get_account_balance函数:构造请求头,调用欧易的
/api/v5/account/balance接口,返回结果
运行结果示例
如果一切正常,你会看到类似这样的输出:
{
"code": "0",
"data": [
{
"totalEq": "1234.56",
"details": [
{"ccy": "BTC", "eq": "0.5", "cashBal": "0.5"},
{"ccy": "USDT", "eq": "5000.0", "cashBal": "5000.0"}
]
}
]
}
code: "0"表示请求成功,下面就是你各个币种的余额。
进阶:如何写一个自动买入脚本?
只需要把get_account_balance函数替换成下单接口即可,欧易的下单接口路径是/api/v5/trade/order,请求方式是POST,body里需要传instId(交易对,比如BTC-USDT)、tdMode(模式,现金交易用cash)、side(buy买入/sell卖出)、ordType(market市价单/limit限价单)、sz(数量)。
# 示例:市价买入0.001个BTC
def place_order():
# ...(签名生成部分和上面一样)
body = {
"instId": "BTC-USDT",
"tdMode": "cash",
"side": "buy",
"ordType": "market",
"sz": "0.001"
}
response = requests.post(base_url + request_path, headers=headers, json=body)
return response.json()
注意:请先在欧易的“模拟盘”测试(欧易官方有测试环境API),确认无误后再切换到实盘。
常见问题问答(FAQ)
Q1:我申请了欧易API,但是代码一直报错“签名错误”,怎么办?
A:签名错误90%是以下三个原因:
- Secret Key复制错了(注意大小写,不要有多余空格)
- 时间戳格式不对(必须是UTC时间,格式精确到毫秒,末尾加Z)
- 请求路径写错了(比如多了一个斜杠或少了一个斜杠)
建议你把签名生成的字符串打印出来,和欧易官方文档的示例对比一下。
Q2:API的“读取权限”和“交易权限”有什么区别?
A:读取权限只能查询行情数据、账户余额、历史订单等信息,不能进行任何买卖操作,交易权限则可以下单、撤单,涉及资金变动,新手建议先申请读取权限,写脚本测试通了再升级。
Q3:我的脚本可以同时运行多个交易对吗?
A:可以,你可以写一个循环遍历多个交易对(比如BTC-USDT、ETH-USDT),对每个交易对执行你的策略,但注意欧易API有频率限制,建议每次请求间隔至少200毫秒。
Q4:如何确保我的API Key安全?
A:
- 永远不要硬编码在代码里(上面示例只是为了教学,实际建议用环境变量或配置文件)
- 在okzn.com.cn的设置中开启IP白名单
- 定期更换API Key
- 不要截图发给任何人
Q5:用API交易会触发风控吗?
A:正常使用不会,欧易允许API交易,但如果你短时间内高频请求(比如每秒发10个请求),可能会被临时限制,建议你的脚本每次请求之间加入time.sleep(0.2)。
Q6:欧易API能获取实时行情数据吗?
A:可以,欧易的行情接口是/api/v5/market/candles,可以获取K线数据;/api/v5/market/ticker可以获取实时价格,这些都是公开数据,即使你只申请了读取权限也能使用。
最后总结:欧易API接口申请教程看似复杂,其实核心就是三步:申请API Key → 掌握签名生成方法 → 调用对应接口,用Python写交易脚本,最大的好处是你可以完全按照自己的交易逻辑来操作,不受情绪干扰,建议新手先从“获取余额”或“获取行情”这类只读操作开始,慢慢摸熟后再升级到交易权限。
希望这篇文章能帮你打开自动化交易的大门,如果你在写脚本过程中遇到问题,欢迎在评论区留言交流——我们都是从跑通第一个Hello World开始的。
标签: Python交易脚本