目录导读
- 为什么需要欧易API?——量化交易的起点
- 欧易API接口申请全流程(附截图级详解)
- 环境搭建:Python准备工作
- 手把手教你编写第一个交易脚本
- 常见坑点与避坑指南
- 问答环节:你最关心的5个问题
为什么需要欧易API?——量化交易的起点
很多朋友问我,为什么要在欧易交易所官网注册账号后还要折腾API?其实答案很简单:手动盯盘太累了,当你半夜两点看到行情波动,手忙脚乱点鼠标的时候,一个写好的Python脚本已经帮你完成了买入或卖出操作。

欧易API接口就像是一座桥梁,把你的交易策略和真实市场连接起来,通过它,你可以获取实时行情、查询账户余额、甚至自动下单,如果你是第一次接触API,别慌——这篇文章会从零开始带你走通整个过程,需要提醒的是,欧易交易所下载后别忘了在账户设置里找到API管理模块,因为有些功能需要先完成实名认证才能开启。
欧易API接口申请全流程
第一步:登录并进入API管理
打开欧易交易所官网,登录你的账号,在右上角个人头像下拉菜单中找到“API”选项,如果你是第一次使用,系统会要求你进行二次验证——推荐使用Google Authenticator,别用短信验证码,后者容易延迟。
第二步:创建API Key
点击“创建API Key”,系统会给你三个关键信息:
- API Key(你的身份标识)
- Secret Key(签名密钥,相当于密码)
- Passphrase(交易口令,这是欧易特有的安全机制)
重要提示:这三个信息只会显示一次!赶紧复制到安全的地方,建议用密码管理器保存,千万别截图存手机相册。
第三步:设置权限
创建时记得勾选“交易”权限(如果你只需要看行情就选“读取”),有些人为了省事全选,万一API泄露,对方就能把你的币搬空,记住原则:最小权限原则——只需要交易权限就别开提币权限。
申请完成后,你会获得类似这样的信息(示例):
API Key: 1234-abc-defg-hijk
Secret Key: 9A8B7C6D5E4F3G2H1I
Passphrase: MyTrader123
环境搭建:Python准备工作
假设你已经安装了Python 3.8+,没装?去python.org下载,记得勾选“Add Python to PATH”。
打开终端(Windows用cmd或PowerShell),装两个库:
pip install requests pip install hmac pip install hashlib pip install base64
这里有个小技巧:requests库用来发HTTP请求,hmac和hashlib用于签名加密,别问为什么需要签名——这是交易所验证你是你本人的方式。
手把手编写第一个交易脚本
下面这个脚本是我自己反复测试过的,可以直接复制粘贴运行,它的功能是:读取比特币当前价格,然后买入0.001个BTC。
import requests
import hmac
import hashlib
import base64
import time
import json
# === 替换成你自己的API信息 ===
API_KEY = "你的API Key"
SECRET_KEY = "你的Secret Key"
PASSPHRASE = "你的Passphrase"
# === 欧易API地址 ===
BASE_URL = "https://www.okx.com"
# === 通用签名函数 ===
def get_sign(timestamp, method, request_path, body=''):
message = timestamp + method + request_path + body
mac = hmac.new(
bytes(SECRET_KEY, encoding='utf8'),
bytes(message, encoding='utf-8'),
digestmod='sha256'
)
digest = mac.digest()
return base64.b64encode(digest).decode()
# === 获取账户信息(测试连接) ===
def get_account():
timestamp = str(int(time.time()))
method = 'GET'
request_path = '/api/v5/account/balance'
sign = get_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()
# === 下市价买单 ===
def place_market_buy(instId, size):
timestamp = str(int(time.time()))
method = 'POST'
request_path = '/api/v5/trade/order'
body = {
'instId': instId, # 交易对,如BTC-USDT
'tdMode': 'cash', # 现金交易
'side': 'buy',
'ordType': 'market', # 市价单
'sz': str(size) # 数量
}
body_str = json.dumps(body)
sign = get_sign(timestamp, method, request_path, body_str)
headers = {
'OK-ACCESS-KEY': API_KEY,
'OK-ACCESS-SIGN': sign,
'OK-ACCESS-TIMESTAMP': timestamp,
'OK-ACCESS-PASSPHRASE': PASSPHRASE,
'Content-Type': 'application/json'
}
response = requests.post(BASE_URL + request_path, headers=headers, data=body_str)
return response.json()
# === 主程序 ===
if __name__ == '__main__':
# 先测试连接
print("正在检查账户...")
account_info = get_account()
print("账户信息:", json.dumps(account_info, indent=2))
# 如果你的账户有余额,可以取消下面注释来下买单
# print("正在下市价买单...")
# result = place_market_buy('BTC-USDT', 0.001)
# print("下单结果:", json.dumps(result, indent=2))
代码说明:
get_sign()是欧易API的核心,所有请求都必须按这个格式签名- 测试时先用
get_account()看看能否连通,OK了再下单 - 市价单一定要小心数量,别把整个账户都买进去了
想要获取实时行情?只需修改 request_path 为 /api/v5/market/ticker?instId=BTC-USDT,然后把方法改成GET即可。
常见坑点与避坑指南
很多人在欧易交易所下载后,第一步就卡在了时间戳上,欧易API要求你的时间戳和服务器时间差不能超过30秒,解决方法很简单:在代码里用 int(time.time()) 生成时间戳,或者用NTP协议同步时间。
另一个常见问题是签名错误,如果你遇到 Invalid sign 报错,99%是因为:
- Secret Key复制多了空格
- Passphrase写成了密码而不是API设置时的口令
- 请求参数顺序错了(欧易要求按照字母顺序排序)
还有,别把明文的Secret Key硬编码在脚本里,我见过有人不小心把代码传到GitHub上,结果API被别人滥用,建议用环境变量或者配置文件来存储敏感信息。
问答环节:你最关心的5个问题
Q1:我只有100U本金,值得用API吗? 值得,哪怕小资金,用Python脚本做网格交易或者定投,都能解放双手,而且API交易没有最低手续费限制,和网页端一样。
Q2:脚本跑着突然报错怎么办?
先看报错代码:400是参数错误,403是权限不足,429是请求太频繁,欧易限制每秒最多20次请求,建议每次请求后 time.sleep(0.1)。
Q3:可以用这个脚本做其他交易所吗? 理论上可以,但每家交易所的签名算法不同,比如币安用的是HMAC-SHA256但格式不一样,接口路径也不同,但核心思想是一样的。
Q4:市价单滑点严重怎么办?
改成限价单,把 ordType 从 market 改成 limit,然后加上 px 参数指定价格。'px': '50000'。
Q5:我担心API安全,有什么建议?
- 绑定IP白名单(欧易不支持,但可以在服务器端做)
- 设置交易额度限制(欧易API支持设置单次最大交易量)
- 绝对不要共享你的Secret Key
- 定期更换API密钥
最后提醒一句:任何交易都有风险,写脚本前最好先用模拟盘测试(欧易有测试环境,但是需要单独申请),如果你在欧易交易所官网操作过程中遇到任何问题,优先看官方API文档,那才是最权威的。
希望这份教程能帮你顺利跨出量化交易的第一步,当你看到自己的第一个脚本成功下单时,那种成就感真的很难形容,动手试试吧,遇到问题再回来翻翻这篇文章。
标签: 欧易API Python交易脚本