📖 目录导读
- 欧易API接口的价值 – 为什么量化交易必须掌握它?
- API密钥申请全流程 – 5分钟搞定你的第一组密钥
- Python环境准备 – 没有这些库,代码跑不动
- 基础交易脚本实战 – 从获取行情到挂单卖出的完整代码
- 常见问题Q&A – 新手最容易踩的5个坑
为什么说欧易API是量化交易的“入场券”?
很多朋友刚接触加密交易时,都习惯打开欧易交易所下载后在网页上手动买卖,一天盯盘12小时,手指都点酸了,但真正的交易老手早就用机器人自动执行策略了——而这一切的起点,就是欧易API接口。

简单说,API就是交易所给你的一把“远程遥控器”,通过它,你可以用Python代码直接读取实时行情、查询账户余额、甚至自动挂单撤单。学会申请和使用API,等于给你的交易系统装上了自动驾驶仪。
举个例子:你可以写一个脚本,当比特币价格跌破某条均线时,自动执行买入;当涨幅超过5%时自动卖出,整个过程不需要你动一根手指,哪怕你在睡觉,代码都在帮你赚钱——这就是API的魅力。
手把手申请欧易API密钥(附避坑要点)
📌 步骤1:登录欧易交易所官网
首先打开浏览器,进入欧易交易所官网(oklj.com.cn),如果你还没有账户,点击右上角“注册”完成手机或邮箱验证。提醒一下:建议使用谷歌邮箱或国内163邮箱,部分QQ邮箱可能被拦截验证码。
📌 步骤2:进入API管理页面
登录后,鼠标放在右上角头像处,在下拉菜单中选择“API管理”,如果你是第一次进入,系统会弹出一个风险提示,直接点击“继续创建”即可。
📌 步骤3:创建API密钥
点击“创建新的API”,你会看到三个关键选项:
- 权限设置:初学者建议勾选“交易”和“读取”即可,注意:永远不要开启“提现”权限,这是为了防止API被盗后资产被转移。
- IP绑定:强烈建议绑定你服务器的IP地址或家庭宽带的公网IP,如果你用的是动态IP且不熟悉绑定方法,先留空,但后续要尽快设置。
- 随便写个名字,量化交易脚本1号”。
点击确认后,你会得到两串字符:Access Key(类似用户名)和 Secret Key(类似密码)。Secret Key只显示一次! 马上复制粘贴到安全的位置(比如一个加密的记事本或密码管理器),一旦关闭页面就再也看不到了。
💡 冷知识:很多人因为没保存Secret Key而被迫删除重创,浪费不少时间,建议同时截图保存到手机相册(但别传给任何人)。
Python脚本环境搭建(只需5分钟)
在写代码之前,你需要确保电脑上安装了以下环境:
- Python 3.8及以上版本(推荐3.9或3.10)
- pip包管理工具(安装Python时默认自带)
- 三个关键库:
requests(发送网络请求)、hmac+hashlib(API签名加密)、json(处理数据)
打开终端(Windows按Win+R输入cmd,Mac打开“终端”),依次执行:
pip install requests pip install hashlib
(hashlib和hmac是Python内置库,无需安装;json也是内置的)
实战:一个能跑起来的Python交易脚本
下面是最核心的部分——一个完整的Python脚本,它可以完成“获取BTC/USDT最新价格 → 查询账户余额 → 如果余额足够就卖出一小部分BTC”这三个动作。
🐍 完整代码(复制后请替换密钥)
import requests
import json
import hmac
import hashlib
import time
import base64
# ====== 这里替换成你自己的密钥 ======
API_KEY = "你的Access Key"
SECRET_KEY = "你的Secret Key"
PASSPHRASE = "你在创建API时设置的密码短语" # 很多新手漏了导致签名失败
# =====================================
# 基础URL(固定写法)
BASE_URL = "https://www.oklj.com.cn" # 官方API端点
def get_timestamp():
return str(int(time.time()))
def sign_message(timestamp, method, request_path, body=""):
message = timestamp + method + request_path + body
mac = hmac.new(
bytes(SECRET_KEY, encoding='utf8'),
bytes(message, encoding='utf8'),
digestmod='sha256'
)
digest = mac.digest()
return base64.b64encode(digest).decode()
def get_header(method, request_path, body=""):
timestamp = get_timestamp()
sign = sign_message(timestamp, method, request_path, body)
return {
"OK-ACCESS-KEY": API_KEY,
"OK-ACCESS-SIGN": sign,
"OK-ACCESS-TIMESTAMP": timestamp,
"OK-ACCESS-PASSPHRASE": PASSPHRASE,
"Content-Type": "application/json"
}
# 获取BTC/USDT最新价格
def get_btc_price():
request_path = "/api/v5/market/ticker?instId=BTC-USDT"
response = requests.get(BASE_URL + request_path)
if response.status_code == 200:
data = response.json()
return float(data['data'][0]['last'])
else:
return None
# 查询账户总权益(USDT本位)
def get_account_info():
request_path = "/api/v5/account/balance"
header = get_header("GET", request_path)
response = requests.get(BASE_URL + request_path, headers=header)
if response.status_code == 200:
data = response.json()
return data['data'][0]
else:
return None
# 市价卖出BTC(数量0.001个,只测试用)
def place_sell_order(size=0.001):
body = {
"instId": "BTC-USDT",
"tdMode": "cash", # 现货交易
"side": "sell",
"ordType": "market",
"sz": str(size)
}
request_path = "/api/v5/trade/order"
header = get_header("POST", request_path, json.dumps(body))
response = requests.post(BASE_URL + request_path, headers=header, data=json.dumps(body))
return response.json()
# ====== 主程序 ======
if __name__ == "__main__":
print("🚀 开始执行欧易API交易脚本...")
# 1. 获取当前价格
price = get_btc_price()
if price:
print(f"当前BTC价格: ${price:,.2f}")
else:
print("❌ 获取价格失败!")
exit()
# 2. 查询账户
account = get_account_info()
if account:
print("✅ 账户连接成功,权益信息已获取")
else:
print("❌ 账户查询失败,请检查密钥权限")
exit()
# 3. 模拟卖出(请先确保账户有足够BTC)
print("⚠️ 即将执行0.001 BTC市价卖出的测试订单...")
result = place_sell_order(0.001)
if result.get('code') == '0':
print(f"✅ 订单已提交,订单ID: {result['data'][0]['ordId']}")
else:
print(f"❌ 下单失败:{result.get('msg')}")
⚡ 运行与调试
- 将以上代码保存为
okx_trade.py - 在终端运行:
python okx_trade.py - 如果报错
签名错误,99%是PASSPHRASE写错了(创建API时设置的密码短语,不是交易所登录密码)
🛠️ 进阶提示:这段代码只是演示框架,你可以将
get_btc_price()循环运行,结合均线策略自动买卖——这就是一个量化机器人雏形,有兴趣的同学可以搜索“欧易交易所下载官方SDK”,里面有更专业的WebSocket实时交易接口。
新手必看:5个高频问题Q&A
Q1:API密钥泄露了怎么办? A:立刻登录欧易交易所官网(oklj.com.cn)的API管理页面,点击“删除”该密钥,同时检查账户是否有异常交易,及时修改登录密码。绝对不要把你的密钥上传到GitHub公共仓库,已经有太多人因此被盗。
Q2:为什么我的签名总是报错(invalid signature)?
A:三大原因:①PASSPHRASE填错了(不是登录密码);②时间戳和服务器时间差超过30秒,电脑时间要校准(右键系统时间→同步);③请求体body和签名时的body不一致,特别是POST请求必须用json.dumps(body)。
Q3:我写了一个双均线策略,如何挂到服务器上24小时运行?
A:建议买一台低配的云服务器(比如腾讯云轻量级,年费300元左右),把Python脚本用nohup命令后台运行,或者用supervisor管理进程,但要注意:没写止损逻辑的机器人可能让你爆仓,测试小额资金先跑两周。
Q4:欧易API有频率限制吗?
A:有,普通交易接口每秒最多10次请求,行情接口不限但太频繁会临时封IP,你的脚本里加个time.sleep(0.1)就能避免。
Q5:为什么我调用了get_account_info却返回空数据?
A:先检查API权限是否勾选了“读取”,再确认你的账户是否开通了对应的币种现货交易对,有些新注册的账户需要完成基础认证才能调用交易接口。
文末一句话
从手动盯盘到代码自动执行,你离专业交易员只差一个欧易API接口的距离,如果刚入门觉得代码逻辑复杂,不妨先把上面的示例跑通,再慢慢加入止盈止损、分批建仓等高级功能。自动化交易的核心不是代码,而是策略——代码只是把你赚钱的想法变成现实的那双手。
动动手指,复制代码,试起来吧!
标签: 欧易API Python交易脚本